vis-dev-utils 3.0.118 → 3.0.119

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"generate-examples-index.js","sources":["../src/generate-examples-index/content-builder/common.ts","../src/generate-examples-index/content-builder/format.ts","../src/generate-examples-index/content-builder/playground/codepen.ts","../src/generate-examples-index/content-builder/playground/data.ts","../src/generate-examples-index/content-builder/playground/jsfiddle.ts","../src/generate-examples-index/content-builder/screenshots/index.ts","../src/generate-examples-index/content-builder/builder.ts","../src/generate-examples-index/content-builder/html/index.ts","../src/generate-examples-index/content-builder/md/index.ts","../src/generate-examples-index/cli.ts","../src/generate-examples-index/paths.ts","../src/generate-examples-index/index.ts"],"sourcesContent":["import { Example, Examples, ExamplesRoot } from \"../types\";\n\nexport interface ContentPart {\n content: string;\n filename: string;\n title: string;\n}\n\nexport interface Renderer {\n render(\n examples: ExamplesRoot,\n output: string,\n title: string,\n collator: Intl.Collator\n ): ContentPart[];\n screenshot: {\n width: number;\n height: number;\n };\n}\n\n/**\n * @param value\n */\nexport function isExample(\n value: Example | Examples | ExamplesRoot\n): value is Example {\n return (\n typeof value === \"object\" &&\n value !== null &&\n typeof value.path === \"string\"\n );\n}\n\nexport interface StartStopMs {\n start: number;\n stop: number;\n}\n/**\n *\n */\nexport function measureStartStopMs(): () => StartStopMs {\n const start = Date.now();\n return (): StartStopMs => {\n const stop = Date.now();\n\n return { start, stop };\n };\n}\n\nexport interface Report {\n count: number;\n result: \"fulfilled\" | \"rejected\";\n start: number;\n stop: number;\n}\n/**\n * @param reports\n * @param fallback\n */\nexport function reduceReports(\n reports: readonly Report[],\n fallback: Report = {\n count: 0,\n result: \"fulfilled\",\n start: -1,\n stop: -1,\n }\n): Report {\n return (\n reports.reduce<Report | null>((acc, val): Report | null => {\n return {\n count: (acc?.count ?? 0) + (val?.count ?? 0),\n result: [acc?.result ?? \"fulfilled\", val.result].every(\n (result): boolean => result === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n start: Math.min(acc?.start ?? Number.POSITIVE_INFINITY, val.start),\n stop: Math.max(acc?.stop ?? Number.NEGATIVE_INFINITY, val.stop),\n };\n }, null) ?? fallback\n );\n}\n\n/**\n * @param ms\n */\nexport function formatMs(ms: number): string {\n return `${(Math.round(ms / 100) / 10).toFixed(1)}s`;\n}\n/**\n * @param root0\n * @param root0.start\n * @param root0.stop\n */\nexport function formatStartStopMs({ start, stop }: StartStopMs): string {\n return `${(Math.round((stop - start) / 100) / 10).toFixed(1)}s`;\n}\n","import prettier from \"prettier\";\n\nexport const formatCSS = (css: string | null | undefined): string =>\n prettier.format(css || \"\", { filepath: \"style.css\" });\nexport const formatHTML = (html: string | null | undefined): string =>\n prettier.format(html || \"\", { filepath: \"index.html\" });\nexport const formatJS = (js: string | null | undefined): string =>\n prettier.format(js || \"\", { filepath: \"script.js\" });\nexport const formatMD = (md: string | null | undefined): string =>\n prettier.format(md || \"\", { filepath: \"README.md\" });\n","import $ from \"cheerio\";\n\nimport template from \"./codepen.template.html\";\nimport { Example } from \"../../types\";\n\n/**\n * @param example\n */\nexport function generateCodePenPage(example: Example): string {\n const data = example.playground;\n const title = example.titles.join(\" | \");\n\n const page = $.load(template);\n page(\"title\").text(title);\n const form = page(\"#form\");\n\n form.find('input[name=\"data\"]').attr(\n \"value\",\n JSON.stringify({\n css: data.code.css,\n css_external: data.resources.css.join(\";\"),\n html: data.code.html,\n js: data.code.js,\n js_external: data.resources.js.join(\";\"),\n title: example.titles.join(\" | \"),\n })\n );\n\n return page.html();\n}\n","import $ from \"cheerio\";\nimport { dirname, relative, resolve } from \"path\";\n\nimport { Example, PlaygroundData } from \"../../types\";\nimport { formatCSS, formatHTML, formatJS } from \"../format\";\n\n/**\n * @param baseURL\n * @param example$\n * @param examplePath\n */\nexport function generatePlaygroundData(\n baseURL: string,\n example$: Example[\"$\"],\n examplePath: Example[\"path\"]\n): PlaygroundData {\n // JavaScript\n const eventListeners = Object.entries(example$(\"body\").get(0).attribs)\n .filter(([name]): boolean => /^on/.test(name))\n .map(([name, value]): [string, string] => [name.slice(2), `${value}`])\n .map(\n ([name, value]): string =>\n `window.addEventListener(\"${name}\", () => { ${value} });`\n )\n .join(\"\\n\");\n const js = formatJS(\n example$(\"script\")\n .map((_i, elem) => (elem as cheerio.TagElement).children[0])\n .get()\n .map((elem): string => elem.data)\n .join(\"\") +\n \"\\n\\n;\" +\n eventListeners\n );\n\n // Cascading Style Sheets\n const css = formatCSS(\n example$(\"style\")\n .map((_i, elem) => (elem as cheerio.TagElement).children[0])\n .get()\n .map((elem): string => elem.data)\n .join(\"\")\n );\n\n // Hypertext Markup Language\n const $html = $.load(example$(\"body\").html() || \"\");\n $html(\"script\").remove();\n\n const html = formatHTML($html(\"body\").html());\n\n // Resources\n const fixPath = (rawPath: string): string =>\n /^https?:\\/\\//.test(rawPath)\n ? // World wide web absolute.\n rawPath\n : /^\\//.test(rawPath)\n ? // Domain absolute.\n baseURL + rawPath.slice(1)\n : //Relative.\n baseURL +\n relative(process.cwd(), resolve(dirname(examplePath), rawPath));\n\n const resources = {\n js: example$(\"script\")\n .map((_i, elem): undefined | string => $(elem).attr(\"src\"))\n .get()\n .filter((src): src is string => typeof src === \"string\")\n .map(fixPath),\n css: example$(\"link[rel='stylesheet']\")\n .map((_i, elem): undefined | string => $(elem).attr(\"href\"))\n .get()\n .filter((href): href is string => typeof href === \"string\")\n .map(fixPath),\n };\n\n return {\n code: {\n css,\n html,\n js,\n },\n resources,\n };\n}\n","import $ from \"cheerio\";\n\nimport template from \"./jsfiddle.template.html\";\nimport { Example } from \"../../types\";\n\n/**\n * @param example\n */\nexport function generateJSFiddlePage(example: Example): string {\n const data = example.playground;\n const title = example.titles.join(\" | \");\n const resources = [...data.resources.css, ...data.resources.js].join(\",\");\n\n const page = $.load(template);\n page(\"title\").text(title);\n const form = page(\"#form\");\n\n // Playground data.\n form.find('input[name=\"css\"]').attr(\"value\", data.code.css);\n form.find('input[name=\"html\"]').attr(\"value\", data.code.html);\n form.find('input[name=\"js\"]').attr(\"value\", data.code.js);\n form.find('input[name=\"resources\"]').attr(\"value\", resources);\n form.find('input[name=\"title\"]').attr(\"value\", title);\n\n // Don't run JS before the DOM is ready.\n form.find('input[name=\"wrap\"]').attr(\"value\", \"b\");\n\n return page.html();\n}\n","import $ from \"cheerio\";\nimport Jimp from \"jimp\";\nimport { Browser } from \"puppeteer\";\nimport commonScreenshotScript from \"./screenshot-script.js.txt\";\nimport fs from \"fs\";\nimport { basename, dirname, posix, resolve, sep } from \"path\";\nimport { promisify } from \"util\";\n\nimport { Example } from \"../../types\";\nimport { formatHTML } from \"../format\";\n\nconst unlink = promisify(fs.unlink);\nconst writeFile = promisify(fs.writeFile);\n\n/**\n * Check if the screenshot is valid. At the moment this simply considers\n * everything except for solid color images as valid. This works pretty well\n * though may yield some false positives.\n *\n * @param screenshot - The binary data of the screenshot.\n * @returns True for valid and false for invalid.\n */\nasync function isScreenshotValid(screenshot: Buffer): Promise<boolean> {\n const image = await Jimp.read(screenshot);\n const firstPixel = image.getPixelColor(0, 0);\n\n for (let x = 0; x < image.getWidth(); ++x) {\n for (let y = 0; y < image.getHeight(); ++y) {\n if (firstPixel !== image.getPixelColor(x, y)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport interface GenerateScreenshotConfig {\n /**\n * Leave the contexts and tabs open for inspection, also don't delete the\n * temporary pages.\n */\n debug: boolean;\n /** The example for which the screenshot will be generated. */\n example: Example;\n /** Height of the captured screenshot. */\n height: number;\n /** A script to be executed as the first thing on the page. */\n screenshotScript: string;\n /** Width of the captured screenshot. */\n width: number;\n}\n\n/**\n * Capture an element on the example's page and save the screenshot to the\n * disk as a PNG file.\n *\n * @param browser - Puppeteer's browser instance.\n * @param config - See the type's docs for detail.\n * @returns Whether or not the screenshot passed validation check.\n */\nexport async function generateScreenshot(\n browser: Browser,\n config: GenerateScreenshotConfig\n): Promise<boolean> {\n const { debug, example, height, screenshotScript, width } = config;\n\n const cleanup: (() => void | Promise<void>)[] = [];\n\n try {\n // Prepare the page. It has to be written to the disk so that files with\n // relative URLs can be loaded.\n const tmpPath = resolve(\n dirname(example.paths.page.local),\n \".tmp.example.screenshot.\" + basename(example.paths.page.local)\n );\n const screenshotPage = $.load(example.html);\n screenshotPage(\"head\").prepend(\n $(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(`window.DEBUG = ${true};`),\n $(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(commonScreenshotScript),\n $(\"<script>\").attr(\"type\", \"text/javascript\").text(screenshotScript),\n $(\"<style>\")\n .attr(\"type\", \"text/css\")\n .text(\n [\n `${example.selector} {`,\n \" border: none !important;\",\n \"\",\n ` min-width: ${width}px !important;`,\n ` min-height: ${height}px !important;`,\n ` width: ${width}px !important;`,\n ` height: ${height}px !important;`,\n ` max-width: ${width}px !important;`,\n ` max-height: ${height}px !important;`,\n \"}\",\n ].join(\"\\n\")\n )\n );\n await writeFile(tmpPath, formatHTML(screenshotPage.html()));\n if (!debug) {\n cleanup.push((): Promise<void> => unlink(tmpPath));\n }\n\n const context = await browser.createIncognitoBrowserContext();\n if (!debug) {\n cleanup.push((): Promise<void> => context.close());\n }\n\n const page = await context.newPage();\n if (!debug) {\n cleanup.push((): Promise<void> => page.close());\n }\n\n await page.setViewport({ width: width + 50, height: height + 50 });\n await page.goto(\"file://\" + tmpPath.split(sep).join(posix.sep));\n\n await page.waitForSelector(example.selector, {\n visible: true,\n timeout: example.timeout * 1000,\n });\n\n if (example.delay === \"call\") {\n await page.evaluate(\n \"function fn() { return window.readyToTakeAScreenshot; }\"\n );\n } else {\n await page.waitForTimeout(example.delay * 1000);\n }\n\n const $element = await page.$(example.selector);\n if ($element == null) {\n throw new Error(\n `Element \"${example.selector}\" not found in ${example.path}.`\n );\n }\n\n await $element.evaluate((element: Element): void => {\n element.scrollIntoView();\n });\n\n const screenshot = await $element.screenshot({\n encoding: \"binary\",\n });\n\n if (screenshot == null) {\n throw new Error(`Failed to take screenshot of “${example.paths.page}”`);\n } else if (typeof screenshot === \"string\") {\n // AFAIK this should never happen, it's just a problem with the types\n // always returning Buffer | string even when encoding is set to binary\n // (i.e. buffer).\n throw new Error(\n `Failed to get the binary data of the screenshot of “${example.paths.page}”`\n );\n }\n\n await writeFile(example.paths.screenshot.local, screenshot);\n\n // Return the validity of the generated screenshot.\n return isScreenshotValid(screenshot);\n } catch (error) {\n console.error(error);\n return false;\n } finally {\n for (const callback of cleanup.splice(0).reverse()) {\n try {\n await callback();\n } catch (error) {\n console.error(error);\n }\n }\n }\n}\n","import fs from \"fs\";\nimport { join } from \"path\";\nimport { promisify } from \"util\";\nimport puppeteer from \"puppeteer\";\n\nimport { Example, Examples, ExamplesRoot } from \"../types\";\nimport {\n Renderer,\n Report,\n formatStartStopMs,\n isExample,\n measureStartStopMs,\n} from \"./common\";\nimport { formatHTML } from \"./format\";\nimport { generateJSFiddlePage, generateCodePenPage } from \"./playground\";\nimport { generateScreenshot } from \"./screenshots\";\n\nconst collator = new Intl.Collator(\"US\");\nconst writeFile = promisify(fs.writeFile);\n\nexport type IndexReport = Report;\nexport interface ExampleReport extends Report {\n example: Example;\n}\n\nexport interface Checks {\n fail: number;\n failPaths: string[];\n okay: number;\n okayPaths: string[];\n percentage: number;\n total: number;\n}\n\nexport interface ContentBuilderConfig {\n /** The tree structure with examples in it's leaves. */\n examples: ExamplesRoot;\n /** The directory where built files will be saved. */\n output: string;\n /** How many screenshots to generate at the same time. */\n parallel: number;\n /** The renderer used to generate index files. */\n renderer: Renderer;\n /** A script that will be executed on each page as first. */\n screenshotScript: string;\n /** A title that will be passed to the renderer. */\n title: string;\n}\n\nexport interface ContentBuilderRet {\n checks: Promise<Checks>;\n index: Promise<IndexReport[]>;\n playgrounds: Promise<ExampleReport[]>;\n screenshots: Promise<ExampleReport[]>;\n}\n\nexport class ContentBuilder {\n public constructor(private readonly _config: ContentBuilderConfig) {}\n\n /**\n * Build the files and write them to the disk.\n *\n * @param emit - Which types of files to emit.\n * @param emit.index\n * @param emit.playgrounds\n * @param emit.screenshots\n * @returns A report with check results and the number of written files.\n */\n public build(\n emit: {\n index?: boolean;\n playgrounds?: boolean;\n screenshots?: boolean;\n } = {}\n ): ContentBuilderRet {\n const allExamples = this._processGroup(this._config.examples);\n\n const okay: string[] = [];\n const fail: string[] = [];\n\n console.info(\n `Going to generate ${[\n emit.index ? [\"index files\"] : [],\n emit.playgrounds ? [\"playground openers\"] : [],\n emit.screenshots ? [\"screenshots\"] : [],\n ]\n .flat()\n .join(\", \")} for ${allExamples.length} examples.`\n );\n process.stdout.write(\"\\n\");\n\n const index: ContentBuilderRet[\"index\"] = emit.index\n ? // Generate indexes.\n (async (): ContentBuilderRet[\"index\"] => {\n const getStartStopMs = measureStartStopMs();\n\n const results = await Promise.allSettled(\n this._config.renderer\n .render(\n this._config.examples,\n this._config.output,\n this._config.title,\n collator\n )\n .map(\n async ({ content, filename }): Promise<void> =>\n writeFile(join(this._config.output, filename), content)\n )\n );\n\n return [\n {\n ...getStartStopMs(),\n count: results.length,\n result: results.every(\n ({ status }): boolean => status === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n },\n ];\n })()\n : // Skip indexes.\n Promise.resolve([]);\n\n const playgrounds: ContentBuilderRet[\"playgrounds\"] = emit.playgrounds\n ? // Generate playground pages.\n (async (): ContentBuilderRet[\"playgrounds\"] =>\n await Promise.all(\n allExamples.map(async (example): Promise<ExampleReport> => {\n const getStartStopMs = measureStartStopMs();\n\n const results = await Promise.allSettled(\n [\n {\n html: generateJSFiddlePage(example),\n path: example.paths.jsfiddle.local,\n },\n {\n html: generateCodePenPage(example),\n path: example.paths.codepen.local,\n },\n ].map(\n ({ html, path }): Promise<void> =>\n writeFile(path, formatHTML(html))\n )\n );\n\n return {\n ...getStartStopMs(),\n count: results.length,\n example: example,\n result: results.every(\n ({ status }): boolean => status === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n };\n })\n ))()\n : // Skip playground pages.\n Promise.resolve([]);\n\n const screenshots: ContentBuilderRet[\"screenshots\"] = emit.screenshots\n ? // Generate screenshots.\n (async (): ContentBuilderRet[\"screenshots\"] => {\n const cleanup: (() => void | Promise<void>)[] = [];\n\n try {\n const debug = /^1|y|yes|true$/i.test(process.env.DEBUG ?? \"\");\n const browser = await puppeteer.launch({\n headless: !debug,\n slowMo: debug ? 100 : undefined,\n });\n if (debug) {\n cleanup.push(async (): Promise<void> => browser.disconnect());\n } else {\n cleanup.push((): Promise<void> => browser.close());\n }\n\n // Generate screenshots.\n // There is quite long delay to ensure the chart is rendered properly\n // so it's much faster to run a lot of them at the same time.\n const todo = allExamples.slice();\n const total = todo.length;\n const reports: ExampleReport[] = [];\n await Promise.allSettled(\n new Array(this._config.parallel)\n .fill(null)\n .map(async (): Promise<void> => {\n let example: Example | undefined;\n while ((example = todo.pop())) {\n const getStartStopMs = measureStartStopMs();\n\n const valid = await generateScreenshot(browser, {\n debug,\n example,\n height: this._config.renderer.screenshot.height,\n screenshotScript: this._config.screenshotScript,\n width: this._config.renderer.screenshot.width,\n });\n\n const report: ExampleReport = {\n ...getStartStopMs(),\n count: 1,\n example,\n result: valid ? \"fulfilled\" : \"rejected\",\n };\n reports.push(report);\n\n if (valid) {\n okay.push(example.path);\n } else {\n fail.push(example.path);\n }\n\n const percentage = (\n Math.floor((reports.length / total) * 100) + \"%\"\n ).padStart(4, \" \");\n const validText = valid ? \"okay\" : \"fail\";\n const msText = formatStartStopMs(report);\n console.info(\n `${percentage} ${validText} ${msText} - ${example.path}`\n );\n }\n })\n );\n\n return reports;\n } finally {\n for (const callback of cleanup.splice(0).reverse()) {\n try {\n await callback();\n } catch (error) {\n console.error(error);\n }\n }\n }\n })()\n : // Skip screenshots.\n Promise.resolve([]);\n\n const checks = (async (): Promise<Checks> => {\n await index;\n await playgrounds;\n await screenshots;\n\n const total = okay.length + fail.length;\n return {\n fail: fail.length,\n failPaths: fail,\n okay: okay.length,\n okayPaths: okay,\n percentage: total === 0 ? 100 : (100 * okay.length) / total,\n total,\n };\n })();\n\n return { checks, index, playgrounds, screenshots };\n }\n\n private _processGroup(examples: Examples): Example[] {\n return Object.keys(examples)\n .sort(collator.compare)\n .flatMap((key): Example[] => {\n const example = examples[key];\n\n if (isExample(example)) {\n return [example];\n } else {\n return this._processGroup(example);\n }\n });\n }\n}\n","import $ from \"cheerio\";\n\nimport indexTemplate from \"./index.template.html\";\nimport styleTemplate from \"./index.template.css\";\nimport { ContentPart, Renderer, isExample } from \"../common\";\nimport { Example, Examples, ExamplesRoot } from \"../../types\";\nimport { formatHTML } from \"../format\";\n\n/**\n * @param example\n */\nfunction generateJSFiddle(example: Example): cheerio.Cheerio {\n return $(\"<a>\")\n .addClass(\"icon jsfiddle\")\n .attr(\"href\", example.paths.jsfiddle.web)\n .attr(\"title\", \"JSFiddle\");\n}\n\n/**\n * @param example\n */\nfunction generateCodePen(example: Example): cheerio.Cheerio {\n return $(\"<a>\")\n .addClass(\"icon codepen\")\n .attr(\"href\", example.paths.codepen.web)\n .attr(\"title\", \"CodePen\");\n}\n\n/**\n * @param examples\n * @param title\n * @param level\n * @param collator\n */\nfunction processGroup(\n examples: Examples,\n title: string,\n level: number,\n collator: Intl.Collator\n): cheerio.Cheerio {\n const heading = $(`<h${Math.max(1, Math.min(6, level))}>`);\n heading.text(title);\n\n const list = $(\"<div>\");\n\n const section = $(\"<div>\");\n section.append(heading, list);\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n const example = examples[key];\n\n if (isExample(example)) {\n const header = $(\"<div>\").addClass(\"example-header\").append(\n // Playgrounds\n generateJSFiddle(example),\n generateCodePen(example),\n // Title\n $(\"<a>\").attr(\"href\", example.paths.page.web).text(key)\n );\n\n const image = $(\"<a>\")\n .addClass(\"example-image\")\n .attr(\"href\", example.paths.page.web)\n .append(\n $(\"<img>\").attr(\"src\", example.paths.screenshot.web).attr(\"alt\", key)\n );\n\n const item = $(\"<span>\").addClass(\"example-link\").append(header, image);\n\n list.append(item);\n } else {\n section.append(processGroup(example, key, level + 1, collator));\n }\n }\n\n return section;\n}\n\nexport const htmlRenderer: Renderer = {\n render(\n examples: ExamplesRoot,\n _output: string,\n title: string,\n collator: Intl.Collator\n ): ContentPart[] {\n const filename = \"index.html\";\n\n const root = $(\"<div>\");\n root.addClass(\"examples-root\");\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n root.append(processGroup(examples[key], key, 1, collator));\n }\n\n const page = $.load(indexTemplate);\n page(\"title\").text(title);\n page(\"body\").append(root);\n const content = formatHTML(page.html());\n\n return [\n { content, filename, title },\n {\n content: styleTemplate,\n filename: \"examples.css\",\n title: \"examples.css\",\n },\n ];\n },\n screenshot: {\n width: 400,\n height: 400,\n },\n};\n","import { ContentPart, Renderer, isExample } from \"../common\";\nimport { Examples, ExamplesRoot } from \"../../types\";\nimport { formatMD } from \"../format\";\nimport { relative } from \"path\";\n\n/**\n * @param lines\n */\nfunction linesToContent(lines: string[]): string {\n return formatMD(lines.join(\"\\n\"));\n}\n\n/**\n * @param title\n * @param src\n * @param href\n */\nfunction image(title: string, src: string, href?: string): string {\n return href == null\n ? `![${title}](${src})`\n : link(href, `![${title}](${src})`);\n}\n\n/**\n * @param href\n * @param text\n */\nfunction link(href: string, text: string = href): string {\n return `[${text}](${href})`;\n}\n\n/**\n * @param level\n * @param text\n */\nfunction header(level: number, text: string): string {\n return `${\"#\".repeat(level)} ${text}`;\n}\n\n/**\n * @param examples\n * @param output\n * @param title\n * @param collator\n */\nfunction processGroup(\n examples: Examples,\n output: string,\n title: string,\n collator: Intl.Collator\n): ContentPart[] {\n const items: string[] = [];\n const sections: ContentPart[] = [];\n const filenamePart = title.replace(/[^a-zA-Z0-9]/g, \"-\").toLowerCase();\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n const example = examples[key];\n\n if (isExample(example)) {\n // An example in this group.\n items.push(\n header(2, key),\n \"\",\n image(\n key,\n \"./\" + relative(output, example.paths.screenshot.local),\n example.paths.page.web\n ),\n \"\",\n [\n link(example.paths.page.web, \"Open\"),\n link(example.paths.jsfiddle.web, \"JSFiddle\"),\n link(example.paths.codepen.web, \"CodePen\"),\n ].join(\" | \"),\n \"\"\n );\n } else {\n // A subgroup of examples.\n sections.push(\n ...processGroup(example, output, key, collator).map(\n (contentPart): ContentPart => ({\n ...contentPart,\n filename: filenamePart + \".\" + contentPart.filename,\n })\n )\n );\n }\n }\n\n return [\n {\n content: linesToContent([header(1, title), \"\", ...items]),\n filename: filenamePart + \".md\",\n title,\n },\n ...sections,\n ];\n}\n\nexport const mdRenderer: Renderer = {\n render(\n examples: ExamplesRoot,\n output: string,\n _title: string,\n collator: Intl.Collator\n ): ContentPart[] {\n const sections: ContentPart[] = [];\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n sections.push(...processGroup(examples[key], output, key, collator));\n }\n\n return [\n {\n content: linesToContent([\n header(1, \"Examples\"),\n \"\",\n ...sections.map(\n ({ filename, title }): string => \"- \" + link(\"./\" + filename, title)\n ),\n ]),\n filename: \"README.md\",\n title: \"Examples\",\n },\n ...sections,\n ];\n },\n screenshot: {\n width: 740,\n height: 250,\n },\n};\n","import yargs from \"yargs\";\n\nconst y = yargs\n .strict(true)\n .usage(\"generate-example-index [options]\")\n .hide(\"version\")\n .config()\n .help()\n\n .option(\"assets-local-directory\", {\n default: \"./examples/thumbnails\",\n describe: \"The directory where assets will be written to.\",\n type: \"string\",\n })\n .option(\"assets-web-directory\", {\n default: \"./thumbnails\",\n describe: \"The directory where assets will be loaded from on the web.\",\n type: \"string\",\n })\n .option(\"base-url\", {\n demand: true,\n describe:\n \"The base URL for relative imports. Web URLs starting with slash will be relative to this URL.\",\n type: \"string\",\n })\n .option(\"examples-local-directory\", {\n default: \"./examples/thumbnails\",\n describe: \"The directory where examples will be loaded from locally.\",\n type: \"string\",\n })\n .option(\"examples-web-directory\", {\n default: \"./thumbnails\",\n describe: \"The directory where examples will be loaded from on the web.\",\n type: \"string\",\n })\n .option(\"output-directory\", {\n default: \"./examples\",\n describe: \"The directory where generated files will be emitted.\",\n type: \"string\",\n })\n .option(\"pages-local-directory\", {\n default: \"./examples/pages\",\n describe: \"The directory where pages will be written to.\",\n type: \"string\",\n })\n .option(\"pages-web-directory\", {\n default: \"./pages\",\n describe: \"The directory where pages will be loaded from on the web.\",\n type: \"string\",\n })\n\n .option(\"index\", {\n default: false,\n describe: \"Generate index files.\",\n type: \"boolean\",\n })\n .option(\"lint\", {\n default: false,\n describe: \"Lint examples.\",\n type: \"boolean\",\n })\n .option(\"playgrounds\", {\n default: false,\n describe: \"Generate playground pages.\",\n type: \"boolean\",\n })\n .option(\"screenshots\", {\n default: false,\n describe: \"Render screenshot thumbnails.\",\n type: \"boolean\",\n })\n\n .option(\"container-id\", {\n default: \"vis-container\",\n describe: \"The id of the elements where Vis will put canvas.\",\n type: \"string\",\n })\n .option(\"format\", {\n default: \"html\",\n describe: \"Whether HTML or Markdown should be generated.\",\n type: \"string\",\n })\n .option(\"parallel\", {\n default: 6,\n describe:\n \"Generate n screenshots at the same time (there is quite high delay to make sure the graph is rendered before the screenshot is taken so the CPU utilization is generally quite low).\",\n type: \"number\",\n })\n .option(\"screenshot-script\", {\n describe:\n \"The path of JavaScript file that will be executed before taking a screenshot (and before any other JavaScript in the page).\",\n type: \"string\",\n })\n .option(\"title\", {\n default: \"Examples\",\n describe: \"The title of the examples index.\",\n type: \"string\",\n })\n .option(\"verify\", {\n default: 100,\n describe:\n \"Attempt to verify that the examples were generated correctly. The value is a percentage of checks that have to pass for the run to be considered success.\",\n type: \"number\",\n });\n\n/**\n *\n */\nexport function parseArguments(): ReturnType<typeof y[\"parseSync\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parseSync();\n}\n","import { Example, ExamplePath, ExamplePaths } from \"./types\";\nimport { createHash } from \"crypto\";\nimport { relative, resolve } from \"path\";\n\n/**\n * @param urls\n */\nexport function joinURLs(...urls: string[]): string {\n return urls\n .map((url): string =>\n // Strip the parts of leading and trailing slashes if they have them.\n url.replace(/^\\/?(.*?)\\/?$/, \"$1\")\n )\n .join(\"/\");\n}\n\n/**\n * @param baseURL\n * @param url\n */\nexport function fixAbsoluteInputURL(baseURL: string, url: string): string {\n return url.startsWith(\"/\")\n ? // Relative to the base URL. Base URL starts and URL ends with a slash.\n baseURL + url.slice(1)\n : // Relative to some other point or absolute already.\n url;\n}\n\n/**\n * @param config\n * @param exampleAbsolutePath\n */\nexport function generatePaths(\n config: ExamplePaths,\n exampleAbsolutePath: Example[\"path\"]\n): ExamplePaths {\n const exampleRelativePath = relative(config.page.local, exampleAbsolutePath);\n\n // It's important that the hash is created from the relative path so that it\n // is the same on all computers.\n const hash = createHash(\"sha256\").update(exampleRelativePath).digest(\"hex\");\n\n return {\n codepen: generateLocalWebPair(\n config.codepen.local,\n config.codepen.web,\n hash,\n \"codepen\",\n \"html\"\n ),\n jsfiddle: generateLocalWebPair(\n config.jsfiddle.local,\n config.jsfiddle.web,\n hash,\n \"jsfiddle\",\n \"html\"\n ),\n page: {\n local: exampleAbsolutePath,\n web: joinURLs(config.page.web, exampleRelativePath),\n },\n screenshot: generateLocalWebPair(\n config.screenshot.local,\n config.screenshot.web,\n hash,\n \"screenshot\",\n \"png\"\n ),\n };\n}\n\n/**\n * @param localRoot\n * @param webRoot\n * @param hash\n * @param prefix\n * @param extension\n */\nfunction generateLocalWebPair(\n localRoot: string,\n webRoot: string,\n hash: string,\n prefix: string,\n extension: string\n): ExamplePath {\n const filename = `${prefix}.${hash}.${extension}`;\n\n return {\n local: resolve(localRoot, filename),\n web: joinURLs(webRoot, filename),\n };\n}\n","import $ from \"cheerio\";\nimport fs from \"fs\";\nimport globby from \"globby\";\nimport util from \"util\";\nimport yargs from \"yargs\";\nimport { join } from \"path\";\nimport { resolve } from \"path\";\n\nimport {\n ContentBuilder,\n generatePlaygroundData,\n htmlRenderer,\n mdRenderer,\n reduceReports,\n formatStartStopMs,\n} from \"./content-builder\";\nimport { Example, ExamplesRoot, ExamplePaths } from \"./types\";\nimport { parseArguments } from \"./cli\";\nimport { generatePaths, fixAbsoluteInputURL } from \"./paths\";\n\nconst argv = parseArguments();\n\n// Log the parsed configuration for debugging purposes.\nconsole.info(\"Configuration: \", JSON.stringify(argv, null, 2));\nprocess.stdout.write(\"\\n\");\n\n// Pageres uses quite a lot of listeners when invoked multiple times in\n// parallel. This ensures there are no warnings about it.\nprocess.setMaxListeners(40);\n\n// Resolve paths relative to PWD.\nconst screenshotScriptPath =\n typeof argv[\"screenshot-script\"] === \"string\"\n ? resolve(argv[\"screenshot-script\"])\n : undefined;\n\nconst mkdir = util.promisify(fs.mkdir);\nconst readFile = util.promisify(fs.readFile);\n\nfunction getMeta<T>(page: cheerio.Root, name: string, fallback: T): T;\n/**\n * Extract and coerce a value from meta tag.\n *\n * @param page - The page to be queried.\n * @param name - The name of the meta tag.\n * @param fallback - The value to be used if the meta tag is not present.\n * @returns The value “smartly” coerced or the fallback if conversion isn't\n * possible or the value is not present in the page.\n */\nfunction getMeta(\n page: cheerio.Root,\n name: string,\n fallback: number | string\n): number | string {\n const content = page(`meta[name=\"${name}\"]`).attr(\"content\");\n\n if (content == null) {\n // No meta of this name exists in the page, use the fallback.\n return fallback;\n } else if (!Number.isNaN(+content)) {\n // Number.\n return +content;\n } else if (typeof content === \"string\") {\n // String.\n return content;\n } else {\n // Something doesn't match, use the fallback.\n return fallback;\n }\n}\n\n/**\n * Test if the example conforms to the conventions.\n *\n * @param path - The path to the example (used for identification in logs).\n * @param page - The HTML to be linted.\n * @returns True if everything's okay, false otherwise.\n */\nfunction lintExample(path: string, page: cheerio.Root): boolean {\n let valid = true;\n const msgs = [`${path}:`];\n\n if (page(\"#title\").length !== 1) {\n msgs.push(\"Missing #title element in the body.\");\n valid = false;\n }\n\n if (page(\"#title > *\").length < 2) {\n msgs.push(\n \"There have to be at least two headings (group and example name).\"\n );\n valid = false;\n }\n\n const headTitle = page(\"head > title\").text().trim();\n const bodyTitle = page(\"#title > *\")\n .map((_i, elem): string => $(elem).text())\n .get()\n .join(\" | \")\n .trim();\n if (headTitle !== bodyTitle) {\n msgs.push(\n \"The title in the head doesn't match the title in the body.\",\n ` head: ${headTitle}`,\n ` body: ${bodyTitle}`\n );\n valid = false;\n }\n\n if (msgs.length > 1) {\n console.warn(\"\\n\" + msgs.join(\"\\n \"));\n }\n\n return valid;\n}\n\n(async (): Promise<void> => {\n let code = 0;\n\n if (!argv.index && !argv.screenshots && !argv.lint) {\n yargs.parse(\"--help\");\n return;\n }\n\n // Ensure that all paths exist.\n await Promise.all(\n [\n argv[\"assets-local-directory\"],\n argv[\"examples-local-directory\"],\n argv[\"output-directory\"],\n argv[\"pages-local-directory\"],\n ].map(async (path): Promise<void> => {\n await mkdir(path, { recursive: true });\n })\n );\n\n const baseURL = argv[\"base-url\"];\n if (!baseURL.endsWith(\"/\")) {\n throw new Error(\"Base URL (`base-url`) has to end with a slash (`/`).\");\n }\n\n // Paths.\n const pathsConfig: ExamplePaths = {\n codepen: {\n local: argv[\"pages-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"pages-web-directory\"]),\n },\n jsfiddle: {\n local: argv[\"pages-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"pages-web-directory\"]),\n },\n page: {\n local: argv[\"examples-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"examples-web-directory\"]),\n },\n screenshot: {\n local: argv[\"assets-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"assets-web-directory\"]),\n },\n };\n\n const examples: ExamplesRoot = {};\n const selector = \"#\" + argv[\"container-id\"];\n const stats = { examples: 0 };\n const skipped: string[] = [];\n\n await Promise.all(\n (\n await globby(join(pathsConfig.page.local, \"**/*.html\"))\n ).map(async (pagePath): Promise<any> => {\n const html = await readFile(pagePath, \"utf-8\");\n const $page = $.load(html);\n const pageDelay = getMeta<number | \"call\">(\n $page,\n \"example-screenshot-delay\",\n 6\n );\n const pageTimeout = getMeta<number>(\n $page,\n \"example-screenshot-timeout\",\n 60\n );\n const pageSelector = getMeta<string>(\n $page,\n \"example-screenshot-selector\",\n selector\n );\n\n // Is this an examples?\n if ($page(pageSelector).length === 0) {\n skipped.push(pagePath);\n return;\n }\n\n // Lint if requested.\n if (argv.lint) {\n lintExample(pagePath, $page);\n }\n\n // Body titles.\n let titles = $page(\"#title > *\")\n .get()\n .map((elem): string => $page(elem).text().trim());\n\n // Head title fallback.\n if (titles.length < 2) {\n titles = $page(\"head > title\")\n .text()\n .split(\"|\")\n .map((title): string => title.trim());\n }\n\n // File path fallback.\n if (titles.length < 2) {\n titles = pagePath.split(\"/\");\n }\n\n // Just ignore it.\n if (titles.length < 2) {\n console.error(\"Title resolution failed. Skipping.\");\n return;\n }\n\n // Put this example into the structure while creating any missing groups in the process.\n titles.reduce((acc, title, i, arr): any => {\n while (acc[title] != null && acc[title].path != null) {\n console.error(\"The following group already exists: \", titles);\n title += \"!\";\n }\n\n if (i === arr.length - 1) {\n if (acc[title] != null) {\n console.error(\n \"The following example has the same name as an already existing group: \",\n titles\n );\n return null;\n } else {\n const example: Example = {\n $: $page,\n delay: pageDelay,\n html: html,\n path: pagePath,\n paths: generatePaths(pathsConfig, pagePath),\n playground: generatePlaygroundData(baseURL, $page, pagePath),\n selector: pageSelector,\n timeout: pageTimeout,\n titles: titles,\n };\n\n acc[title] = example;\n\n ++stats.examples;\n }\n } else {\n return (acc[title] = acc[title] || {});\n }\n }, examples as any);\n })\n );\n\n if (skipped.length) {\n process.stdout.write(\"\\n\");\n console.info(\n [\n \"The following files don't look like examples (there is nothing to take a screenshot of):\",\n ...skipped.sort(),\n ].join(\"\\n \")\n );\n }\n\n if (stats.examples === 0) {\n console.info(\"No usable example files were found.\");\n } else if (argv.index || argv.playgrounds || argv.screenshots) {\n process.stdout.write(\"\\n\");\n\n const screenshotScript =\n screenshotScriptPath != null\n ? (await readFile(screenshotScriptPath, \"utf-8\")) || \"\"\n : \"\";\n\n const builtData = new ContentBuilder({\n examples,\n output: resolve(argv[\"output-directory\"]),\n parallel: argv.parallel,\n renderer: argv.format === \"md\" ? mdRenderer : htmlRenderer,\n screenshotScript,\n title: argv.title,\n }).build({\n index: argv.index,\n playgrounds: argv.playgrounds,\n screenshots: argv.screenshots,\n });\n\n // Create and write the page.\n if (argv.index) {\n const cummulativeReport = reduceReports(await builtData.index);\n console.info(\n `Index with ${stats.examples} examples written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Create and write the playgrounds.\n if (argv.index) {\n const cummulativeReport = reduceReports(await builtData.playgrounds);\n console.info(\n `Playground opener files for ${stats.examples} examples written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Create and write the screenshots.\n if (argv.screenshots) {\n const cummulativeReport = reduceReports(await builtData.screenshots);\n console.info(\n `Screenshot files for ${stats.examples} written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Verify the result.\n const checks = await builtData.checks;\n process.stdout.write(\"\\n\");\n if (checks.fail === 0) {\n console.info(\n `Verification: ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %) passed.`\n );\n } else {\n if (checks.percentage >= argv.verify) {\n console.info(\n `Verification: ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %), ${checks.fail} failed.\\n` +\n \"This is within the threshold set by --verify.\"\n );\n } else {\n console.error(\n `Verification: Only ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %), ${checks.fail} failed.\\n` +\n \"This is not within the threshold set by --verify. Exiting with an error.\"\n );\n code = 3;\n }\n\n checks.failPaths.forEach((path): void => {\n console.error(path);\n });\n }\n }\n\n process.exitCode = code;\n})().catch((error): void => {\n process.exitCode = 1;\n console.error(error);\n});\n"],"names":["isExample","value","_typeof","path","measureStartStopMs","start","_Date$now","stop","reduceReports","reports","fallback","count","result","_reduceInstanceProperty","acc","val","_everyInstanceProperty","Math","min","Number","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","formatStartStopMs","round","toFixed","formatCSS","css","prettier","format","filepath","formatHTML","html","formatJS","js","formatMD","md","generateCodePenPage","example","data","playground","title","titles","join","page","$","load","template","text","form","_findInstanceProperty","attr","_JSON$stringify","code","css_external","resources","js_external","generatePlaygroundData","baseURL","example$","examplePath","eventListeners","_mapInstanceProperty","get","attribs","_slicedToArray","name","test","_sliceInstanceProperty","_i","elem","children","$html","remove","fixPath","rawPath","relative","process","cwd","resolve","dirname","src","href","generateJSFiddlePage","_concatInstanceProperty","_toConsumableArray","unlink","promisify","fs","writeFile","isScreenshotValid","_asyncToGenerator","_regeneratorRuntime","screenshot","Jimp","read","image","firstPixel","getPixelColor","x","getWidth","y","getHeight","generateScreenshot","browser","config","debug","height","screenshotScript","width","cleanup","tmpPath","paths","local","basename","screenshotPage","prepend","commonScreenshotScript","selector","push","createIncognitoBrowserContext","context","close","newPage","setViewport","goto","split","sep","posix","waitForSelector","visible","timeout","delay","evaluate","waitForTimeout","$element","Error","element","scrollIntoView","encoding","console","error","_createForOfIteratorHelper","_reverseInstanceProperty","_spliceInstanceProperty","callback","collator","Intl","Collator","ContentBuilder","_config","_classCallCheck","_defineProperty","_createClass","emit","allExamples","_processGroup","examples","okay","fail","info","_flatInstanceProperty","index","playgrounds","screenshots","length","stdout","write","getStartStopMs","_Promise","allSettled","renderer","render","output","content","filename","results","_objectSpread","status","all","jsfiddle","codepen","env","DEBUG","puppeteer","launch","headless","slowMo","undefined","disconnect","todo","total","_fillInstanceProperty","Array","parallel","pop","valid","report","percentage","_padStartInstanceProperty","floor","validText","msText","checks","failPaths","okayPaths","_flatMapInstanceProperty","_sortInstanceProperty","_Object$keys","compare","key","generateJSFiddle","addClass","web","generateCodePen","processGroup","level","heading","list","section","append","header","item","htmlRenderer","_output","root","indexTemplate","styleTemplate","linesToContent","lines","link","_repeatInstanceProperty","items","sections","filenamePart","replace","toLowerCase","contentPart","mdRenderer","_title","yargs","strict","usage","hide","help","option","default","describe","type","demand","parseArguments","parserConfiguration","parseSync","joinURLs","urls","url","fixAbsoluteInputURL","_startsWithInstanceProperty","generatePaths","exampleAbsolutePath","exampleRelativePath","hash","createHash","update","digest","generateLocalWebPair","localRoot","webRoot","prefix","extension","argv","setMaxListeners","screenshotScriptPath","mkdir","util","readFile","getMeta","_Number$isNaN","lintExample","msgs","headTitle","_trimInstanceProperty","bodyTitle","warn","lint","parse","recursive","_endsWithInstanceProperty","pathsConfig","stats","skipped","globby","pagePath","$page","pageDelay","pageTimeout","pageSelector","i","arr","builtData","build","cummulativeReport","verify","_forEachInstanceProperty","exitCode","catch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA;;AAEG;AACG,SAAUA,SAAV,CACJC,KADI,EACoC;AAExC,EAAA,OACEC,2BAAOD,CAAAA,KAAP,CAAiB,KAAA,QAAjB,IACAA,KAAK,KAAK,IADV,IAEA,OAAOA,KAAK,CAACE,IAAb,KAAsB,QAHxB,CAAA;AAKD,CAAA;AAMD;;AAEG;;SACaC,qBAAkB;EAChC,IAAMC,KAAK,GAAGC,6BAAd,EAAA,CAAA;;AACA,EAAA,OAAO,YAAkB;IACvB,IAAMC,IAAI,GAAGD,6BAAb,EAAA,CAAA;;IAEA,OAAO;AAAED,MAAAA,KAAK,EAALA,KAAF;AAASE,MAAAA,IAAI,EAAJA,IAAAA;KAAhB,CAAA;GAHF,CAAA;AAKD,CAAA;AAQD;;;AAGG;;AACa,SAAAC,aAAA,CACdC,OADc,EAOb;AAAA,EAAA,IAAA,eAAA,CAAA;;AAAA,EAAA,IALDC,QAKC,GALkB,SAAA,CAAA,MAAA,GAAA,CAAA,IAAA,SAAA,CAAA,CAAA,CAAA,KAAA,SAAA,GAAA,SAAA,CAAA,CAAA,CAAA,GAAA;AACjBC,IAAAA,KAAK,EAAE,CADU;AAEjBC,IAAAA,MAAM,EAAE,WAFS;IAGjBP,KAAK,EAAE,CAAC,CAHS;AAIjBE,IAAAA,IAAI,EAAE,CAAC,CAAA;GACR,CAAA;EAED,OACE,CAAA,eAAA,GAAAM,2CAAA,CAAAJ,OAAO,CAAA,CAAA,IAAP,CAAAA,OAAO,EAAuB,UAACK,GAAD,EAAMC,GAAN,EAA4B;AAAA,IAAA,IAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,CAAA;;IACxD,OAAO;MACLJ,KAAK,EAAE,eAACG,GAAD,KAAA,IAAA,IAACA,GAAD,KAACA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEH,KAAN,MAAA,IAAA,IAAA,UAAA,KAAA,KAAA,CAAA,GAAA,UAAA,GAAe,CAAf,KAAqBI,CAAAA,UAAAA,GAAAA,GAArB,aAAqBA,GAArB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAqBA,GAAG,CAAEJ,KAA1B,MAAmC,IAAA,IAAA,UAAA,KAAA,KAAA,CAAA,GAAA,UAAA,GAAA,CAAnC,CADF;AAELC,MAAAA,MAAM,EAAEI,0CAACF,CAAAA,QAAAA,GAAAA,CAAAA,CAAAA,WAAAA,GAAAA,GAAD,KAACA,IAAAA,IAAAA,GAAD,uBAACA,GAAG,CAAEF,MAAN,MAAA,IAAA,IAAA,WAAA,KAAA,KAAA,CAAA,GAAA,WAAA,GAAgB,WAAhB,EAA6BG,GAAG,CAACH,MAAjC,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,EACN,UAACA,MAAD,EAAA;QAAA,OAAqBA,MAAM,KAAK,WAAhC,CAAA;OADM,CAAA,GAGJ,WAHI,GAIJ,UANC;MAOLP,KAAK,EAAEY,IAAI,CAACC,GAAL,eAASJ,GAAT,KAAA,IAAA,IAASA,GAAT,KAASA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAET,KAAd,MAAA,IAAA,IAAA,UAAA,KAAA,KAAA,CAAA,GAAA,UAAA,GAAuBc,MAAM,CAACC,iBAA9B,EAAiDL,GAAG,CAACV,KAArD,CAPF;AAQLE,MAAAA,IAAI,EAAEU,IAAI,CAACI,GAAL,CAASP,CAAAA,SAAAA,GAAAA,GAAT,aAASA,GAAT,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAASA,GAAG,CAAEP,IAAd,iDAAsBY,MAAM,CAACG,iBAA7B,EAAgDP,GAAG,CAACR,IAApD,CAAA;KARR,CAAA;AAUD,GAXM,EAWJ,IAXI,CADT,MAAA,IAAA,IAAA,eAAA,KAAA,KAAA,CAAA,GAAA,eAAA,GAYcG,QAZd,CAAA;AAcD,CAAA;AAQD;;;;AAIG;;SACaa,kBAA8C,IAAA,EAAA;EAAA,IAA1BlB,KAA0B,QAA1BA,KAA0B;MAAnBE,IAAmB,QAAnBA,IAAmB,CAAA;AAC5D,EAAA,OAAA,EAAA,CAAA,MAAA,CAAU,CAACU,IAAI,CAACO,KAAL,CAAW,CAACjB,IAAI,GAAGF,KAAR,IAAiB,GAA5B,CAAmC,GAAA,EAApC,EAAwCoB,OAAxC,CAAgD,CAAhD,CAAV,EAAA,GAAA,CAAA,CAAA;AACD;;AChGM,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,GAAD,EAAA;AAAA,EAAA,OACvBC,4BAAQ,CAACC,MAAT,CAAgBF,GAAG,IAAI,EAAvB,EAA2B;AAAEG,IAAAA,QAAQ,EAAE,WAAA;AAAZ,GAA3B,CADuB,CAAA;AAAA,CAAlB,CAAA;AAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD,EAAA;AAAA,EAAA,OACxBJ,4BAAQ,CAACC,MAAT,CAAgBG,IAAI,IAAI,EAAxB,EAA4B;AAAEF,IAAAA,QAAQ,EAAE,YAAA;AAAZ,GAA5B,CADwB,CAAA;AAAA,CAAnB,CAAA;AAEA,IAAMG,QAAQ,GAAG,SAAXA,QAAW,CAACC,EAAD,EAAA;AAAA,EAAA,OACtBN,4BAAQ,CAACC,MAAT,CAAgBK,EAAE,IAAI,EAAtB,EAA0B;AAAEJ,IAAAA,QAAQ,EAAE,WAAA;AAAZ,GAA1B,CADsB,CAAA;AAAA,CAAjB,CAAA;AAEA,IAAMK,QAAQ,GAAG,SAAXA,QAAW,CAACC,EAAD,EAAA;AAAA,EAAA,OACtBR,4BAAQ,CAACC,MAAT,CAAgBO,EAAE,IAAI,EAAtB,EAA0B;AAAEN,IAAAA,QAAQ,EAAE,WAAA;AAAZ,GAA1B,CADsB,CAAA;AAAA,CAAjB;;;;ACHP;;AAEG;;AACG,SAAUO,mBAAV,CAA8BC,OAA9B,EAA8C;AAClD,EAAA,IAAMC,IAAI,GAAGD,OAAO,CAACE,UAArB,CAAA;EACA,IAAMC,KAAK,GAAGH,OAAO,CAACI,MAAR,CAAeC,IAAf,CAAoB,KAApB,CAAd,CAAA;AAEA,EAAA,IAAMC,IAAI,GAAGC,qBAAC,CAACC,IAAF,CAAOC,UAAP,CAAb,CAAA;AACAH,EAAAA,IAAI,CAAC,OAAD,CAAJ,CAAcI,IAAd,CAAmBP,KAAnB,CAAA,CAAA;AACA,EAAA,IAAMQ,IAAI,GAAGL,IAAI,CAAC,OAAD,CAAjB,CAAA;;AAEA,EAAAM,yCAAA,CAAAD,IAAI,CAAA,CAAA,IAAJ,CAAAA,IAAI,EAAM,oBAAN,CAAJ,CAAgCE,IAAhC,CACE,OADF,EAEEC,mCAAe,CAAA;AACbzB,IAAAA,GAAG,EAAEY,IAAI,CAACc,IAAL,CAAU1B,GADF;IAEb2B,YAAY,EAAEf,IAAI,CAACgB,SAAL,CAAe5B,GAAf,CAAmBgB,IAAnB,CAAwB,GAAxB,CAFD;AAGbX,IAAAA,IAAI,EAAEO,IAAI,CAACc,IAAL,CAAUrB,IAHH;AAIbE,IAAAA,EAAE,EAAEK,IAAI,CAACc,IAAL,CAAUnB,EAJD;IAKbsB,WAAW,EAAEjB,IAAI,CAACgB,SAAL,CAAerB,EAAf,CAAkBS,IAAlB,CAAuB,GAAvB,CALA;AAMbF,IAAAA,KAAK,EAAEH,OAAO,CAACI,MAAR,CAAeC,IAAf,CAAoB,KAApB,CAAA;AANM,GAAf,CAFF,CAAA,CAAA;;EAYA,OAAOC,IAAI,CAACZ,IAAL,EAAP,CAAA;AACD;;ACvBD;;;;AAIG;;SACayB,uBACdC,SACAC,UACAC,aAA4B;AAAA,EAAA,IAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA;;AAE5B;AACA,EAAA,IAAMC,cAAc,GAAGC,wCAAeH,CAAAA,QAAAA,GAAAA,wCAAAA,CAAAA,SAAAA,GAAAA,2CAAAA,CAAAA,SAAAA,GAAAA,mCAAAA,CAAAA,QAAQ,CAAC,MAAD,CAAR,CAAiBI,GAAjB,CAAqB,CAArB,CAAA,CAAwBC,OAAvC,CACb,CAAA,CAAA,IAAA,CAAA,SAAA,EAAA,UAAA,IAAA,EAAA;AAAA,IAAA,IAAA,KAAA,GAAAC,kCAAA,CAAA,IAAA,EAAA,CAAA,CAAA;AAAA,QAAEC,IAAF,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,OAAqB,KAAMC,CAAAA,IAAN,CAAWD,IAAX,CAArB,CAAA;AAAA,GADa,CAEhB,CAAA,CAAA,IAAA,CAAA,SAAA,EAAA,UAAA,KAAA,EAAA;AAAA,IAAA,IAAA,KAAA,GAAAD,kCAAA,CAAA,KAAA,EAAA,CAAA,CAAA;AAAA,QAAEC,IAAF,GAAA,KAAA,CAAA,CAAA,CAAA;AAAA,QAAQjE,KAAR,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,OAAqC,CAACmE,0CAAAF,CAAAA,IAAI,CAAJ,CAAA,IAAA,CAAAA,IAAI,EAAO,CAAP,CAAL,EAAmBjE,EAAAA,CAAAA,MAAAA,CAAAA,KAAnB,CAArC,CAAA,CAAA;AAAA,GAFgB,CAInB,CAAA,CAAA,IAAA,CAAA,QAAA,EAAA,UAAA,KAAA,EAAA;AAAA,IAAA,IAAA,SAAA,CAAA;;AAAA,IAAA,IAAA,KAAA,GAAAgE,kCAAA,CAAA,KAAA,EAAA,CAAA,CAAA;AAAA,QAAEC,IAAF,GAAA,KAAA,CAAA,CAAA,CAAA;AAAA,QAAQjE,KAAR,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,OAC8BiE,2CAAAA,CAAAA,SAAAA,GAAAA,4BAAAA,CAAAA,MAAAA,CAAAA,IAD9B,mCACgDjE,KADhD,EAAA,MAAA,CAAA,CAAA;AAAA,GAJmB,CAOpB0C,CAAAA,IAPoB,CAOf,IAPe,CAAvB,CAAA;;AAQA,EAAA,IAAMT,EAAE,GAAGD,QAAQ,CACjB6B,wCAAAH,CAAAA,SAAAA,GAAAA,wCAAAA,CAAAA,SAAAA,GAAAA,QAAQ,CAAC,QAAD,CAAR,CAAA,CAAA,IAAA,CAAA,SAAA,EACO,UAACU,EAAD,EAAKC,IAAL,EAAA;AAAA,IAAA,OAAeA,IAA2B,CAACC,QAA5B,CAAqC,CAArC,CAAf,CAAA;AAAA,GADP,CAEGR,CAAAA,GAFH,EAGO,CAAA,CAAA,IAAA,CAAA,SAAA,EAAA,UAACO,IAAD,EAAA;IAAA,OAAkBA,IAAI,CAAC/B,IAAvB,CAAA;GAHP,CAAA,CAIGI,IAJH,CAIQ,EAJR,CAAA,GAKE,OALF,GAMEkB,cAPe,CAAnB,CAX4B;;AAsB5B,EAAA,IAAMlC,GAAG,GAAGD,SAAS,CACnBoC,wCAAAH,CAAAA,SAAAA,GAAAA,wCAAAA,CAAAA,SAAAA,GAAAA,QAAQ,CAAC,OAAD,CAAR,CAAA,CAAA,IAAA,CAAA,SAAA,EACO,UAACU,EAAD,EAAKC,IAAL,EAAA;AAAA,IAAA,OAAeA,IAA2B,CAACC,QAA5B,CAAqC,CAArC,CAAf,CAAA;AAAA,GADP,CAEGR,CAAAA,GAFH,EAGO,CAAA,CAAA,IAAA,CAAA,SAAA,EAAA,UAACO,IAAD,EAAA;IAAA,OAAkBA,IAAI,CAAC/B,IAAvB,CAAA;AAAA,GAHP,EAIGI,IAJH,CAIQ,EAJR,CADmB,CAArB,CAtB4B;;AA+B5B,EAAA,IAAM6B,KAAK,GAAG3B,qBAAC,CAACC,IAAF,CAAOa,QAAQ,CAAC,MAAD,CAAR,CAAiB3B,IAAjB,EAAA,IAA2B,EAAlC,CAAd,CAAA;AACAwC,EAAAA,KAAK,CAAC,QAAD,CAAL,CAAgBC,MAAhB,EAAA,CAAA;AAEA,EAAA,IAAMzC,IAAI,GAAGD,UAAU,CAACyC,KAAK,CAAC,MAAD,CAAL,CAAcxC,IAAd,EAAD,CAAvB,CAlC4B;;AAqC5B,EAAA,IAAM0C,OAAO,GAAG,SAAVA,OAAU,CAACC,OAAD,EAAA;AAAA,IAAA,OACd,cAAeR,CAAAA,IAAf,CAAoBQ,OAApB,CACI;AACAA,IAAAA,OAFJ,GAGI,KAAA,CAAMR,IAAN,CAAWQ,OAAX,CACA;IACAjB,OAAO,GAAGU,2CAAAO,OAAO,CAAA,CAAA,IAAP,CAAAA,OAAO,EAAO,CAAP,CAFjB;AAIAjB,IAAAA,OAAO,GACPkB,aAAQ,CAACC,OAAO,CAACC,GAAR,EAAD,EAAgBC,YAAO,CAACC,YAAO,CAACpB,WAAD,CAAR,EAAuBe,OAAvB,CAAvB,CATE,CAAA;GAAhB,CAAA;;AAWA,EAAA,IAAMpB,SAAS,GAAG;IAChBrB,EAAE,EAAE4B,wCAAAH,CAAAA,SAAAA,GAAAA,2CAAAA,CAAAA,UAAAA,GAAAA,wCAAAA,CAAAA,UAAAA,GAAAA,QAAQ,CAAC,QAAD,CAAR,CACG,CAAA,IAAA,CAAA,UAAA,EAAA,UAACU,EAAD,EAAKC,IAAL,EAAA;MAAA,OAAkCzB,qBAAC,CAACyB,IAAD,CAAD,CAAQnB,IAAR,CAAa,KAAb,CAAlC,CAAA;AAAA,KADH,CAEDY,CAAAA,GAFC,EAGM,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,UAACkB,GAAD,EAAA;MAAA,OAAwB,OAAOA,GAAP,KAAe,QAAvC,CAAA;KAHN,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAIGP,OAJH,CADY;IAMhB/C,GAAG,EAAEmC,wCAAAH,CAAAA,UAAAA,GAAAA,2CAAAA,CAAAA,UAAAA,GAAAA,wCAAAA,CAAAA,UAAAA,GAAAA,QAAQ,CAAC,wBAAD,CAAR,CACE,CAAA,IAAA,CAAA,UAAA,EAAA,UAACU,EAAD,EAAKC,IAAL,EAAA;MAAA,OAAkCzB,qBAAC,CAACyB,IAAD,CAAD,CAAQnB,IAAR,CAAa,MAAb,CAAlC,CAAA;AAAA,KADF,CAEFY,CAAAA,GAFE,EAGK,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,UAACmB,IAAD,EAAA;MAAA,OAA0B,OAAOA,IAAP,KAAgB,QAA1C,CAAA;AAAA,KAHL,oBAIER,OAJF,CAAA;GANP,CAAA;EAaA,OAAO;AACLrB,IAAAA,IAAI,EAAE;AACJ1B,MAAAA,GAAG,EAAHA,GADI;AAEJK,MAAAA,IAAI,EAAJA,IAFI;AAGJE,MAAAA,EAAE,EAAFA,EAAAA;KAJG;AAMLqB,IAAAA,SAAS,EAATA,SAAAA;GANF,CAAA;AAQD;;;;AC9ED;;AAEG;;AACG,SAAU4B,oBAAV,CAA+B7C,OAA/B,EAA+C;AAAA,EAAA,IAAA,QAAA,CAAA;;AACnD,EAAA,IAAMC,IAAI,GAAGD,OAAO,CAACE,UAArB,CAAA;EACA,IAAMC,KAAK,GAAGH,OAAO,CAACI,MAAR,CAAeC,IAAf,CAAoB,KAApB,CAAd,CAAA;;AACA,EAAA,IAAMY,SAAS,GAAG6B,2CAAA,CAAA,QAAA,GAAA,EAAA,CAAA,CAAA,IAAA,CAAA,QAAA,EAAAC,sCAAA,CAAI9C,IAAI,CAACgB,SAAL,CAAe5B,GAAnB,CAAA,EAAA0D,sCAAA,CAA2B9C,IAAI,CAACgB,SAAL,CAAerB,EAA1C,GAA8CS,IAA9C,CAAmD,GAAnD,CAAlB,CAAA;;AAEA,EAAA,IAAMC,IAAI,GAAGC,qBAAC,CAACC,IAAF,CAAOC,QAAP,CAAb,CAAA;AACAH,EAAAA,IAAI,CAAC,OAAD,CAAJ,CAAcI,IAAd,CAAmBP,KAAnB,CAAA,CAAA;AACA,EAAA,IAAMQ,IAAI,GAAGL,IAAI,CAAC,OAAD,CAAjB,CAPmD;;AAUnD,EAAAM,yCAAA,CAAAD,IAAI,CAAJ,CAAA,IAAA,CAAAA,IAAI,EAAM,mBAAN,CAAJ,CAA+BE,IAA/B,CAAoC,OAApC,EAA6CZ,IAAI,CAACc,IAAL,CAAU1B,GAAvD,CAAA,CAAA;;AACA,EAAAuB,yCAAA,CAAAD,IAAI,CAAJ,CAAA,IAAA,CAAAA,IAAI,EAAM,oBAAN,CAAJ,CAAgCE,IAAhC,CAAqC,OAArC,EAA8CZ,IAAI,CAACc,IAAL,CAAUrB,IAAxD,CAAA,CAAA;;AACA,EAAAkB,yCAAA,CAAAD,IAAI,CAAJ,CAAA,IAAA,CAAAA,IAAI,EAAM,kBAAN,CAAJ,CAA8BE,IAA9B,CAAmC,OAAnC,EAA4CZ,IAAI,CAACc,IAAL,CAAUnB,EAAtD,CAAA,CAAA;;AACA,EAAAgB,yCAAA,CAAAD,IAAI,CAAA,CAAA,IAAJ,CAAAA,IAAI,EAAM,yBAAN,CAAJ,CAAqCE,IAArC,CAA0C,OAA1C,EAAmDI,SAAnD,CAAA,CAAA;;AACA,EAAAL,yCAAA,CAAAD,IAAI,CAAA,CAAA,IAAJ,CAAAA,IAAI,EAAM,qBAAN,CAAJ,CAAiCE,IAAjC,CAAsC,OAAtC,EAA+CV,KAA/C,EAdmD;;;AAiBnD,EAAAS,yCAAA,CAAAD,IAAI,CAAA,CAAA,IAAJ,CAAAA,IAAI,EAAM,oBAAN,CAAJ,CAAgCE,IAAhC,CAAqC,OAArC,EAA8C,GAA9C,CAAA,CAAA;;EAEA,OAAOP,IAAI,CAACZ,IAAL,EAAP,CAAA;AACD;;;;;;;;;ACjBD,IAAMsD,MAAM,GAAGC,cAAS,CAACC,sBAAE,CAACF,MAAJ,CAAxB,CAAA;AACA,IAAMG,WAAS,GAAGF,cAAS,CAACC,sBAAE,CAACC,SAAJ,CAA3B,CAAA;AAEA;;;;;;;AAOG;;SACYC;;;AA+Bf;;;;;;;AAOG;;;;AAtCH,EAAA,kBAAA,GAAAC,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,OAAA,CAAiCC,UAAjC,EAAA;AAAA,IAAA,IAAA,KAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AAAA,IAAA,OAAAD,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CAAA,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,QAAA,CAAA,IAAA,GAAA,QAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,QAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACsBE,wBAAI,CAACC,IAAL,CAAUF,UAAV,CADtB,CAAA;;AAAA,UAAA,KAAA,CAAA;YACQG,KADR,GAAA,QAAA,CAAA,IAAA,CAAA;YAEQC,UAFR,GAEqBD,KAAK,CAACE,aAAN,CAAoB,CAApB,EAAuB,CAAvB,CAFrB,CAAA;AAIWC,YAAAA,CAJX,GAIe,CAJf,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,EAIkBA,CAAC,GAAGH,KAAK,CAACI,QAAN,EAJtB,CAAA,EAAA;AAAA,cAAA,QAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAKaC,YAAAA,CALb,GAKiB,CALjB,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,EAKoBA,CAAC,GAAGL,KAAK,CAACM,SAAN,EALxB,CAAA,EAAA;AAAA,cAAA,QAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;YAAA,IAMUL,EAAAA,UAAU,KAAKD,KAAK,CAACE,aAAN,CAAoBC,CAApB,EAAuBE,CAAvB,CANzB,CAAA,EAAA;AAAA,cAAA,QAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,OAAA,QAAA,CAAA,MAAA,CAAA,QAAA,EAOe,IAPf,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAK2C,YAAA,EAAEA,CAL7C,CAAA;AAAA,YAAA,QAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAIwC,YAAA,EAAEF,CAJ1C,CAAA;AAAA,YAAA,QAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,OAAA,QAAA,CAAA,MAAA,CAAA,QAAA,EAYS,KAZT,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,QAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,OAAA,CAAA,CAAA;;;;;AAuCA,SAAsBI,kBAAtB,CAAA,GAAA,EAAA,GAAA,EAAA;AAAA,EAAA,OAAA,mBAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,CAAA;;;yHAAO,SACLC,QAAAA,CAAAA,OADK,EAELC,MAFK,EAAA;AAAA,IAAA,IAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,cAAA,EAAA,OAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,KAAA,EAAA,QAAA,CAAA;;AAAA,IAAA,OAAAb,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;YAIGc,KAJH,GAIuDD,MAJvD,CAIGC,KAJH,EAIUpE,OAJV,GAIuDmE,MAJvD,CAIUnE,OAJV,EAImBqE,MAJnB,GAIuDF,MAJvD,CAImBE,MAJnB,EAI2BC,gBAJ3B,GAIuDH,MAJvD,CAI2BG,gBAJ3B,EAI6CC,KAJ7C,GAIuDJ,MAJvD,CAI6CI,KAJ7C,CAAA;AAMCC,YAAAA,OAND,GAM2C,EAN3C,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AASH;AACA;YACMC,OAXH,GAWahC,YAAO,CACrBC,YAAO,CAAC1C,OAAO,CAAC0E,KAAR,CAAcpE,IAAd,CAAmBqE,KAApB,CADc,EAErB,0BAAA,GAA6BC,aAAQ,CAAC5E,OAAO,CAAC0E,KAAR,CAAcpE,IAAd,CAAmBqE,KAApB,CAFhB,CAXpB,CAAA;YAeGE,cAfH,GAeoBtE,qBAAC,CAACC,IAAF,CAAOR,OAAO,CAACN,IAAf,CAfpB,CAAA;YAgBHmF,cAAc,CAAC,MAAD,CAAd,CAAuBC,OAAvB,CACEvE,qBAAC,CAAC,UAAD,CAAD,CACGM,IADH,CACQ,MADR,EACgB,iBADhB,EAEGH,IAFH,CAAA,iBAAA,CAAA,MAAA,CAE0B,IAF1B,EADF,GAAA,CAAA,CAAA,EAIEH,qBAAC,CAAC,UAAD,CAAD,CACGM,IADH,CACQ,MADR,EACgB,iBADhB,CAEGH,CAAAA,IAFH,CAEQqE,sBAFR,CAJF,EAOExE,qBAAC,CAAC,UAAD,CAAD,CAAcM,IAAd,CAAmB,MAAnB,EAA2B,iBAA3B,CAA8CH,CAAAA,IAA9C,CAAmD4D,gBAAnD,CAPF,EAQE/D,qBAAC,CAAC,SAAD,CAAD,CACGM,IADH,CACQ,MADR,EACgB,UADhB,CAAA,CAEGH,IAFH,CAGI,CAAA,EAAA,CAAA,MAAA,CACKV,OAAO,CAACgF,QADb,SAEE,4BAFF,EAGE,EAHF,EAIkBT,eAAAA,CAAAA,MAAAA,CAAAA,KAJlB,6CAKmBF,MALnB,EAAA,gBAAA,CAAA,EAAA,WAAA,CAAA,MAAA,CAMcE,KANd,EAOeF,gBAAAA,CAAAA,EAAAA,YAAAA,CAAAA,MAAAA,CAAAA,MAPf,4CAQkBE,KARlB,EAAA,gBAAA,CAAA,EAAA,gBAAA,CAAA,MAAA,CASmBF,MATnB,EAUE,gBAAA,CAAA,EAAA,GAVF,EAWEhE,IAXF,CAWO,IAXP,CAHJ,CARF,CAAA,CAAA;AAhBG,YAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;YAAA,OAyCG8C,WAAS,CAACsB,OAAD,EAAUhF,UAAU,CAACoF,cAAc,CAACnF,IAAf,EAAD,CAApB,CAzCZ,CAAA;;AAAA,UAAA,KAAA,CAAA;YA0CH,IAAI,CAAC0E,KAAL,EAAY;cACVI,OAAO,CAACS,IAAR,CAAa,YAAA;gBAAA,OAAqBjC,MAAM,CAACyB,OAAD,CAA3B,CAAA;eAAb,CAAA,CAAA;AACD,aAAA;;AA5CE,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;YAAA,OA8CmBP,OAAO,CAACgB,6BAAR,EA9CnB,CAAA;;AAAA,UAAA,KAAA,EAAA;YA8CGC,OA9CH,GAAA,SAAA,CAAA,IAAA,CAAA;;YA+CH,IAAI,CAACf,KAAL,EAAY;cACVI,OAAO,CAACS,IAAR,CAAa,YAAA;gBAAA,OAAqBE,OAAO,CAACC,KAAR,EAArB,CAAA;eAAb,CAAA,CAAA;AACD,aAAA;;AAjDE,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;YAAA,OAmDgBD,OAAO,CAACE,OAAR,EAnDhB,CAAA;;AAAA,UAAA,KAAA,EAAA;YAmDG/E,IAnDH,GAAA,SAAA,CAAA,IAAA,CAAA;;YAoDH,IAAI,CAAC8D,KAAL,EAAY;cACVI,OAAO,CAACS,IAAR,CAAa,YAAA;gBAAA,OAAqB3E,IAAI,CAAC8E,KAAL,EAArB,CAAA;eAAb,CAAA,CAAA;AACD,aAAA;;AAtDE,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;YAAA,OAwDG9E,IAAI,CAACgF,WAAL,CAAiB;cAAEf,KAAK,EAAEA,KAAK,GAAG,EAAjB;cAAqBF,MAAM,EAAEA,MAAM,GAAG,EAAA;AAAtC,aAAjB,CAxDH,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAyDG/D,IAAI,CAACiF,IAAL,CAAU,SAAA,GAAYd,OAAO,CAACe,KAAR,CAAcC,QAAd,EAAmBpF,IAAnB,CAAwBqF,UAAK,CAACD,GAA9B,CAAtB,CAzDH,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OA2DGnF,IAAI,CAACqF,eAAL,CAAqB3F,OAAO,CAACgF,QAA7B,EAAuC;AAC3CY,cAAAA,OAAO,EAAE,IADkC;AAE3CC,cAAAA,OAAO,EAAE7F,OAAO,CAAC6F,OAAR,GAAkB,IAAA;AAFgB,aAAvC,CA3DH,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,IAAA,EAgEC7F,OAAO,CAAC8F,KAAR,KAAkB,MAhEnB,CAAA,EAAA;AAAA,cAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAiEKxF,IAAI,CAACyF,QAAL,CACJ,yDADI,CAjEL,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;YAAA,OAqEKzF,IAAI,CAAC0F,cAAL,CAAoBhG,OAAO,CAAC8F,KAAR,GAAgB,IAApC,CArEL,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAwEoBxF,IAAI,CAACC,CAAL,CAAOP,OAAO,CAACgF,QAAf,CAxEpB,CAAA;;AAAA,UAAA,KAAA,EAAA;YAwEGiB,QAxEH,GAAA,SAAA,CAAA,IAAA,CAAA;;YAAA,IAyECA,EAAAA,QAAQ,IAAI,IAzEb,CAAA,EAAA;AAAA,cAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;YAAA,MA0EK,IAAIC,KAAJ,CAAApD,2CAAA,CAAA,SAAA,GAAA,YAAA,CAAA,MAAA,CACQ9C,OAAO,CAACgF,QADhB,EAC0ChF,kBAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,EAAAA,OAAO,CAACnC,IADlD,EA1EL,GAAA,CAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OA+EGoI,QAAQ,CAACF,QAAT,CAAkB,UAACI,OAAD,EAA2B;AACjDA,cAAAA,OAAO,CAACC,cAAR,EAAA,CAAA;AACD,aAFK,CA/EH,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;YAAA,OAmFsBH,QAAQ,CAAC1C,UAAT,CAAoB;AAC3C8C,cAAAA,QAAQ,EAAE,QAAA;AADiC,aAApB,CAnFtB,CAAA;;AAAA,UAAA,KAAA,EAAA;YAmFG9C,UAnFH,GAAA,SAAA,CAAA,IAAA,CAAA;;YAAA,IAuFCA,EAAAA,UAAU,IAAI,IAvFf,CAAA,EAAA;AAAA,cAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;YAAA,MAwFK,IAAI2C,KAAJ,CAA2ClG,qCAAAA,CAAAA,MAAAA,CAAAA,OAAO,CAAC0E,KAAR,CAAcpE,IAAzD,EAxFL,QAAA,CAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;YAAA,IAyFQ,EAAA,OAAOiD,UAAP,KAAsB,QAzF9B,CAAA,EAAA;AAAA,cAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;YAAA,MA6FK,IAAI2C,KAAJ,CACmDlG,2DAAAA,CAAAA,MAAAA,CAAAA,OAAO,CAAC0E,KAAR,CAAcpE,IADjE,EA7FL,QAAA,CAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;YAAA,OAkGG6C,WAAS,CAACnD,OAAO,CAAC0E,KAAR,CAAcnB,UAAd,CAAyBoB,KAA1B,EAAiCpB,UAAjC,CAlGZ,CAAA;;AAAA,UAAA,KAAA,EAAA;YAAA,OAqGIH,SAAAA,CAAAA,MAAAA,CAAAA,QAAAA,EAAAA,iBAAiB,CAACG,UAAD,CArGrB,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,SAAA,CAAA,EAAA,GAAA,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAuGH+C,YAAAA,OAAO,CAACC,KAAR,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA;AAvGG,YAAA,OAAA,SAAA,CAAA,MAAA,CAAA,QAAA,EAwGI,KAxGJ,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;YAAA,SA0GoB,GAAAC,4BAAA,CAAAC,4CAAA,CAAA,SAAA,GAAAC,2CAAA,CAAAlC,OAAO,CAAP,CAAA,IAAA,CAAAA,OAAO,EAAQ,CAAR,CAAP,CA1GpB,CAAA,IAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,YAAA,SAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,IAAA,CAAA,KAAA,GAAA,SAAA,CAAA,CAAA,EAAA,EAAA,IAAA,EAAA;AAAA,cAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;YA0GQmC,QA1GR,GAAA,KAAA,CAAA,KAAA,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OA4GOA,QAAQ,EA5Gf,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,SAAA,CAAA,EAAA,GAAA,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AA8GCL,YAAAA,OAAO,CAACC,KAAR,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;AA9GD,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,SAAA,CAAA,EAAA,GAAA,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,YAAA,SAAA,CAAA,CAAA,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,YAAA,SAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,YAAA,OAAA,SAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,OAAA,SAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;AC5CP,IAAMK,QAAQ,GAAG,IAAIC,IAAI,CAACC,QAAT,CAAkB,IAAlB,CAAjB,CAAA;AACA,IAAM3D,SAAS,GAAGF,cAAS,CAACC,sBAAE,CAACC,SAAJ,CAA3B,CAAA;AAsCA,IAAa4D,cAAb,gBAAA,YAAA;AACE,EAAA,SAAA,cAAA,CAAoCC,OAApC,EAAiE;AAAA,IAAAC,mCAAA,CAAA,IAAA,EAAA,cAAA,CAAA,CAAA;;AAAA,IAAAC,mCAAA,CAAA,IAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;IAA7B,IAAOF,CAAAA,OAAP,GAAAA,OAAA,CAAA;AAAiC,GAAA;AAErE;;;;;;;;AAQG;;;AAXL,EAAAG,gCAAA,CAAA,cAAA,EAAA,CAAA;AAAA,IAAA,GAAA,EAAA,OAAA;AAAA,IAAA,KAAA,EAYS,SAKC,KAAA,GAAA;AAAA,MAAA,IAAA,QAAA;AAAA,UAAA,SAAA;AAAA,UAAA,KAAA,GAAA,IAAA,CAAA;;MAAA,IAJNC,IAIM,uEAAF,EAAE,CAAA;;MAEN,IAAMC,WAAW,GAAG,IAAKC,CAAAA,aAAL,CAAmB,IAAKN,CAAAA,OAAL,CAAaO,QAAhC,CAApB,CAAA;;MAEA,IAAMC,IAAI,GAAa,EAAvB,CAAA;MACA,IAAMC,IAAI,GAAa,EAAvB,CAAA;AAEAnB,MAAAA,OAAO,CAACoB,IAAR,CAAA5E,2CAAA,CAAA,QAAA,GAAA,oBAAA,CAAA,MAAA,CACuB6E,uDACnBP,IAAI,CAACQ,KAAL,GAAa,CAAC,aAAD,CAAb,GAA+B,EADZ,EAEnBR,IAAI,CAACS,WAAL,GAAmB,CAAC,oBAAD,CAAnB,GAA4C,EAFzB,EAGnBT,IAAI,CAACU,WAAL,GAAmB,CAAC,aAAD,CAAnB,GAAqC,EAHlB,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,CAAA,CAMlBzH,IANkB,CAMb,IANa,CADvB,EAOuBgH,OAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,QAAAA,EAAAA,WAAW,CAACU,MAPnC,EAAA,YAAA,CAAA,CAAA,CAAA;AASAxF,MAAAA,OAAO,CAACyF,MAAR,CAAeC,KAAf,CAAqB,IAArB,CAAA,CAAA;AAEA,MAAA,IAAML,KAAK,GAA+BR,IAAI,CAACQ,KAAL;MAEtCvE,qCAAC,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,GAAA;AAAA,QAAA,IAAA,SAAA,CAAA;;AAAA,QAAA,IAAA,cAAA,EAAA,OAAA,CAAA;AAAA,QAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA;AAAA,YAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,cAAA,KAAA,CAAA;gBACO4E,cADP,GACwBpK,kBAAkB,EAD1C,CAAA;AAAA,gBAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OAGuBqK,4BAAQC,CAAAA,UAAR,CACpB5G,wCAAA,CAAA,SAAA,GAAA,KAAI,CAACwF,OAAL,CAAaqB,QAAb,CACGC,MADH,CAEI,KAAI,CAACtB,OAAL,CAAaO,QAFjB,EAGI,KAAI,CAACP,OAAL,CAAauB,MAHjB,EAII,KAAI,CAACvB,OAAL,CAAa7G,KAJjB,EAKIyG,QALJ,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,eAAA,YAAA;kBAAA,IAQI,KAAA,GAAAvD,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,OAAA,CAAA,KAAA,EAAA;AAAA,oBAAA,IAAA,OAAA,EAAA,QAAA,CAAA;AAAA,oBAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CAAA,SAAA,EAAA;AAAA,sBAAA,OAAA,CAAA,EAAA;AAAA,wBAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,0BAAA,KAAA,CAAA;AAASkF,4BAAAA,OAAT,GAASA,KAAAA,CAAAA,OAAT,EAAkBC,QAAlB,SAAkBA,QAAlB,CAAA;AAAA,4BAAA,OAAA,SAAA,CAAA,MAAA,CAAA,QAAA,EACEtF,SAAS,CAAC9C,SAAI,CAAC,KAAI,CAAC2G,OAAL,CAAauB,MAAd,EAAsBE,QAAtB,CAAL,EAAsCD,OAAtC,CADX,CAAA,CAAA;;AAAA,0BAAA,KAAA,CAAA,CAAA;AAAA,0BAAA,KAAA,KAAA;AAAA,4BAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,yBAAA;AAAA,uBAAA;AAAA,qBAAA,EAAA,OAAA,CAAA,CAAA;mBARJ,CAAA,CAAA,CAAA;;AAAA,kBAAA,OAAA,UAAA,EAAA,EAAA;AAAA,oBAAA,OAAA,KAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,mBAAA,CAAA;AAAA,iBAAA,EAAA,CADoB,CAHvB,CAAA;;AAAA,cAAA,KAAA,CAAA;gBAGOE,OAHP,GAAA,SAAA,CAAA,IAAA,CAAA;gBAAA,OAiBQ,SAAA,CAAA,MAAA,CAAA,QAAA,EAAA,CAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAEAT,cAAc,EAFd,CAAA,EAAA,EAAA,EAAA;kBAGH7J,KAAK,EAAEqK,OAAO,CAACX,MAHZ;AAIHzJ,kBAAAA,MAAM,EAAEI,0CAAAgK,CAAAA,OAAO,CAAP,CAAA,IAAA,CAAAA,OAAO,EACb,UAAA,KAAA,EAAA;oBAAA,IAAGE,MAAH,SAAGA,MAAH,CAAA;oBAAA,OAAyBA,MAAM,KAAK,WAApC,CAAA;mBADa,CAAP,GAGJ,WAHI,GAIJ,UAAA;iBAzBT,CAAA,CAAA,CAAA,CAAA;;AAAA,cAAA,KAAA,CAAA,CAAA;AAAA,cAAA,KAAA,KAAA;AAAA,gBAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SAAA,EAAA,QAAA,CAAA,CAAA;AAAA,OAAD,IAFsC;MAgCtCT,4BAAQ1F,CAAAA,OAAR,CAAgB,EAAhB,CAhCJ,CAAA;AAkCA,MAAA,IAAMoF,WAAW,GAAqCT,IAAI,CAACS,WAAL;MAElDxE,qCAAC,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,GAAA;AAAA,QAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA;AAAA,YAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,cAAA,KAAA,CAAA;AAAA,gBAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OACO6E,6BAAQU,GAAR,CACJrH,yCAAA6F,WAAW,CAAA,CAAA,IAAX,CAAAA,WAAW,eAAA,YAAA;AAAA,kBAAA,IAAA,KAAA,GAAAhE,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAK,kBAAOtD,OAAP,EAAA;AAAA,oBAAA,IAAA,SAAA,CAAA;;AAAA,oBAAA,IAAA,cAAA,EAAA,OAAA,CAAA;AAAA,oBAAA,OAAAsD,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,sBAAA,OAAA,CAAA,EAAA;AAAA,wBAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,0BAAA,KAAA,CAAA;4BACR4E,cADQ,GACSpK,kBAAkB,EAD3B,CAAA;AAAA,4BAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;4BAAA,OAGQqK,4BAAA,CAAQC,UAAR,CACpB5G,wCACE,CAAA,SAAA,GAAA,CAAA;AACE9B,8BAAAA,IAAI,EAAEmD,oBAAoB,CAAC7C,OAAD,CAD5B;AAEEnC,8BAAAA,IAAI,EAAEmC,OAAO,CAAC0E,KAAR,CAAcoE,QAAd,CAAuBnE,KAAAA;AAF/B,6BADF,EAKE;AACEjF,8BAAAA,IAAI,EAAEK,mBAAmB,CAACC,OAAD,CAD3B;AAEEnC,8BAAAA,IAAI,EAAEmC,OAAO,CAAC0E,KAAR,CAAcqE,OAAd,CAAsBpE,KAAAA;AAF9B,6BALF,CAUE,CAAA,CAAA,IAAA,CAAA,SAAA,EAAA,UAAA,KAAA,EAAA;8BAAA,IAAGjF,IAAH,SAAGA,IAAH;kCAAS7B,IAAT,SAASA,IAAT,CAAA;8BAAA,OACEsF,SAAS,CAACtF,IAAD,EAAO4B,UAAU,CAACC,IAAD,CAAjB,CADX,CAAA;AAAA,6BAVF,CADoB,CAHR,CAAA;;AAAA,0BAAA,KAAA,CAAA;4BAGRgJ,OAHQ,GAAA,SAAA,CAAA,IAAA,CAAA;AAAA,4BAAA,OAAA,SAAA,CAAA,MAAA,CAAA,QAAA,EAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAoBTT,cAAc,EApBL,CAAA,EAAA,EAAA,EAAA;8BAqBZ7J,KAAK,EAAEqK,OAAO,CAACX,MArBH;AAsBZ/H,8BAAAA,OAAO,EAAEA,OAtBG;AAuBZ1B,8BAAAA,MAAM,EAAEI,0CAAAgK,CAAAA,OAAO,CAAP,CAAA,IAAA,CAAAA,OAAO,EACb,UAAA,KAAA,EAAA;gCAAA,IAAGE,MAAH,SAAGA,MAAH,CAAA;gCAAA,OAAyBA,MAAM,KAAK,WAApC,CAAA;+BADa,CAAP,GAGJ,WAHI,GAIJ,UAAA;AA3BQ,6BAAA,CAAA,CAAA,CAAA;;AAAA,0BAAA,KAAA,CAAA,CAAA;AAAA,0BAAA,KAAA,KAAA;AAAA,4BAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,yBAAA;AAAA,uBAAA;AAAA,qBAAA,EAAA,QAAA,CAAA,CAAA;mBAAL,CAAA,CAAA,CAAA;;AAAA,kBAAA,OAAA,UAAA,GAAA,EAAA;AAAA,oBAAA,OAAA,KAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,mBAAA,CAAA;AAAA,iBAAA,EAAA,CADP,CADP,CAAA;;AAAA,cAAA,KAAA,CAAA;AAAA,gBAAA,OAAA,SAAA,CAAA,MAAA,CAAA,QAAA,EAAA,SAAA,CAAA,IAAA,CAAA,CAAA;;AAAA,cAAA,KAAA,CAAA,CAAA;AAAA,cAAA,KAAA,KAAA;AAAA,gBAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SAAA,EAAA,QAAA,CAAA,CAAA;AAAA,OAAD,IAFkD;MAoClDT,4BAAQ1F,CAAAA,OAAR,CAAgB,EAAhB,CApCJ,CAAA;AAsCA,MAAA,IAAMqF,WAAW,GAAqCV,IAAI,CAACU,WAAL;MAElDzE,qCAAC,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,GAAA;AAAA,QAAA,IAAA,OAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,KAAA,EAAA,QAAA,CAAA;;AAAA,QAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA;AAAA,YAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,cAAA,KAAA,CAAA;AACOkB,gBAAAA,OADP,GACiD,EADjD,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;gBAISJ,KAJT,GAIiB,iBAAkBvC,CAAAA,IAAlB,CAAuBU,CAAAA,kBAAAA,GAAAA,OAAO,CAACyG,GAAR,CAAYC,KAAnC,MAA4C,IAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,GAAA,kBAAA,GAAA,EAA5C,CAJjB,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;gBAAA,OAKyBC,6BAAS,CAACC,MAAV,CAAiB;kBACrCC,QAAQ,EAAE,CAAChF,KAD0B;AAErCiF,kBAAAA,MAAM,EAAEjF,KAAK,GAAG,GAAH,GAASkF,SAAAA;AAFe,iBAAjB,CALzB,CAAA;;AAAA,cAAA,KAAA,CAAA;gBAKSpF,OALT,GAAA,UAAA,CAAA,IAAA,CAAA;;AASG,gBAAA,IAAIE,KAAJ,EAAW;kBACTI,OAAO,CAACS,IAAR,eAAa5B,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,GAAA;AAAA,oBAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,sBAAA,OAAA,CAAA,EAAA;AAAA,wBAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,0BAAA,KAAA,CAAA;4BAAA,OAA2BY,SAAAA,CAAAA,MAAAA,CAAAA,QAAAA,EAAAA,OAAO,CAACqF,UAAR,EAA3B,CAAA,CAAA;;AAAA,0BAAA,KAAA,CAAA,CAAA;AAAA,0BAAA,KAAA,KAAA;AAAA,4BAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,yBAAA;AAAA,uBAAA;AAAA,qBAAA,EAAA,QAAA,CAAA,CAAA;mBAAb,CAAA,CAAA,CAAA,CAAA;AACD,iBAFD,MAEO;kBACL/E,OAAO,CAACS,IAAR,CAAa,YAAA;oBAAA,OAAqBf,OAAO,CAACkB,KAAR,EAArB,CAAA;mBAAb,CAAA,CAAA;AACD,iBAbJ;AAgBG;AACA;;;AACMoE,gBAAAA,IAlBT,GAkBgB1H,0CAAAuF,CAAAA,WAAW,CAAX,CAAA,IAAA,CAAAA,WAAW,CAlB3B,CAAA;gBAmBSoC,KAnBT,GAmBiBD,IAAI,CAACzB,MAnBtB,CAAA;AAoBS5J,gBAAAA,OApBT,GAoBoC,EApBpC,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,OAqBSgK,4BAAQC,CAAAA,UAAR,CACJ5G,wCAAA,CAAA,UAAA,GAAAkI,yCAAA,CAAA,UAAA,GAAA,IAAIC,KAAJ,CAAU,KAAI,CAAC3C,OAAL,CAAa4C,QAAvB,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EACQ,IADR,CAEO,CAAA,CAAA,IAAA,CAAA,UAAA,eAAAvG,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,GAAA;AAAA,kBAAA,IAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,KAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,CAAA;;AAAA,kBAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,oBAAA,OAAA,CAAA,EAAA;AAAA,sBAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,wBAAA,KAAA,CAAA;AAAA,0BAAA,IAAA,EAEKtD,OAAO,GAAGwJ,IAAI,CAACK,GAAL,EAFf,CAAA,EAAA;AAAA,4BAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,4BAAA,MAAA;AAAA,2BAAA;;0BAGK3B,cAHL,GAGsBpK,kBAAkB,EAHxC,CAAA;AAAA,0BAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;0BAAA,OAKmBmG,kBAAkB,CAACC,OAAD,EAAU;AAC9CE,4BAAAA,KAAK,EAALA,KAD8C;AAE9CpE,4BAAAA,OAAO,EAAPA,OAF8C;4BAG9CqE,MAAM,EAAE,KAAI,CAAC2C,OAAL,CAAaqB,QAAb,CAAsB9E,UAAtB,CAAiCc,MAHK;AAI9CC,4BAAAA,gBAAgB,EAAE,KAAI,CAAC0C,OAAL,CAAa1C,gBAJe;4BAK9CC,KAAK,EAAE,KAAI,CAACyC,OAAL,CAAaqB,QAAb,CAAsB9E,UAAtB,CAAiCgB,KAAAA;AALM,2BAAV,CALrC,CAAA;;AAAA,wBAAA,KAAA,CAAA;0BAKKuF,KALL,GAAA,UAAA,CAAA,IAAA,CAAA;0BAaKC,MAbL,GAAApB,eAAA,CAAAA,eAAA,CAAA,EAAA,EAcIT,cAAc,EAdlB,CAAA,EAAA,EAAA,EAAA;AAeC7J,4BAAAA,KAAK,EAAE,CAfR;AAgBC2B,4BAAAA,OAAO,EAAPA,OAhBD;AAiBC1B,4BAAAA,MAAM,EAAEwL,KAAK,GAAG,WAAH,GAAiB,UAAA;AAjB/B,2BAAA,CAAA,CAAA;0BAmBD3L,OAAO,CAAC8G,IAAR,CAAa8E,MAAb,CAAA,CAAA;;AAEA,0BAAA,IAAID,KAAJ,EAAW;AACTtC,4BAAAA,IAAI,CAACvC,IAAL,CAAUjF,OAAO,CAACnC,IAAlB,CAAA,CAAA;AACD,2BAFD,MAEO;AACL4J,4BAAAA,IAAI,CAACxC,IAAL,CAAUjF,OAAO,CAACnC,IAAlB,CAAA,CAAA;AACD,2BAAA;;AAEKmM,0BAAAA,UA3BL,GA2BkBC,6CACjBtL,CAAAA,UAAAA,GAAAA,IAAI,CAACuL,KAAL,CAAY/L,OAAO,CAAC4J,MAAR,GAAiB0B,KAAlB,GAA2B,GAAtC,CAA6C,GAAA,GAD5B,mBAER,CAFQ,EAEL,GAFK,CA3BlB,CAAA;AA8BKU,0BAAAA,SA9BL,GA8BiBL,KAAK,GAAG,MAAH,GAAY,MA9BlC,CAAA;AA+BKM,0BAAAA,MA/BL,GA+BcnL,iBAAiB,CAAC8K,MAAD,CA/B/B,CAAA;0BAgCDzD,OAAO,CAACoB,IAAR,CAAA5E,2CAAA,CAAA,UAAA,GAAAA,2CAAA,CAAA,UAAA,GAAAA,2CAAA,CAAA,UAAA,GAAA,EAAA,CAAA,MAAA,CACKkH,UADL,EAAA,GAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EACmBG,SADnB,EAAA,GAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EACgCC,MADhC,EAAA,KAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAC4CpK,OAAO,CAACnC,IADpD,CAAA,CAAA,CAAA;AAhCC,0BAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,0BAAA,MAAA;;AAAA,wBAAA,KAAA,EAAA,CAAA;AAAA,wBAAA,KAAA,KAAA;AAAA,0BAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,uBAAA;AAAA,qBAAA;AAAA,mBAAA,EAAA,QAAA,CAAA,CAAA;AAAA,iBAFP,GADI,CArBT,CAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,EA+DUM,OA/DV,CAAA,CAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;gBAAA,SAiE0B,GAAAqI,4BAAA,CAAAC,4CAAA,CAAA,UAAA,GAAAC,2CAAA,CAAAlC,OAAO,CAAP,CAAA,IAAA,CAAAA,OAAO,EAAQ,CAAR,CAAP,CAjE1B,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,gBAAA,SAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,IAAA,CAAA,KAAA,GAAA,SAAA,CAAA,CAAA,EAAA,EAAA,IAAA,EAAA;AAAA,kBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;;gBAiEcmC,QAjEd,GAAA,KAAA,CAAA,KAAA,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,OAmEaA,QAAQ,EAnErB,CAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAqEOL,gBAAAA,OAAO,CAACC,KAAR,CAAA,UAAA,CAAA,EAAA,CAAA,CAAA;;AArEP,cAAA,KAAA,EAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,gBAAA,SAAA,CAAA,CAAA,CAAA,UAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,gBAAA,SAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,gBAAA,OAAA,UAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,cAAA,KAAA,EAAA;AAAA,gBAAA,OAAA,UAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,cAAA,KAAA,EAAA,CAAA;AAAA,cAAA,KAAA,KAAA;AAAA,gBAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,GAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,OAAD,IAFkD;MA6ElD4B,4BAAQ1F,CAAAA,OAAR,CAAgB,EAAhB,CA7EJ,CAAA;;MA+EA,IAAM4H,MAAM,GAAGhH,qCAAC,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,GAAA;AAAA,QAAA,IAAA,KAAA,CAAA;AAAA,QAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA;AAAA,YAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,cAAA,KAAA,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OACRsE,KADQ,CAAA;;AAAA,cAAA,KAAA,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OAERC,WAFQ,CAAA;;AAAA,cAAA,KAAA,CAAA;AAAA,gBAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OAGRC,WAHQ,CAAA;;AAAA,cAAA,KAAA,CAAA;AAKR2B,gBAAAA,KALQ,GAKAjC,IAAI,CAACO,MAAL,GAAcN,IAAI,CAACM,MALnB,CAAA;gBAAA,OAMP,UAAA,CAAA,MAAA,CAAA,QAAA,EAAA;kBACLN,IAAI,EAAEA,IAAI,CAACM,MADN;AAELuC,kBAAAA,SAAS,EAAE7C,IAFN;kBAGLD,IAAI,EAAEA,IAAI,CAACO,MAHN;AAILwC,kBAAAA,SAAS,EAAE/C,IAJN;AAKLwC,kBAAAA,UAAU,EAAEP,KAAK,KAAK,CAAV,GAAc,GAAd,GAAqB,GAAA,GAAMjC,IAAI,CAACO,MAAZ,GAAsB0B,KALjD;AAMLA,kBAAAA,KAAK,EAALA,KAAAA;iBAZY,CAAA,CAAA;;AAAA,cAAA,KAAA,CAAA,CAAA;AAAA,cAAA,KAAA,KAAA;AAAA,gBAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SAAA,EAAA,QAAA,CAAA,CAAA;AAAA,OAAD,CAAf,CAAA,EAAA,CAAA;;MAgBA,OAAO;AAAEY,QAAAA,MAAM,EAANA,MAAF;AAAUzC,QAAAA,KAAK,EAALA,KAAV;AAAiBC,QAAAA,WAAW,EAAXA,WAAjB;AAA8BC,QAAAA,WAAW,EAAXA,WAAAA;OAArC,CAAA;AACD,KAAA;AA3MH,GAAA,EAAA;AAAA,IAAA,GAAA,EAAA,eAAA;IAAA,KA6MU,EAAA,SAAA,aAAA,CAAcP,QAAd,EAAgC;AAAA,MAAA,IAAA,UAAA;AAAA,UAAA,UAAA;AAAA,UAAA,MAAA,GAAA,IAAA,CAAA;;MACtC,OAAOiD,4CAAA,CAAA,UAAA,GAAAC,yCAAA,CAAA,UAAA,GAAAC,gCAAA,CAAYnD,QAAZ,CACCX,CAAAA,CAAAA,IAAAA,CAAAA,UAAAA,EAAAA,QAAQ,CAAC+D,OADV,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAEI,UAACC,GAAD,EAAmB;AAC1B,QAAA,IAAM5K,OAAO,GAAGuH,QAAQ,CAACqD,GAAD,CAAxB,CAAA;;AAEA,QAAA,IAAIlN,SAAS,CAACsC,OAAD,CAAb,EAAwB;UACtB,OAAO,CAACA,OAAD,CAAP,CAAA;AACD,SAFD,MAEO;AACL,UAAA,OAAO,MAAI,CAACsH,aAAL,CAAmBtH,OAAnB,CAAP,CAAA;AACD,SAAA;AACF,OAVI,CAAP,CAAA;AAWD,KAAA;AAzNH,GAAA,CAAA,CAAA,CAAA;;AAAA,EAAA,OAAA,cAAA,CAAA;AAAA,CAAA,EAAA;;;;;;;;;;;AChDA;;AAEG;;AACH,SAAS6K,gBAAT,CAA0B7K,OAA1B,EAA0C;EACxC,OAAOO,qBAAC,CAAC,KAAD,CAAD,CACJuK,QADI,CACK,eADL,CAAA,CAEJjK,IAFI,CAEC,MAFD,EAESb,OAAO,CAAC0E,KAAR,CAAcoE,QAAd,CAAuBiC,GAFhC,CAGJlK,CAAAA,IAHI,CAGC,OAHD,EAGU,UAHV,CAAP,CAAA;AAID,CAAA;AAED;;AAEG;;;AACH,SAASmK,eAAT,CAAyBhL,OAAzB,EAAyC;EACvC,OAAOO,qBAAC,CAAC,KAAD,CAAD,CACJuK,QADI,CACK,cADL,CAAA,CAEJjK,IAFI,CAEC,MAFD,EAESb,OAAO,CAAC0E,KAAR,CAAcqE,OAAd,CAAsBgC,GAF/B,CAGJlK,CAAAA,IAHI,CAGC,OAHD,EAGU,SAHV,CAAP,CAAA;AAID,CAAA;AAED;;;;;AAKG;;;AACH,SAASoK,cAAT,CACE1D,QADF,EAEEpH,KAFF,EAGE+K,KAHF,EAIEtE,QAJF,EAIyB;AAAA,EAAA,IAAA,QAAA,CAAA;;AAEvB,EAAA,IAAMuE,OAAO,GAAG5K,qBAAC,aAAM5B,IAAI,CAACI,GAAL,CAAS,CAAT,EAAYJ,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYsM,KAAZ,CAAZ,CAAN,EAAjB,GAAA,CAAA,CAAA,CAAA;EACAC,OAAO,CAACzK,IAAR,CAAaP,KAAb,CAAA,CAAA;AAEA,EAAA,IAAMiL,IAAI,GAAG7K,qBAAC,CAAC,OAAD,CAAd,CAAA;AAEA,EAAA,IAAM8K,OAAO,GAAG9K,qBAAC,CAAC,OAAD,CAAjB,CAAA;AACA8K,EAAAA,OAAO,CAACC,MAAR,CAAeH,OAAf,EAAwBC,IAAxB,CAAA,CAAA;;AARuB,EAAA,IAAA,SAAA,GAAA5E,4BAAA,CAULiE,sFAAYlD,QAAZ,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,EAA2BX,QAAQ,CAAC+D,OAApC,CAVK,CAAA;AAAA,MAAA,KAAA,CAAA;;AAAA,EAAA,IAAA;IAUvB,KAAgE,SAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,KAAA,GAAA,SAAA,CAAA,CAAA,EAAA,EAAA,IAAA,GAAA;AAAA,MAAA,IAArDC,GAAqD,GAAA,KAAA,CAAA,KAAA,CAAA;AAC9D,MAAA,IAAM5K,OAAO,GAAGuH,QAAQ,CAACqD,GAAD,CAAxB,CAAA;;AAEA,MAAA,IAAIlN,SAAS,CAACsC,OAAD,CAAb,EAAwB;AACtB,QAAA,IAAMuL,MAAM,GAAGhL,qBAAC,CAAC,OAAD,CAAD,CAAWuK,QAAX,CAAoB,gBAApB,CAAsCQ,CAAAA,MAAtC;QAEbT,gBAAgB,CAAC7K,OAAD,CAFH,EAGbgL,eAAe,CAAChL,OAAD,CAHF;QAKbO,qBAAC,CAAC,KAAD,CAAD,CAASM,IAAT,CAAc,MAAd,EAAsBb,OAAO,CAAC0E,KAAR,CAAcpE,IAAd,CAAmByK,GAAzC,CAAA,CAA8CrK,IAA9C,CAAmDkK,GAAnD,CALa,CAAf,CAAA;QAQA,IAAMlH,KAAK,GAAGnD,qBAAC,CAAC,KAAD,CAAD,CACXuK,QADW,CACF,eADE,CAAA,CAEXjK,IAFW,CAEN,MAFM,EAEEb,OAAO,CAAC0E,KAAR,CAAcpE,IAAd,CAAmByK,GAFrB,CAGXO,CAAAA,MAHW,CAIV/K,qBAAC,CAAC,OAAD,CAAD,CAAWM,IAAX,CAAgB,KAAhB,EAAuBb,OAAO,CAAC0E,KAAR,CAAcnB,UAAd,CAAyBwH,GAAhD,CAAqDlK,CAAAA,IAArD,CAA0D,KAA1D,EAAiE+J,GAAjE,CAJU,CAAd,CAAA;AAOA,QAAA,IAAMY,IAAI,GAAGjL,qBAAC,CAAC,QAAD,CAAD,CAAYuK,QAAZ,CAAqB,cAArB,EAAqCQ,MAArC,CAA4CC,MAA5C,EAAoD7H,KAApD,CAAb,CAAA;QAEA0H,IAAI,CAACE,MAAL,CAAYE,IAAZ,CAAA,CAAA;AACD,OAnBD,MAmBO;AACLH,QAAAA,OAAO,CAACC,MAAR,CAAeL,cAAY,CAACjL,OAAD,EAAU4K,GAAV,EAAeM,KAAK,GAAG,CAAvB,EAA0BtE,QAA1B,CAA3B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AAnCsB,GAAA,CAAA,OAAA,GAAA,EAAA;AAAA,IAAA,SAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,GAAA,SAAA;AAAA,IAAA,SAAA,CAAA,CAAA,EAAA,CAAA;AAAA,GAAA;;AAqCvB,EAAA,OAAOyE,OAAP,CAAA;AACD,CAAA;;AAEM,IAAMI,YAAY,GAAa;EACpCnD,MADoC,EAAA,SAAA,MAAA,CAElCf,QAFkC,EAGlCmE,OAHkC,EAIlCvL,KAJkC,EAKlCyG,QALkC,EAKX;AAAA,IAAA,IAAA,SAAA,CAAA;;IAEvB,IAAM6B,QAAQ,GAAG,YAAjB,CAAA;AAEA,IAAA,IAAMkD,IAAI,GAAGpL,qBAAC,CAAC,OAAD,CAAd,CAAA;IACAoL,IAAI,CAACb,QAAL,CAAc,eAAd,CAAA,CAAA;;AALuB,IAAA,IAAA,UAAA,GAAAtE,4BAAA,CAOLiE,uFAAYlD,QAAZ,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAA2BX,QAAQ,CAAC+D,OAApC,CAPK,CAAA;AAAA,QAAA,MAAA,CAAA;;AAAA,IAAA,IAAA;MAOvB,KAAgE,UAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,MAAA,GAAA,UAAA,CAAA,CAAA,EAAA,EAAA,IAAA,GAAA;AAAA,QAAA,IAArDC,GAAqD,GAAA,MAAA,CAAA,KAAA,CAAA;AAC9De,QAAAA,IAAI,CAACL,MAAL,CAAYL,cAAY,CAAC1D,QAAQ,CAACqD,GAAD,CAAT,EAAgBA,GAAhB,EAAqB,CAArB,EAAwBhE,QAAxB,CAAxB,CAAA,CAAA;AACD,OAAA;AATsB,KAAA,CAAA,OAAA,GAAA,EAAA;AAAA,MAAA,UAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KAAA,SAAA;AAAA,MAAA,UAAA,CAAA,CAAA,EAAA,CAAA;AAAA,KAAA;;AAWvB,IAAA,IAAMtG,IAAI,GAAGC,qBAAC,CAACC,IAAF,CAAOoL,aAAP,CAAb,CAAA;AACAtL,IAAAA,IAAI,CAAC,OAAD,CAAJ,CAAcI,IAAd,CAAmBP,KAAnB,CAAA,CAAA;AACAG,IAAAA,IAAI,CAAC,MAAD,CAAJ,CAAagL,MAAb,CAAoBK,IAApB,CAAA,CAAA;IACA,IAAMnD,OAAO,GAAG/I,UAAU,CAACa,IAAI,CAACZ,IAAL,EAAD,CAA1B,CAAA;AAEA,IAAA,OAAO,CACL;AAAE8I,MAAAA,OAAO,EAAPA,OAAF;AAAWC,MAAAA,QAAQ,EAARA,QAAX;AAAqBtI,MAAAA,KAAK,EAALA,KAAAA;AAArB,KADK,EAEL;AACEqI,MAAAA,OAAO,EAAEqD,aADX;AAEEpD,MAAAA,QAAQ,EAAE,cAFZ;AAGEtI,MAAAA,KAAK,EAAE,cAAA;AAHT,KAFK,CAAP,CAAA;GArBkC;AA8BpCoD,EAAAA,UAAU,EAAE;AACVgB,IAAAA,KAAK,EAAE,GADG;AAEVF,IAAAA,MAAM,EAAE,GAAA;AAFE,GAAA;AA9BwB,CAA/B;;;;;;;;;;;ACzEP;;AAEG;;AACH,SAASyH,cAAT,CAAwBC,KAAxB,EAAuC;EACrC,OAAOlM,QAAQ,CAACkM,KAAK,CAAC1L,IAAN,CAAW,IAAX,CAAD,CAAf,CAAA;AACD,CAAA;AAED;;;;AAIG;;;AACH,SAASqD,KAAT,CAAevD,KAAf,EAA8BwC,GAA9B,EAA2CC,IAA3C,EAAwD;AAAA,EAAA,IAAA,QAAA,EAAA,SAAA,CAAA;;AACtD,EAAA,OAAOA,IAAI,IAAI,IAAR,GAAAE,2CAAA,CAAA,QAAA,GAAA,IAAA,CAAA,MAAA,CACE3C,KADF,EACYwC,IAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,QAAAA,EAAAA,GADZ,EAEHqJ,GAAAA,CAAAA,GAAAA,IAAI,CAACpJ,IAAD,EAAAE,2CAAA,CAAA,SAAA,GAAA,IAAA,CAAA,MAAA,CAAY3C,KAAZ,EAAA,IAAA,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAAsBwC,GAAtB,EAFR,GAAA,CAAA,CAAA,CAAA;AAGD,CAAA;AAED;;;AAGG;;;AACH,SAASqJ,IAAT,CAAcpJ,IAAd,EAA+C;AAAA,EAAA,IAAA,SAAA,CAAA;;EAAA,IAAnBlC,IAAmB,uEAAJkC,IAAI,CAAA;EAC7C,OAAWlC,2CAAAA,CAAAA,SAAAA,GAAAA,GAAAA,CAAAA,MAAAA,CAAAA,IAAX,yBAAoBkC,IAApB,EAAA,GAAA,CAAA,CAAA;AACD,CAAA;AAED;;;AAGG;;;AACH,SAAS2I,MAAT,CAAgBL,KAAhB,EAA+BxK,IAA/B,EAA2C;AAAA,EAAA,IAAA,SAAA,EAAA,SAAA,CAAA;;AACzC,EAAA,OAAAoC,2CAAA,CAAA,SAAA,GAAA,EAAA,CAAA,MAAA,CAAUmJ,2CAAWf,CAAAA,SAAAA,GAAAA,GAAAA,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,EAAAA,KAAX,CAAV,EAAA,GAAA,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAA+BxK,IAA/B,CAAA,CAAA;AACD,CAAA;AAED;;;;;AAKG;;;AACH,SAASuK,YAAT,CACE1D,QADF,EAEEgB,MAFF,EAGEpI,KAHF,EAIEyG,QAJF,EAIyB;AAAA,EAAA,IAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA;;EAEvB,IAAMsF,KAAK,GAAa,EAAxB,CAAA;EACA,IAAMC,QAAQ,GAAkB,EAAhC,CAAA;EACA,IAAMC,YAAY,GAAGjM,KAAK,CAACkM,OAAN,CAAc,eAAd,EAA+B,GAA/B,CAAoCC,CAAAA,WAApC,EAArB,CAAA;;AAJuB,EAAA,IAAA,SAAA,GAAA,0BAAA,CAML7B,uFAAYlD,QAAZ,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAA2BX,QAAQ,CAAC+D,OAApC,CANK,CAAA;AAAA,MAAA,KAAA,CAAA;;AAAA,EAAA,IAAA;IAMvB,KAAgE,SAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,KAAA,GAAA,SAAA,CAAA,CAAA,EAAA,EAAA,IAAA,GAAA;AAAA,MAAA,IAArDC,GAAqD,GAAA,KAAA,CAAA,KAAA,CAAA;AAC9D,MAAA,IAAM5K,OAAO,GAAGuH,QAAQ,CAACqD,GAAD,CAAxB,CAAA;;AAEA,MAAA,IAAIlN,SAAS,CAACsC,OAAD,CAAb,EAAwB;AACtB;AACAkM,QAAAA,KAAK,CAACjH,IAAN,CACEsG,MAAM,CAAC,CAAD,EAAIX,GAAJ,CADR,EAEE,EAFF,EAGElH,KAAK,CACHkH,GADG,EAEH,IAAA,GAAOtI,aAAQ,CAACiG,MAAD,EAASvI,OAAO,CAAC0E,KAAR,CAAcnB,UAAd,CAAyBoB,KAAlC,CAFZ,EAGH3E,OAAO,CAAC0E,KAAR,CAAcpE,IAAd,CAAmByK,GAHhB,CAHP,EAQE,EARF,EASE,CACEiB,IAAI,CAAChM,OAAO,CAAC0E,KAAR,CAAcpE,IAAd,CAAmByK,GAApB,EAAyB,MAAzB,CADN,EAEEiB,IAAI,CAAChM,OAAO,CAAC0E,KAAR,CAAcoE,QAAd,CAAuBiC,GAAxB,EAA6B,UAA7B,CAFN,EAGEiB,IAAI,CAAChM,OAAO,CAAC0E,KAAR,CAAcqE,OAAd,CAAsBgC,GAAvB,EAA4B,SAA5B,CAHN,CAIE1K,CAAAA,IAJF,CAIO,KAJP,CATF,EAcE,EAdF,CAAA,CAAA;AAgBD,OAlBD,MAkBO;AAAA,QAAA,IAAA,SAAA,CAAA;;AACL;AACA8L,QAAAA,QAAQ,CAAClH,IAAT,CAAA,KAAA,CAAAkH,QAAQ,EACHpJ,sCAAA,CAAAvB,wCAAA,CAAA,SAAA,GAAAyJ,YAAY,CAACjL,OAAD,EAAUuI,MAAV,EAAkBqC,GAAlB,EAAuBhE,QAAvB,CAAZ,CAAA,CAAA,IAAA,CAAA,SAAA,EACD,UAAC2F,WAAD,EAAA;AAAA,UAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EACKA,WADL,CAAA,EAAA,EAAA,EAAA;AAEE9D,YAAAA,QAAQ,EAAE2D,YAAY,GAAG,GAAf,GAAqBG,WAAW,CAAC9D,QAAAA;AAF7C,WAAA,CAAA,CAAA;AAAA,SADC,CADG,CAAR,CAAA,CAAA;AAQD,OAAA;AACF,KAAA;AAtCsB,GAAA,CAAA,OAAA,GAAA,EAAA;AAAA,IAAA,SAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,GAAA,SAAA;AAAA,IAAA,SAAA,CAAA,CAAA,EAAA,CAAA;AAAA,GAAA;;EAwCvB,OACE3F,2CAAA,CAAA,SAAA,GAAA,CAAA;AACE0F,IAAAA,OAAO,EAAEsD,cAAc,CAAEP,2CAAAA,CAAAA,SAAAA,GAAAA,CAAAA,MAAM,CAAC,CAAD,EAAIpL,KAAJ,CAAR,EAAoB,EAApB,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAA2B+L,KAA3B,CADzB,CAAA;IAEEzD,QAAQ,EAAE2D,YAAY,GAAG,KAF3B;AAGEjM,IAAAA,KAAK,EAALA,KAAAA;AAHF,GADF,mBAMKgM,QANL,CAAA,CAAA;AAQD,CAAA;;AAEM,IAAMK,UAAU,GAAa;EAClClE,MADkC,EAAA,SAAA,MAAA,CAEhCf,QAFgC,EAGhCgB,MAHgC,EAIhCkE,MAJgC,EAKhC7F,QALgC,EAKT;AAAA,IAAA,IAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA;;IAEvB,IAAMuF,QAAQ,GAAkB,EAAhC,CAAA;;AAFuB,IAAA,IAAA,UAAA,GAAA,0BAAA,CAIL1B,wFAAYlD,QAAZ,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAA2BX,QAAQ,CAAC+D,OAApC,CAJK,CAAA;AAAA,QAAA,MAAA,CAAA;;AAAA,IAAA,IAAA;MAIvB,KAAgE,UAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,MAAA,GAAA,UAAA,CAAA,CAAA,EAAA,EAAA,IAAA,GAAA;AAAA,QAAA,IAArDC,GAAqD,GAAA,MAAA,CAAA,KAAA,CAAA;AAC9DuB,QAAAA,QAAQ,CAAClH,IAAT,CAAA,KAAA,CAAAkH,QAAQ,EAASlB,sCAAAA,CAAAA,YAAY,CAAC1D,QAAQ,CAACqD,GAAD,CAAT,EAAgBrC,MAAhB,EAAwBqC,GAAxB,EAA6BhE,QAA7B,CAArB,CAAR,CAAA,CAAA;AACD,OAAA;AANsB,KAAA,CAAA,OAAA,GAAA,EAAA;AAAA,MAAA,UAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KAAA,SAAA;AAAA,MAAA,UAAA,CAAA,CAAA,EAAA,CAAA;AAAA,KAAA;;IAQvB,OACE9D,2CAAA,CAAA,UAAA,GAAA,CAAA;AACE0F,MAAAA,OAAO,EAAEsD,cAAc,CAAAhJ,2CAAA,CAAA,UAAA,GAAA,CACrByI,MAAM,CAAC,CAAD,EAAI,UAAJ,CADe,EAErB,EAFqB,CAGlB,CAAA,CAAA,IAAA,CAAA,UAAA,EAAAxI,sCAAA,CAAAvB,wCAAA,CAAA2K,QAAQ,CAAR,CAAA,IAAA,CAAAA,QAAQ,EACT,UAAA,IAAA,EAAA;QAAA,IAAG1D,QAAH,QAAGA,QAAH;YAAatI,KAAb,QAAaA,KAAb,CAAA;AAAA,QAAA,OAAiC,OAAO6L,IAAI,CAAC,OAAOvD,QAAR,EAAkBtI,KAAlB,CAA5C,CAAA;AAAA,OADS,CAHU,CADzB,CAAA,CAAA;AAQEsI,MAAAA,QAAQ,EAAE,WARZ;AASEtI,MAAAA,KAAK,EAAE,UAAA;AATT,KADF,oBAYKgM,QAZL,CAAA,CAAA;GAbgC;AA4BlC5I,EAAAA,UAAU,EAAE;AACVgB,IAAAA,KAAK,EAAE,GADG;AAEVF,IAAAA,MAAM,EAAE,GAAA;AAFE,GAAA;AA5BsB,CAA7B;;ACjGP,IAAMN,CAAC,GAAG2I,yBAAK,CACZC,MADO,CACA,IADA,CAEPC,CAAAA,KAFO,CAED,kCAFC,EAGPC,IAHO,CAGF,SAHE,CAAA,CAIP1I,MAJO,EAAA,CAKP2I,IALO,EAOPC,CAAAA,MAPO,CAOA,wBAPA,EAO0B;AAChCC,EAAAA,OAAO,EAAE,uBADuB;AAEhCC,EAAAA,QAAQ,EAAE,gDAFsB;AAGhCC,EAAAA,IAAI,EAAE,QAAA;AAH0B,CAP1B,CAYPH,CAAAA,MAZO,CAYA,sBAZA,EAYwB;AAC9BC,EAAAA,OAAO,EAAE,cADqB;AAE9BC,EAAAA,QAAQ,EAAE,4DAFoB;AAG9BC,EAAAA,IAAI,EAAE,QAAA;AAHwB,CAZxB,CAiBPH,CAAAA,MAjBO,CAiBA,UAjBA,EAiBY;AAClBI,EAAAA,MAAM,EAAE,IADU;AAElBF,EAAAA,QAAQ,EACN,+FAHgB;AAIlBC,EAAAA,IAAI,EAAE,QAAA;AAJY,CAjBZ,CAuBPH,CAAAA,MAvBO,CAuBA,0BAvBA,EAuB4B;AAClCC,EAAAA,OAAO,EAAE,uBADyB;AAElCC,EAAAA,QAAQ,EAAE,2DAFwB;AAGlCC,EAAAA,IAAI,EAAE,QAAA;AAH4B,CAvB5B,CA4BPH,CAAAA,MA5BO,CA4BA,wBA5BA,EA4B0B;AAChCC,EAAAA,OAAO,EAAE,cADuB;AAEhCC,EAAAA,QAAQ,EAAE,8DAFsB;AAGhCC,EAAAA,IAAI,EAAE,QAAA;AAH0B,CA5B1B,CAiCPH,CAAAA,MAjCO,CAiCA,kBAjCA,EAiCoB;AAC1BC,EAAAA,OAAO,EAAE,YADiB;AAE1BC,EAAAA,QAAQ,EAAE,sDAFgB;AAG1BC,EAAAA,IAAI,EAAE,QAAA;AAHoB,CAjCpB,CAsCPH,CAAAA,MAtCO,CAsCA,uBAtCA,EAsCyB;AAC/BC,EAAAA,OAAO,EAAE,kBADsB;AAE/BC,EAAAA,QAAQ,EAAE,+CAFqB;AAG/BC,EAAAA,IAAI,EAAE,QAAA;AAHyB,CAtCzB,CA2CPH,CAAAA,MA3CO,CA2CA,qBA3CA,EA2CuB;AAC7BC,EAAAA,OAAO,EAAE,SADoB;AAE7BC,EAAAA,QAAQ,EAAE,2DAFmB;AAG7BC,EAAAA,IAAI,EAAE,QAAA;AAHuB,CA3CvB,CAiDPH,CAAAA,MAjDO,CAiDA,OAjDA,EAiDS;AACfC,EAAAA,OAAO,EAAE,KADM;AAEfC,EAAAA,QAAQ,EAAE,uBAFK;AAGfC,EAAAA,IAAI,EAAE,SAAA;AAHS,CAjDT,CAsDPH,CAAAA,MAtDO,CAsDA,MAtDA,EAsDQ;AACdC,EAAAA,OAAO,EAAE,KADK;AAEdC,EAAAA,QAAQ,EAAE,gBAFI;AAGdC,EAAAA,IAAI,EAAE,SAAA;AAHQ,CAtDR,CA2DPH,CAAAA,MA3DO,CA2DA,aA3DA,EA2De;AACrBC,EAAAA,OAAO,EAAE,KADY;AAErBC,EAAAA,QAAQ,EAAE,4BAFW;AAGrBC,EAAAA,IAAI,EAAE,SAAA;AAHe,CA3Df,CAgEPH,CAAAA,MAhEO,CAgEA,aAhEA,EAgEe;AACrBC,EAAAA,OAAO,EAAE,KADY;AAErBC,EAAAA,QAAQ,EAAE,+BAFW;AAGrBC,EAAAA,IAAI,EAAE,SAAA;AAHe,CAhEf,CAsEPH,CAAAA,MAtEO,CAsEA,cAtEA,EAsEgB;AACtBC,EAAAA,OAAO,EAAE,eADa;AAEtBC,EAAAA,QAAQ,EAAE,mDAFY;AAGtBC,EAAAA,IAAI,EAAE,QAAA;AAHgB,CAtEhB,CA2EPH,CAAAA,MA3EO,CA2EA,QA3EA,EA2EU;AAChBC,EAAAA,OAAO,EAAE,MADO;AAEhBC,EAAAA,QAAQ,EAAE,+CAFM;AAGhBC,EAAAA,IAAI,EAAE,QAAA;AAHU,CA3EV,CAgFPH,CAAAA,MAhFO,CAgFA,UAhFA,EAgFY;AAClBC,EAAAA,OAAO,EAAE,CADS;AAElBC,EAAAA,QAAQ,EACN,sLAHgB;AAIlBC,EAAAA,IAAI,EAAE,QAAA;AAJY,CAhFZ,CAsFPH,CAAAA,MAtFO,CAsFA,mBAtFA,EAsFqB;AAC3BE,EAAAA,QAAQ,EACN,6HAFyB;AAG3BC,EAAAA,IAAI,EAAE,QAAA;AAHqB,CAtFrB,CA2FPH,CAAAA,MA3FO,CA2FA,OA3FA,EA2FS;AACfC,EAAAA,OAAO,EAAE,UADM;AAEfC,EAAAA,QAAQ,EAAE,kCAFK;AAGfC,EAAAA,IAAI,EAAE,QAAA;AAHS,CA3FT,CAgGPH,CAAAA,MAhGO,CAgGA,QAhGA,EAgGU;AAChBC,EAAAA,OAAO,EAAE,GADO;AAEhBC,EAAAA,QAAQ,EACN,2JAHc;AAIhBC,EAAAA,IAAI,EAAE,QAAA;AAJU,CAhGV,CAAV,CAAA;AAuGA;;AAEG;;SACaE,iBAAc;EAC5B,OAAOrJ,CAAC,CAACsJ,mBAAF,CAAsB;IAAE,sBAAwB,EAAA,KAAA;GAAhD,CAAA,CAAyDC,SAAzD,EAAP,CAAA;AACD;;AC1GD;;AAEG;;AACa,SAAAC,QAAA,GAA0B;AAAA,EAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAAdC,IAAc,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;IAAdA,IAAc,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;AAAA,GAAA;;AACxC,EAAA,OAAOhM,yCAAAgM,IAAI,CAAA,CAAA,IAAJ,CAAAA,IAAI,EACJ,UAACC,GAAD,EAAA;IAAA;AAEHA,MAAAA,GAAG,CAACpB,OAAJ,CAAY,eAAZ,EAA6B,IAA7B,CAAA;AAFG,MAAA;AAAA,GADI,CAAJ,CAKJhM,IALI,CAKC,GALD,CAAP,CAAA;AAMD,CAAA;AAED;;;AAGG;;AACa,SAAAqN,mBAAA,CAAoBtM,OAApB,EAAqCqM,GAArC,EAAgD;EAC9D,OAAOE,+CAAA,CAAAF,GAAG,CAAH,CAAA,IAAA,CAAAA,GAAG,EAAY,GAAZ,CAAH;EAEHrM,OAAO,GAAGU,2CAAA2L,GAAG,CAAA,CAAA,IAAH,CAAAA,GAAG,EAAO,CAAP,CAFV;EAIHA,GAJJ,CAAA;AAKD,CAAA;AAED;;;AAGG;;AACa,SAAAG,aAAA,CACdzJ,MADc,EAEd0J,mBAFc,EAEsB;AAEpC,EAAA,IAAMC,mBAAmB,GAAGxL,aAAQ,CAAC6B,MAAM,CAAC7D,IAAP,CAAYqE,KAAb,EAAoBkJ,mBAApB,CAApC,CAFoC;AAKpC;;AACA,EAAA,IAAME,IAAI,GAAGC,iBAAU,CAAC,QAAD,CAAV,CAAqBC,MAArB,CAA4BH,mBAA5B,CAAA,CAAiDI,MAAjD,CAAwD,KAAxD,CAAb,CAAA;EAEA,OAAO;IACLnF,OAAO,EAAEoF,oBAAoB,CAC3BhK,MAAM,CAAC4E,OAAP,CAAepE,KADY,EAE3BR,MAAM,CAAC4E,OAAP,CAAegC,GAFY,EAG3BgD,IAH2B,EAI3B,SAJ2B,EAK3B,MAL2B,CADxB;IAQLjF,QAAQ,EAAEqF,oBAAoB,CAC5BhK,MAAM,CAAC2E,QAAP,CAAgBnE,KADY,EAE5BR,MAAM,CAAC2E,QAAP,CAAgBiC,GAFY,EAG5BgD,IAH4B,EAI5B,UAJ4B,EAK5B,MAL4B,CARzB;AAeLzN,IAAAA,IAAI,EAAE;AACJqE,MAAAA,KAAK,EAAEkJ,mBADH;MAEJ9C,GAAG,EAAEwC,QAAQ,CAACpJ,MAAM,CAAC7D,IAAP,CAAYyK,GAAb,EAAkB+C,mBAAlB,CAAA;KAjBV;AAmBLvK,IAAAA,UAAU,EAAE4K,oBAAoB,CAC9BhK,MAAM,CAACZ,UAAP,CAAkBoB,KADY,EAE9BR,MAAM,CAACZ,UAAP,CAAkBwH,GAFY,EAG9BgD,IAH8B,EAI9B,YAJ8B,EAK9B,KAL8B,CAAA;GAnBlC,CAAA;AA2BD,CAAA;AAED;;;;;;AAMG;;AACH,SAASI,oBAAT,CACEC,SADF,EAEEC,OAFF,EAGEN,IAHF,EAIEO,MAJF,EAKEC,SALF,EAKmB;AAAA,EAAA,IAAA,QAAA,EAAA,SAAA,CAAA;;AAEjB,EAAA,IAAM9F,QAAQ,GAAM6F,2CAAAA,CAAAA,QAAAA,GAAAA,2CAAAA,CAAAA,SAAAA,GAAAA,EAAAA,CAAAA,MAAAA,CAAAA,MAAN,wBAAgBP,IAAhB,EAAA,GAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,EAAwBQ,SAAxB,CAAd,CAAA;;EAEA,OAAO;AACL5J,IAAAA,KAAK,EAAElC,YAAO,CAAC2L,SAAD,EAAY3F,QAAZ,CADT;AAELsC,IAAAA,GAAG,EAAEwC,QAAQ,CAACc,OAAD,EAAU5F,QAAV,CAAA;GAFf,CAAA;AAID;;ACvED,IAAM+F,IAAI,GAAGpB,cAAc,EAA3B;;AAGA9G,OAAO,CAACoB,IAAR,CAAa,iBAAb,EAAgC5G,mCAAe0N,CAAAA,IAAf,EAAqB,IAArB,EAA2B,CAA3B,CAAhC,CAAA,CAAA;AACAjM,OAAO,CAACyF,MAAR,CAAeC,KAAf,CAAqB,IAArB;AAGA;;AACA1F,OAAO,CAACkM,eAAR,CAAwB,EAAxB;;AAGA,IAAMC,oBAAoB,GACxB,OAAOF,IAAI,CAAC,mBAAD,CAAX,KAAqC,QAArC,GACI/L,YAAO,CAAC+L,IAAI,CAAC,mBAAD,CAAL,CADX,GAEIlF,SAHN,CAAA;AAKA,IAAMqF,KAAK,GAAGC,wBAAI,CAAC3L,SAAL,CAAeC,sBAAE,CAACyL,KAAlB,CAAd,CAAA;AACA,IAAME,QAAQ,GAAGD,wBAAI,CAAC3L,SAAL,CAAeC,sBAAE,CAAC2L,QAAlB,CAAjB,CAAA;AAGA;;;;;;;;AAQG;;AACH,SAASC,OAAT,CACExO,IADF,EAEEsB,IAFF,EAGExD,QAHF,EAG2B;EAEzB,IAAMoK,OAAO,GAAGlI,IAAI,CAAesB,cAAAA,CAAAA,MAAAA,CAAAA,IAAf,SAAJ,CAA6Bf,IAA7B,CAAkC,SAAlC,CAAhB,CAAA;;EAEA,IAAI2H,OAAO,IAAI,IAAf,EAAqB;AACnB;AACA,IAAA,OAAOpK,QAAP,CAAA;AACD,GAHD,MAGO,IAAI,CAAC2Q,kCAAa,CAACvG,OAAd,CAAL,EAA6B;AAClC;AACA,IAAA,OAAO,CAACA,OAAR,CAAA;AACD,GAHM,MAGA,IAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AACtC;AACA,IAAA,OAAOA,OAAP,CAAA;AACD,GAHM,MAGA;AACL;AACA,IAAA,OAAOpK,QAAP,CAAA;AACD,GAAA;AACF,CAAA;AAED;;;;;;AAMG;;;AACH,SAAS4Q,WAAT,CAAqBnR,IAArB,EAAmCyC,IAAnC,EAAqD;AAAA,EAAA,IAAA,QAAA,EAAA,SAAA,EAAA,SAAA,CAAA;;EACnD,IAAIwJ,KAAK,GAAG,IAAZ,CAAA;AACA,EAAA,IAAMmF,IAAI,GAAG,CAAIpR,EAAAA,CAAAA,MAAAA,CAAAA,IAAJ,EAAb,GAAA,CAAA,CAAA,CAAA;;EAEA,IAAIyC,IAAI,CAAC,QAAD,CAAJ,CAAeyH,MAAf,KAA0B,CAA9B,EAAiC;IAC/BkH,IAAI,CAAChK,IAAL,CAAU,qCAAV,CAAA,CAAA;AACA6E,IAAAA,KAAK,GAAG,KAAR,CAAA;AACD,GAAA;;EAED,IAAIxJ,IAAI,CAAC,YAAD,CAAJ,CAAmByH,MAAnB,GAA4B,CAAhC,EAAmC;IACjCkH,IAAI,CAAChK,IAAL,CACE,kEADF,CAAA,CAAA;AAGA6E,IAAAA,KAAK,GAAG,KAAR,CAAA;AACD,GAAA;;EAED,IAAMoF,SAAS,GAAGC,yCAAA7O,CAAAA,QAAAA,GAAAA,IAAI,CAAC,cAAD,CAAJ,CAAqBI,IAArB,EAAlB,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA;;EACA,IAAM0O,SAAS,GAAGD,yCAAA,CAAA,SAAA,GAAA3N,wCAAA,CAAA,SAAA,GAAAlB,IAAI,CAAC,YAAD,CAAJ,CACX,CAAA,IAAA,CAAA,SAAA,EAAA,UAACyB,EAAD,EAAKC,IAAL,EAAA;AAAA,IAAA,OAAsBzB,qBAAC,CAACyB,IAAD,CAAD,CAAQtB,IAAR,EAAtB,CAAA;AAAA,GADW,EAEfe,GAFe,EAAA,CAGfpB,IAHe,CAGV,KAHU,CAAlB,CAAA,CAAA,IAAA,CAAA,SAAA,CAAA,CAAA;;EAKA,IAAI6O,SAAS,KAAKE,SAAlB,EAA6B;AAC3BH,IAAAA,IAAI,CAAChK,IAAL,CACE,4DADF,EAEaiK,UAAAA,CAAAA,MAAAA,CAAAA,SAFb,qBAGaE,SAHb,CAAA,CAAA,CAAA;AAKAtF,IAAAA,KAAK,GAAG,KAAR,CAAA;AACD,GAAA;;AAED,EAAA,IAAImF,IAAI,CAAClH,MAAL,GAAc,CAAlB,EAAqB;IACnBzB,OAAO,CAAC+I,IAAR,CAAa,IAAA,GAAOJ,IAAI,CAAC5O,IAAL,CAAU,MAAV,CAApB,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAOyJ,KAAP,CAAA;AACD,CAAA;;AAEDzG,qCAAC,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,GAAA;AAAA,EAAA,IAAA,SAAA,EAAA,SAAA,CAAA;;AAAA,EAAA,IAAA,IAAA,EAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA;;AAAA,EAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,IAAA,OAAA,CAAA,EAAA;AAAA,MAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,QAAA,KAAA,CAAA;AACKvC,UAAAA,IADL,GACY,CADZ,CAAA;;AAAA,UAAA,IAAA,EAGK,CAACyN,IAAI,CAAC5G,KAAN,IAAe,CAAC4G,IAAI,CAAC1G,WAArB,IAAoC,CAAC0G,IAAI,CAACc,IAH/C,CAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;UAIG5C,yBAAK,CAAC6C,KAAN,CAAY,QAAZ,CAAA,CAAA;AAJH,UAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;UAAA,OASOpH,4BAAA,CAAQU,GAAR,CACJrH,wCAAA,CAAA,SAAA,GAAA,CACEgN,IAAI,CAAC,wBAAD,CADN,EAEEA,IAAI,CAAC,0BAAD,CAFN,EAGEA,IAAI,CAAC,kBAAD,CAHN,EAIEA,IAAI,CAAC,uBAAD,CAJN,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,eAAA,YAAA;AAAA,YAAA,IAAA,KAAA,GAAAnL,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAKM,iBAAOzF,IAAP,EAAA;AAAA,cAAA,OAAAyF,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CAAA,SAAA,EAAA;AAAA,gBAAA,OAAA,CAAA,EAAA;AAAA,kBAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,oBAAA,KAAA,CAAA;AAAA,sBAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;sBAAA,OACEqL,KAAK,CAAC9Q,IAAD,EAAO;AAAE2R,wBAAAA,SAAS,EAAE,IAAA;AAAb,uBAAP,CADP,CAAA;;AAAA,oBAAA,KAAA,CAAA,CAAA;AAAA,oBAAA,KAAA,KAAA;AAAA,sBAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,mBAAA;AAAA,iBAAA;AAAA,eAAA,EAAA,OAAA,CAAA,CAAA;aALN,CAAA,CAAA,CAAA;;AAAA,YAAA,OAAA,UAAA,EAAA,EAAA;AAAA,cAAA,OAAA,KAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,aAAA,CAAA;AAAA,WAAA,EAAA,CADI,CATP,CAAA;;AAAA,QAAA,KAAA,CAAA;AAoBOpO,UAAAA,OApBP,GAoBiBoN,IAAI,CAAC,UAAD,CApBrB,CAAA;;AAAA,UAAA,IAqBMiB,8CAAArO,OAAO,CAAA,CAAA,IAAP,CAAAA,OAAO,EAAU,GAAV,CArBb,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;AAAA,UAAA,MAsBS,IAAI8E,KAAJ,CAAU,sDAAV,CAtBT,CAAA;;AAAA,QAAA,KAAA,CAAA;AAyBC;AACMwJ,UAAAA,WA1BP,GA0BmC;AAChC3G,YAAAA,OAAO,EAAE;AACPpE,cAAAA,KAAK,EAAE6J,IAAI,CAAC,uBAAD,CADJ;cAEPzD,GAAG,EAAE2C,mBAAmB,CAACtM,OAAD,EAAUoN,IAAI,CAAC,qBAAD,CAAd,CAAA;aAHM;AAKhC1F,YAAAA,QAAQ,EAAE;AACRnE,cAAAA,KAAK,EAAE6J,IAAI,CAAC,uBAAD,CADH;cAERzD,GAAG,EAAE2C,mBAAmB,CAACtM,OAAD,EAAUoN,IAAI,CAAC,qBAAD,CAAd,CAAA;aAPM;AAShClO,YAAAA,IAAI,EAAE;AACJqE,cAAAA,KAAK,EAAE6J,IAAI,CAAC,0BAAD,CADP;cAEJzD,GAAG,EAAE2C,mBAAmB,CAACtM,OAAD,EAAUoN,IAAI,CAAC,wBAAD,CAAd,CAAA;aAXM;AAahCjL,YAAAA,UAAU,EAAE;AACVoB,cAAAA,KAAK,EAAE6J,IAAI,CAAC,wBAAD,CADD;cAEVzD,GAAG,EAAE2C,mBAAmB,CAACtM,OAAD,EAAUoN,IAAI,CAAC,sBAAD,CAAd,CAAA;AAFd,aAAA;WAvCf,CAAA;AA6COjH,UAAAA,QA7CP,GA6CgC,EA7ChC,CAAA;AA8COvC,UAAAA,QA9CP,GA8CkB,GAAA,GAAMwJ,IAAI,CAAC,cAAD,CA9C5B,CAAA;AA+COmB,UAAAA,KA/CP,GA+Ce;AAAEpI,YAAAA,QAAQ,EAAE,CAAA;WA/C3B,CAAA;AAgDOqI,UAAAA,OAhDP,GAgD2B,EAhD3B,CAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAAAzH,4BAAA,CAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAAA3G,wCAAA,CAAA;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,OAoDWqO,0BAAM,CAACxP,SAAI,CAACqP,WAAW,CAACpP,IAAZ,CAAiBqE,KAAlB,EAAyB,WAAzB,CAAL,CApDjB,CAAA;;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAAA,SAAA,GAAA,UAAA,CAAA,IAAA,CAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAAA,IAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,SAAA,eAAA,YAAA;AAAA,YAAA,IAAA,KAAA,GAAAtB,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAqDS,kBAAOwM,QAAP,EAAA;AAAA,cAAA,IAAA,SAAA,CAAA;;AAAA,cAAA,IAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,CAAA;;AAAA,cAAA,OAAAxM,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,gBAAA,OAAA,CAAA,EAAA;AAAA,kBAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,oBAAA,KAAA,CAAA;AAAA,sBAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,sBAAA,OACeuL,QAAQ,CAACiB,QAAD,EAAW,OAAX,CADvB,CAAA;;AAAA,oBAAA,KAAA,CAAA;sBACEpQ,IADF,GAAA,UAAA,CAAA,IAAA,CAAA;AAEEqQ,sBAAAA,KAFF,GAEUxP,qBAAC,CAACC,IAAF,CAAOd,IAAP,CAFV,CAAA;sBAGEsQ,SAHF,GAGclB,OAAO,CACvBiB,KADuB,EAEvB,0BAFuB,EAGvB,CAHuB,CAHrB,CAAA;sBAQEE,WARF,GAQgBnB,OAAO,CACzBiB,KADyB,EAEzB,4BAFyB,EAGzB,EAHyB,CARvB,CAAA;sBAaEG,YAbF,GAaiBpB,OAAO,CAC1BiB,KAD0B,EAE1B,6BAF0B,EAG1B/K,QAH0B,CAbxB,CAmBJ;;AAnBI,sBAAA,IAAA,EAoBA+K,KAAK,CAACG,YAAD,CAAL,CAAoBnI,MAApB,KAA+B,CApB/B,CAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,MAAA;AAAA,uBAAA;;sBAqBF6H,OAAO,CAAC3K,IAAR,CAAa6K,QAAb,CAAA,CAAA;AArBE,sBAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;AAAA,oBAAA,KAAA,EAAA;AAyBJ;sBACA,IAAItB,IAAI,CAACc,IAAT,EAAe;AACbN,wBAAAA,WAAW,CAACc,QAAD,EAAWC,KAAX,CAAX,CAAA;AACD,uBA5BG;;;sBA+BA3P,MA/BA,GA+BSoB,wCAAAuO,CAAAA,SAAAA,GAAAA,KAAK,CAAC,YAAD,CAAL,CACVtO,GADU,EAEN,CAAA,CAAA,IAAA,CAAA,SAAA,EAAA,UAACO,IAAD,EAAA;AAAA,wBAAA,IAAA,SAAA,CAAA;;AAAA,wBAAA,OAAkBmN,sDAAAY,KAAK,CAAC/N,IAAD,CAAL,CAAYtB,IAAZ,EAAlB,CAAA,CAAA,IAAA,CAAA,SAAA,CAAA,CAAA;AAAA,uBAFM,CA/BT,CAmCJ;;AACA,sBAAA,IAAIN,MAAM,CAAC2H,MAAP,GAAgB,CAApB,EAAuB;AACrB3H,wBAAAA,MAAM,GAAGoB,wCAAA,CAAA,SAAA,GAAAuO,KAAK,CAAC,cAAD,CAAL,CACNrP,IADM,EAAA,CAEN8E,KAFM,CAEA,GAFA,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAGF,UAACrF,KAAD,EAAA;AAAA,0BAAA,OAAmBgP,yCAAAhP,CAAAA,KAAK,CAAL,CAAA,IAAA,CAAAA,KAAK,CAAxB,CAAA;AAAA,yBAHE,CAAT,CAAA;AAID,uBAzCG;;;AA4CJ,sBAAA,IAAIC,MAAM,CAAC2H,MAAP,GAAgB,CAApB,EAAuB;AACrB3H,wBAAAA,MAAM,GAAG0P,QAAQ,CAACtK,KAAT,CAAe,GAAf,CAAT,CAAA;AACD,uBA9CG;;;AAAA,sBAAA,IAAA,EAiDApF,MAAM,CAAC2H,MAAP,GAAgB,CAjDhB,CAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,MAAA;AAAA,uBAAA;;sBAkDFzB,OAAO,CAACC,KAAR,CAAc,oCAAd,CAAA,CAAA;AAlDE,sBAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;AAAA,oBAAA,KAAA,EAAA;AAsDJ;AACA,sBAAAhI,2CAAA,CAAA6B,MAAM,CAAA,CAAA,IAAN,CAAAA,MAAM,EAAQ,UAAC5B,GAAD,EAAM2B,KAAN,EAAagQ,CAAb,EAAgBC,GAAhB,EAA4B;AACxC,wBAAA,OAAO5R,GAAG,CAAC2B,KAAD,CAAH,IAAc,IAAd,IAAsB3B,GAAG,CAAC2B,KAAD,CAAH,CAAWtC,IAAX,IAAmB,IAAhD,EAAsD;AACpDyI,0BAAAA,OAAO,CAACC,KAAR,CAAc,sCAAd,EAAsDnG,MAAtD,CAAA,CAAA;AACAD,0BAAAA,KAAK,IAAI,GAAT,CAAA;AACD,yBAAA;;AAED,wBAAA,IAAIgQ,CAAC,KAAKC,GAAG,CAACrI,MAAJ,GAAa,CAAvB,EAA0B;AACxB,0BAAA,IAAIvJ,GAAG,CAAC2B,KAAD,CAAH,IAAc,IAAlB,EAAwB;AACtBmG,4BAAAA,OAAO,CAACC,KAAR,CACE,wEADF,EAEEnG,MAFF,CAAA,CAAA;AAIA,4BAAA,OAAO,IAAP,CAAA;AACD,2BAND,MAMO;AACL,4BAAA,IAAMJ,OAAO,GAAY;AACvBO,8BAAAA,CAAC,EAAEwP,KADoB;AAEvBjK,8BAAAA,KAAK,EAAEkK,SAFgB;AAGvBtQ,8BAAAA,IAAI,EAAEA,IAHiB;AAIvB7B,8BAAAA,IAAI,EAAEiS,QAJiB;AAKvBpL,8BAAAA,KAAK,EAAEkJ,aAAa,CAAC8B,WAAD,EAAcI,QAAd,CALG;8BAMvB5P,UAAU,EAAEiB,sBAAsB,CAACC,OAAD,EAAU2O,KAAV,EAAiBD,QAAjB,CANX;AAOvB9K,8BAAAA,QAAQ,EAAEkL,YAPa;AAQvBrK,8BAAAA,OAAO,EAAEoK,WARc;AASvB7P,8BAAAA,MAAM,EAAEA,MAAAA;6BATV,CAAA;AAYA5B,4BAAAA,GAAG,CAAC2B,KAAD,CAAH,GAAaH,OAAb,CAAA;4BAEA,EAAE2P,KAAK,CAACpI,QAAR,CAAA;AACD,2BAAA;AACF,yBAxBD,MAwBO;0BACL,OAAQ/I,GAAG,CAAC2B,KAAD,CAAH,GAAa3B,GAAG,CAAC2B,KAAD,CAAH,IAAc,EAAnC,CAAA;AACD,yBAAA;uBAhCG,EAiCHoH,QAjCG,CAAN,CAAA;;AAvDI,oBAAA,KAAA,EAAA,CAAA;AAAA,oBAAA,KAAA,KAAA;AAAA,sBAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,mBAAA;AAAA,iBAAA;AAAA,eAAA,EAAA,QAAA,CAAA,CAAA;aArDT,CAAA,CAAA,CAAA;;AAAA,YAAA,OAAA,UAAA,GAAA,EAAA;AAAA,cAAA,OAAA,KAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,aAAA,CAAA;AAAA,WAAA,EAAA,CAAA,CAAA;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,OAAA,UAAA,CAAA,EAAA,CAkDesB,GAlDf,CAAA,IAAA,CAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,QAAA,KAAA,EAAA;UAiJC,IAAI+G,OAAO,CAAC7H,MAAZ,EAAoB;AAClBxF,YAAAA,OAAO,CAACyF,MAAR,CAAeC,KAAf,CAAqB,IAArB,CAAA,CAAA;AACA3B,YAAAA,OAAO,CAACoB,IAAR,CACE5E,2CACE,CAAA,UAAA,GAAA,CAAA,0FADF,2DAEK2H,yCAAAmF,CAAAA,OAAO,CAAP,CAAA,IAAA,CAAAA,OAAO,CAFZ,CAAA,CAAA,CAGEvP,IAHF,CAGO,MAHP,CADF,CAAA,CAAA;AAMD,WAAA;;AAzJF,UAAA,IAAA,EA2JKsP,KAAK,CAACpI,QAAN,KAAmB,CA3JxB,CAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;UA4JGjB,OAAO,CAACoB,IAAR,CAAa,qCAAb,CAAA,CAAA;AA5JH,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,MAAA;;AAAA,QAAA,KAAA,EAAA;UAAA,IA6JY8G,EAAAA,IAAI,CAAC5G,KAAL,IAAc4G,IAAI,CAAC3G,WAAnB,IAAkC2G,IAAI,CAAC1G,WA7JnD,CAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;AA8JGvF,UAAAA,OAAO,CAACyF,MAAR,CAAeC,KAAf,CAAqB,IAArB,CAAA,CAAA;;UA9JH,IAiKKyG,EAAAA,oBAAoB,IAAI,IAjK7B,CAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,OAkKgBG,QAAQ,CAACH,oBAAD,EAAuB,OAAvB,CAlKxB,CAAA;;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,IAAA,CAAA;;AAAA,UAAA,IAAA,UAAA,CAAA,EAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;AAAA,UAAA,UAAA,CAAA,EAAA,GAkK4D,EAlK5D,CAAA;;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,EAAA,CAAA;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,MAAA;;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAmKS,EAnKT,CAAA;;AAAA,QAAA,KAAA,EAAA;UAgKSpK,gBAhKT,GAAA,UAAA,CAAA,EAAA,CAAA;UAqKS+L,SArKT,GAqKqB,IAAItJ,cAAJ,CAAmB;AACnCQ,YAAAA,QAAQ,EAARA,QADmC;AAEnCgB,YAAAA,MAAM,EAAE9F,YAAO,CAAC+L,IAAI,CAAC,kBAAD,CAAL,CAFoB;YAGnC5E,QAAQ,EAAE4E,IAAI,CAAC5E,QAHoB;YAInCvB,QAAQ,EAAEmG,IAAI,CAACjP,MAAL,KAAgB,IAAhB,GAAuBiN,UAAvB,GAAoCf,YAJX;AAKnCnH,YAAAA,gBAAgB,EAAhBA,gBALmC;YAMnCnE,KAAK,EAAEqO,IAAI,CAACrO,KAAAA;WANI,CAAA,CAOfmQ,KAPe,CAOT;YACP1I,KAAK,EAAE4G,IAAI,CAAC5G,KADL;YAEPC,WAAW,EAAE2G,IAAI,CAAC3G,WAFX;YAGPC,WAAW,EAAE0G,IAAI,CAAC1G,WAAAA;AAHX,WAPS,CArKrB,CAkLG;;UAlLH,IAmLO0G,CAAAA,IAAI,CAAC5G,KAnLZ,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;AAAA,UAAA,UAAA,CAAA,EAAA,GAoL+B1J,aApL/B,CAAA;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;UAAA,OAoLmDmS,SAAS,CAACzI,KApL7D,CAAA;;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,IAAA,CAAA;UAoLW2I,iBApLX,GAAA,IAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA;AAqLKjK,UAAAA,OAAO,CAACoB,IAAR,CACgBiI,2CAAAA,CAAAA,UAAAA,GAAAA,2CAAAA,CAAAA,UAAAA,GAAAA,aAAAA,CAAAA,MAAAA,CAAAA,KAAK,CAACpI,QADtB,EAAA,qBAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAEIgJ,iBAAiB,CAAClS,KAFtB,EAAA,YAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAGeY,iBAAiB,CAACsR,iBAAD,CAHhC,EAAA,IAAA,CAAA,CAAA,CAAA;;AArLL,QAAA,KAAA,EAAA;UAAA,IA6LO/B,CAAAA,IAAI,CAAC5G,KA7LZ,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;AAAA,UAAA,UAAA,CAAA,EAAA,GA8L+B1J,aA9L/B,CAAA;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;UAAA,OA8LmDmS,SAAS,CAACxI,WA9L7D,CAAA;;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,IAAA,CAAA;UA8LW0I,kBA9LX,GAAA,IAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA;AA+LKjK,UAAAA,OAAO,CAACoB,IAAR,CACiCiI,2CAAAA,CAAAA,UAAAA,GAAAA,2CAAAA,CAAAA,UAAAA,GAAAA,8BAAAA,CAAAA,MAAAA,CAAAA,KAAK,CAACpI,QADvC,EAAA,qBAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAEIgJ,kBAAiB,CAAClS,KAFtB,EAAA,YAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAGeY,iBAAiB,CAACsR,kBAAD,CAHhC,EAAA,IAAA,CAAA,CAAA,CAAA;;AA/LL,QAAA,KAAA,EAAA;UAAA,IAuMO/B,CAAAA,IAAI,CAAC1G,WAvMZ,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;;AAAA,UAAA,UAAA,CAAA,GAAA,GAwM+B5J,aAxM/B,CAAA;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;UAAA,OAwMmDmS,SAAS,CAACvI,WAxM7D,CAAA;;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,UAAA,CAAA,GAAA,GAAA,UAAA,CAAA,IAAA,CAAA;UAwMWyI,mBAxMX,GAAA,IAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CAAA;AAyMKjK,UAAAA,OAAO,CAACoB,IAAR,CAC0BiI,2CAAAA,CAAAA,UAAAA,GAAAA,2CAAAA,CAAAA,UAAAA,GAAAA,uBAAAA,CAAAA,MAAAA,CAAAA,KAAK,CAACpI,QADhC,EAAA,YAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAEIgJ,mBAAiB,CAAClS,KAFtB,EAAA,YAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAGeY,iBAAiB,CAACsR,mBAAD,CAHhC,EAAA,IAAA,CAAA,CAAA,CAAA;;AAzML,QAAA,KAAA,EAAA;AAAA,UAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;UAAA,OAiNwBF,SAAS,CAAChG,MAjNlC,CAAA;;AAAA,QAAA,KAAA,EAAA;UAiNSA,MAjNT,GAAA,UAAA,CAAA,IAAA,CAAA;AAkNG9H,UAAAA,OAAO,CAACyF,MAAR,CAAeC,KAAf,CAAqB,IAArB,CAAA,CAAA;;AACA,UAAA,IAAIoC,MAAM,CAAC5C,IAAP,KAAgB,CAApB,EAAuB;AACrBnB,YAAAA,OAAO,CAACoB,IAAR,CACmB2C,2CAAAA,CAAAA,UAAAA,GAAAA,gBAAAA,CAAAA,MAAAA,CAAAA,MAAM,CAAC7C,IAD1B,EAAA,WAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAC0C7I,IAAI,CAACO,KAAL,CACtCmL,MAAM,CAACL,UAD+B,CAD1C,EAAA,aAAA,CAAA,CAAA,CAAA;AAKD,WAND,MAMO;AACL,YAAA,IAAIK,MAAM,CAACL,UAAP,IAAqBwE,IAAI,CAACgC,MAA9B,EAAsC;cACpClK,OAAO,CAACoB,IAAR,CACE5E,2CAAA,CAAA,UAAA,GAAAA,2CAAA,CAAA,UAAA,GAAA,gBAAA,CAAA,MAAA,CAAiBuH,MAAM,CAAC7C,IAAxB,iCAAwC7I,IAAI,CAACO,KAAL,CACtCmL,MAAM,CAACL,UAD+B,CAAxC,6BAESK,MAAM,CAAC5C,IAFhB,EAAA,YAAA,CAAA,GAGE,+CAJJ,CAAA,CAAA;AAMD,aAPD,MAOO;cACLnB,OAAO,CAACC,KAAR,CACEzD,2CAAA,CAAA,UAAA,GAAAA,2CAAA,CAAA,UAAA,GAAA,qBAAA,CAAA,MAAA,CAAsBuH,MAAM,CAAC7C,IAA7B,iCAA6C7I,IAAI,CAACO,KAAL,CAC3CmL,MAAM,CAACL,UADoC,CAA7C,6BAESK,MAAM,CAAC5C,IAFhB,EAAA,YAAA,CAAA,GAGE,0EAJJ,CAAA,CAAA;AAMA1G,cAAAA,IAAI,GAAG,CAAP,CAAA;AACD,aAAA;;AAED,YAAA0P,4CAAA,CAAA,UAAA,GAAApG,MAAM,CAACC,SAAP,CAAyB,CAAA,IAAA,CAAA,UAAA,EAAA,UAACzM,IAAD,EAAe;cACtCyI,OAAO,CAACC,KAAR,CAAc1I,IAAd,CAAA,CAAA;aADF,CAAA,CAAA;AAGD,WAAA;;AA9OJ,QAAA,KAAA,EAAA;UAiPC0E,OAAO,CAACmO,QAAR,GAAmB3P,IAAnB,CAAA;;AAjPD,QAAA,KAAA,EAAA,CAAA;AAAA,QAAA,KAAA,KAAA;AAAA,UAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAAA,EAAA,QAAA,CAAA,CAAA;AAAA,CAAD,CAkPK4P,CAAAA,EAAAA,CAAAA,KAlPL,CAkPW,UAACpK,KAAD,EAAgB;EACzBhE,OAAO,CAACmO,QAAR,GAAmB,CAAnB,CAAA;EACApK,OAAO,CAACC,KAAR,CAAcA,KAAd,CAAA,CAAA;AACD,CArPD,CAAA;;"}
1
+ {"version":3,"file":"generate-examples-index.js","sources":["../src/generate-examples-index/content-builder/common.ts","../src/generate-examples-index/content-builder/format.ts","../src/generate-examples-index/content-builder/playground/codepen.ts","../src/generate-examples-index/content-builder/playground/data.ts","../src/generate-examples-index/content-builder/playground/jsfiddle.ts","../src/generate-examples-index/content-builder/screenshots/index.ts","../src/generate-examples-index/content-builder/builder.ts","../src/generate-examples-index/content-builder/html/index.ts","../src/generate-examples-index/content-builder/md/index.ts","../src/generate-examples-index/cli.ts","../src/generate-examples-index/paths.ts","../src/generate-examples-index/index.ts"],"sourcesContent":["import { Example, Examples, ExamplesRoot } from \"../types\";\n\nexport interface ContentPart {\n content: string;\n filename: string;\n title: string;\n}\n\nexport interface Renderer {\n render(\n examples: ExamplesRoot,\n output: string,\n title: string,\n collator: Intl.Collator\n ): ContentPart[];\n screenshot: {\n width: number;\n height: number;\n };\n}\n\n/**\n * @param value\n */\nexport function isExample(\n value: Example | Examples | ExamplesRoot\n): value is Example {\n return (\n typeof value === \"object\" &&\n value !== null &&\n typeof value.path === \"string\"\n );\n}\n\nexport interface StartStopMs {\n start: number;\n stop: number;\n}\n/**\n *\n */\nexport function measureStartStopMs(): () => StartStopMs {\n const start = Date.now();\n return (): StartStopMs => {\n const stop = Date.now();\n\n return { start, stop };\n };\n}\n\nexport interface Report {\n count: number;\n result: \"fulfilled\" | \"rejected\";\n start: number;\n stop: number;\n}\n/**\n * @param reports\n * @param fallback\n */\nexport function reduceReports(\n reports: readonly Report[],\n fallback: Report = {\n count: 0,\n result: \"fulfilled\",\n start: -1,\n stop: -1,\n }\n): Report {\n return (\n reports.reduce<Report | null>((acc, val): Report | null => {\n return {\n count: (acc?.count ?? 0) + (val?.count ?? 0),\n result: [acc?.result ?? \"fulfilled\", val.result].every(\n (result): boolean => result === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n start: Math.min(acc?.start ?? Number.POSITIVE_INFINITY, val.start),\n stop: Math.max(acc?.stop ?? Number.NEGATIVE_INFINITY, val.stop),\n };\n }, null) ?? fallback\n );\n}\n\n/**\n * @param ms\n */\nexport function formatMs(ms: number): string {\n return `${(Math.round(ms / 100) / 10).toFixed(1)}s`;\n}\n/**\n * @param root0\n * @param root0.start\n * @param root0.stop\n */\nexport function formatStartStopMs({ start, stop }: StartStopMs): string {\n return `${(Math.round((stop - start) / 100) / 10).toFixed(1)}s`;\n}\n","import prettier from \"prettier\";\n\nexport const formatCSS = (css: string | null | undefined): string =>\n prettier.format(css || \"\", { filepath: \"style.css\" });\nexport const formatHTML = (html: string | null | undefined): string =>\n prettier.format(html || \"\", { filepath: \"index.html\" });\nexport const formatJS = (js: string | null | undefined): string =>\n prettier.format(js || \"\", { filepath: \"script.js\" });\nexport const formatMD = (md: string | null | undefined): string =>\n prettier.format(md || \"\", { filepath: \"README.md\" });\n","import $ from \"cheerio\";\n\nimport template from \"./codepen.template.html\";\nimport { Example } from \"../../types\";\n\n/**\n * @param example\n */\nexport function generateCodePenPage(example: Example): string {\n const data = example.playground;\n const title = example.titles.join(\" | \");\n\n const page = $.load(template);\n page(\"title\").text(title);\n const form = page(\"#form\");\n\n form.find('input[name=\"data\"]').attr(\n \"value\",\n JSON.stringify({\n css: data.code.css,\n css_external: data.resources.css.join(\";\"),\n html: data.code.html,\n js: data.code.js,\n js_external: data.resources.js.join(\";\"),\n title: example.titles.join(\" | \"),\n })\n );\n\n return page.html();\n}\n","import $ from \"cheerio\";\nimport { dirname, relative, resolve } from \"path\";\n\nimport { Example, PlaygroundData } from \"../../types\";\nimport { formatCSS, formatHTML, formatJS } from \"../format\";\n\n/**\n * @param baseURL\n * @param example$\n * @param examplePath\n */\nexport function generatePlaygroundData(\n baseURL: string,\n example$: Example[\"$\"],\n examplePath: Example[\"path\"]\n): PlaygroundData {\n // JavaScript\n const eventListeners = Object.entries(example$(\"body\").get(0).attribs)\n .filter(([name]): boolean => /^on/.test(name))\n .map(([name, value]): [string, string] => [name.slice(2), `${value}`])\n .map(\n ([name, value]): string =>\n `window.addEventListener(\"${name}\", () => { ${value} });`\n )\n .join(\"\\n\");\n const js = formatJS(\n example$(\"script\")\n .map((_i, elem) => (elem as cheerio.TagElement).children[0])\n .get()\n .map((elem): string => elem.data)\n .join(\"\") +\n \"\\n\\n;\" +\n eventListeners\n );\n\n // Cascading Style Sheets\n const css = formatCSS(\n example$(\"style\")\n .map((_i, elem) => (elem as cheerio.TagElement).children[0])\n .get()\n .map((elem): string => elem.data)\n .join(\"\")\n );\n\n // Hypertext Markup Language\n const $html = $.load(example$(\"body\").html() || \"\");\n $html(\"script\").remove();\n\n const html = formatHTML($html(\"body\").html());\n\n // Resources\n const fixPath = (rawPath: string): string =>\n /^https?:\\/\\//.test(rawPath)\n ? // World wide web absolute.\n rawPath\n : /^\\//.test(rawPath)\n ? // Domain absolute.\n baseURL + rawPath.slice(1)\n : //Relative.\n baseURL +\n relative(process.cwd(), resolve(dirname(examplePath), rawPath));\n\n const resources = {\n js: example$(\"script\")\n .map((_i, elem): undefined | string => $(elem).attr(\"src\"))\n .get()\n .filter((src): src is string => typeof src === \"string\")\n .map(fixPath),\n css: example$(\"link[rel='stylesheet']\")\n .map((_i, elem): undefined | string => $(elem).attr(\"href\"))\n .get()\n .filter((href): href is string => typeof href === \"string\")\n .map(fixPath),\n };\n\n return {\n code: {\n css,\n html,\n js,\n },\n resources,\n };\n}\n","import $ from \"cheerio\";\n\nimport template from \"./jsfiddle.template.html\";\nimport { Example } from \"../../types\";\n\n/**\n * @param example\n */\nexport function generateJSFiddlePage(example: Example): string {\n const data = example.playground;\n const title = example.titles.join(\" | \");\n const resources = [...data.resources.css, ...data.resources.js].join(\",\");\n\n const page = $.load(template);\n page(\"title\").text(title);\n const form = page(\"#form\");\n\n // Playground data.\n form.find('input[name=\"css\"]').attr(\"value\", data.code.css);\n form.find('input[name=\"html\"]').attr(\"value\", data.code.html);\n form.find('input[name=\"js\"]').attr(\"value\", data.code.js);\n form.find('input[name=\"resources\"]').attr(\"value\", resources);\n form.find('input[name=\"title\"]').attr(\"value\", title);\n\n // Don't run JS before the DOM is ready.\n form.find('input[name=\"wrap\"]').attr(\"value\", \"b\");\n\n return page.html();\n}\n","import $ from \"cheerio\";\nimport Jimp from \"jimp\";\nimport { Browser } from \"puppeteer\";\nimport commonScreenshotScript from \"./screenshot-script.js.txt\";\nimport fs from \"fs\";\nimport { basename, dirname, posix, resolve, sep } from \"path\";\nimport { promisify } from \"util\";\n\nimport { Example } from \"../../types\";\nimport { formatHTML } from \"../format\";\n\nconst unlink = promisify(fs.unlink);\nconst writeFile = promisify(fs.writeFile);\n\n/**\n * Check if the screenshot is valid. At the moment this simply considers\n * everything except for solid color images as valid. This works pretty well\n * though may yield some false positives.\n *\n * @param screenshot - The binary data of the screenshot.\n * @returns True for valid and false for invalid.\n */\nasync function isScreenshotValid(screenshot: Buffer): Promise<boolean> {\n const image = await Jimp.read(screenshot);\n const firstPixel = image.getPixelColor(0, 0);\n\n for (let x = 0; x < image.getWidth(); ++x) {\n for (let y = 0; y < image.getHeight(); ++y) {\n if (firstPixel !== image.getPixelColor(x, y)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport interface GenerateScreenshotConfig {\n /**\n * Leave the contexts and tabs open for inspection, also don't delete the\n * temporary pages.\n */\n debug: boolean;\n /** The example for which the screenshot will be generated. */\n example: Example;\n /** Height of the captured screenshot. */\n height: number;\n /** A script to be executed as the first thing on the page. */\n screenshotScript: string;\n /** Width of the captured screenshot. */\n width: number;\n}\n\n/**\n * Capture an element on the example's page and save the screenshot to the\n * disk as a PNG file.\n *\n * @param browser - Puppeteer's browser instance.\n * @param config - See the type's docs for detail.\n * @returns Whether or not the screenshot passed validation check.\n */\nexport async function generateScreenshot(\n browser: Browser,\n config: GenerateScreenshotConfig\n): Promise<boolean> {\n const { debug, example, height, screenshotScript, width } = config;\n\n const cleanup: (() => void | Promise<void>)[] = [];\n\n try {\n // Prepare the page. It has to be written to the disk so that files with\n // relative URLs can be loaded.\n const tmpPath = resolve(\n dirname(example.paths.page.local),\n \".tmp.example.screenshot.\" + basename(example.paths.page.local)\n );\n const screenshotPage = $.load(example.html);\n screenshotPage(\"head\").prepend(\n $(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(`window.DEBUG = ${true};`),\n $(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(commonScreenshotScript),\n $(\"<script>\").attr(\"type\", \"text/javascript\").text(screenshotScript),\n $(\"<style>\")\n .attr(\"type\", \"text/css\")\n .text(\n [\n `${example.selector} {`,\n \" border: none !important;\",\n \"\",\n ` min-width: ${width}px !important;`,\n ` min-height: ${height}px !important;`,\n ` width: ${width}px !important;`,\n ` height: ${height}px !important;`,\n ` max-width: ${width}px !important;`,\n ` max-height: ${height}px !important;`,\n \"}\",\n ].join(\"\\n\")\n )\n );\n await writeFile(tmpPath, formatHTML(screenshotPage.html()));\n if (!debug) {\n cleanup.push((): Promise<void> => unlink(tmpPath));\n }\n\n const context = await browser.createIncognitoBrowserContext();\n if (!debug) {\n cleanup.push((): Promise<void> => context.close());\n }\n\n const page = await context.newPage();\n if (!debug) {\n cleanup.push((): Promise<void> => page.close());\n }\n\n await page.setViewport({ width: width + 50, height: height + 50 });\n await page.goto(\"file://\" + tmpPath.split(sep).join(posix.sep));\n\n await page.waitForSelector(example.selector, {\n visible: true,\n timeout: example.timeout * 1000,\n });\n\n if (example.delay === \"call\") {\n await page.evaluate(\n \"function fn() { return window.readyToTakeAScreenshot; }\"\n );\n } else {\n await page.waitForTimeout(example.delay * 1000);\n }\n\n const $element = await page.$(example.selector);\n if ($element == null) {\n throw new Error(\n `Element \"${example.selector}\" not found in ${example.path}.`\n );\n }\n\n await $element.evaluate((element: Element): void => {\n element.scrollIntoView();\n });\n\n const screenshot = await $element.screenshot({\n encoding: \"binary\",\n });\n\n if (screenshot == null) {\n throw new Error(`Failed to take screenshot of “${example.paths.page}”`);\n } else if (typeof screenshot === \"string\") {\n // AFAIK this should never happen, it's just a problem with the types\n // always returning Buffer | string even when encoding is set to binary\n // (i.e. buffer).\n throw new Error(\n `Failed to get the binary data of the screenshot of “${example.paths.page}”`\n );\n }\n\n await writeFile(example.paths.screenshot.local, screenshot);\n\n // Return the validity of the generated screenshot.\n return isScreenshotValid(screenshot);\n } catch (error) {\n console.error(error);\n return false;\n } finally {\n for (const callback of cleanup.splice(0).reverse()) {\n try {\n await callback();\n } catch (error) {\n console.error(error);\n }\n }\n }\n}\n","import fs from \"fs\";\nimport { join } from \"path\";\nimport { promisify } from \"util\";\nimport puppeteer from \"puppeteer\";\n\nimport { Example, Examples, ExamplesRoot } from \"../types\";\nimport {\n Renderer,\n Report,\n formatStartStopMs,\n isExample,\n measureStartStopMs,\n} from \"./common\";\nimport { formatHTML } from \"./format\";\nimport { generateJSFiddlePage, generateCodePenPage } from \"./playground\";\nimport { generateScreenshot } from \"./screenshots\";\n\nconst collator = new Intl.Collator(\"US\");\nconst writeFile = promisify(fs.writeFile);\n\nexport type IndexReport = Report;\nexport interface ExampleReport extends Report {\n example: Example;\n}\n\nexport interface Checks {\n fail: number;\n failPaths: string[];\n okay: number;\n okayPaths: string[];\n percentage: number;\n total: number;\n}\n\nexport interface ContentBuilderConfig {\n /** The tree structure with examples in it's leaves. */\n examples: ExamplesRoot;\n /** The directory where built files will be saved. */\n output: string;\n /** How many screenshots to generate at the same time. */\n parallel: number;\n /** The renderer used to generate index files. */\n renderer: Renderer;\n /** A script that will be executed on each page as first. */\n screenshotScript: string;\n /** A title that will be passed to the renderer. */\n title: string;\n}\n\nexport interface ContentBuilderRet {\n checks: Promise<Checks>;\n index: Promise<IndexReport[]>;\n playgrounds: Promise<ExampleReport[]>;\n screenshots: Promise<ExampleReport[]>;\n}\n\nexport class ContentBuilder {\n public constructor(private readonly _config: ContentBuilderConfig) {}\n\n /**\n * Build the files and write them to the disk.\n *\n * @param emit - Which types of files to emit.\n * @param emit.index\n * @param emit.playgrounds\n * @param emit.screenshots\n * @returns A report with check results and the number of written files.\n */\n public build(\n emit: {\n index?: boolean;\n playgrounds?: boolean;\n screenshots?: boolean;\n } = {}\n ): ContentBuilderRet {\n const allExamples = this._processGroup(this._config.examples);\n\n const okay: string[] = [];\n const fail: string[] = [];\n\n console.info(\n `Going to generate ${[\n emit.index ? [\"index files\"] : [],\n emit.playgrounds ? [\"playground openers\"] : [],\n emit.screenshots ? [\"screenshots\"] : [],\n ]\n .flat()\n .join(\", \")} for ${allExamples.length} examples.`\n );\n process.stdout.write(\"\\n\");\n\n const index: ContentBuilderRet[\"index\"] = emit.index\n ? // Generate indexes.\n (async (): ContentBuilderRet[\"index\"] => {\n const getStartStopMs = measureStartStopMs();\n\n const results = await Promise.allSettled(\n this._config.renderer\n .render(\n this._config.examples,\n this._config.output,\n this._config.title,\n collator\n )\n .map(\n async ({ content, filename }): Promise<void> =>\n writeFile(join(this._config.output, filename), content)\n )\n );\n\n return [\n {\n ...getStartStopMs(),\n count: results.length,\n result: results.every(\n ({ status }): boolean => status === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n },\n ];\n })()\n : // Skip indexes.\n Promise.resolve([]);\n\n const playgrounds: ContentBuilderRet[\"playgrounds\"] = emit.playgrounds\n ? // Generate playground pages.\n (async (): ContentBuilderRet[\"playgrounds\"] =>\n await Promise.all(\n allExamples.map(async (example): Promise<ExampleReport> => {\n const getStartStopMs = measureStartStopMs();\n\n const results = await Promise.allSettled(\n [\n {\n html: generateJSFiddlePage(example),\n path: example.paths.jsfiddle.local,\n },\n {\n html: generateCodePenPage(example),\n path: example.paths.codepen.local,\n },\n ].map(\n ({ html, path }): Promise<void> =>\n writeFile(path, formatHTML(html))\n )\n );\n\n return {\n ...getStartStopMs(),\n count: results.length,\n example: example,\n result: results.every(\n ({ status }): boolean => status === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n };\n })\n ))()\n : // Skip playground pages.\n Promise.resolve([]);\n\n const screenshots: ContentBuilderRet[\"screenshots\"] = emit.screenshots\n ? // Generate screenshots.\n (async (): ContentBuilderRet[\"screenshots\"] => {\n const cleanup: (() => void | Promise<void>)[] = [];\n\n try {\n const debug = /^1|y|yes|true$/i.test(process.env.DEBUG ?? \"\");\n const browser = await puppeteer.launch({\n headless: !debug,\n slowMo: debug ? 100 : undefined,\n });\n if (debug) {\n cleanup.push(async (): Promise<void> => browser.disconnect());\n } else {\n cleanup.push((): Promise<void> => browser.close());\n }\n\n // Generate screenshots.\n // There is quite long delay to ensure the chart is rendered properly\n // so it's much faster to run a lot of them at the same time.\n const todo = allExamples.slice();\n const total = todo.length;\n const reports: ExampleReport[] = [];\n await Promise.allSettled(\n new Array(this._config.parallel)\n .fill(null)\n .map(async (): Promise<void> => {\n let example: Example | undefined;\n while ((example = todo.pop())) {\n const getStartStopMs = measureStartStopMs();\n\n const valid = await generateScreenshot(browser, {\n debug,\n example,\n height: this._config.renderer.screenshot.height,\n screenshotScript: this._config.screenshotScript,\n width: this._config.renderer.screenshot.width,\n });\n\n const report: ExampleReport = {\n ...getStartStopMs(),\n count: 1,\n example,\n result: valid ? \"fulfilled\" : \"rejected\",\n };\n reports.push(report);\n\n if (valid) {\n okay.push(example.path);\n } else {\n fail.push(example.path);\n }\n\n const percentage = (\n Math.floor((reports.length / total) * 100) + \"%\"\n ).padStart(4, \" \");\n const validText = valid ? \"okay\" : \"fail\";\n const msText = formatStartStopMs(report);\n console.info(\n `${percentage} ${validText} ${msText} - ${example.path}`\n );\n }\n })\n );\n\n return reports;\n } finally {\n for (const callback of cleanup.splice(0).reverse()) {\n try {\n await callback();\n } catch (error) {\n console.error(error);\n }\n }\n }\n })()\n : // Skip screenshots.\n Promise.resolve([]);\n\n const checks = (async (): Promise<Checks> => {\n await index;\n await playgrounds;\n await screenshots;\n\n const total = okay.length + fail.length;\n return {\n fail: fail.length,\n failPaths: fail,\n okay: okay.length,\n okayPaths: okay,\n percentage: total === 0 ? 100 : (100 * okay.length) / total,\n total,\n };\n })();\n\n return { checks, index, playgrounds, screenshots };\n }\n\n private _processGroup(examples: Examples): Example[] {\n return Object.keys(examples)\n .sort(collator.compare)\n .flatMap((key): Example[] => {\n const example = examples[key];\n\n if (isExample(example)) {\n return [example];\n } else {\n return this._processGroup(example);\n }\n });\n }\n}\n","import $ from \"cheerio\";\n\nimport indexTemplate from \"./index.template.html\";\nimport styleTemplate from \"./index.template.css\";\nimport { ContentPart, Renderer, isExample } from \"../common\";\nimport { Example, Examples, ExamplesRoot } from \"../../types\";\nimport { formatHTML } from \"../format\";\n\n/**\n * @param example\n */\nfunction generateJSFiddle(example: Example): cheerio.Cheerio {\n return $(\"<a>\")\n .addClass(\"icon jsfiddle\")\n .attr(\"href\", example.paths.jsfiddle.web)\n .attr(\"title\", \"JSFiddle\");\n}\n\n/**\n * @param example\n */\nfunction generateCodePen(example: Example): cheerio.Cheerio {\n return $(\"<a>\")\n .addClass(\"icon codepen\")\n .attr(\"href\", example.paths.codepen.web)\n .attr(\"title\", \"CodePen\");\n}\n\n/**\n * @param examples\n * @param title\n * @param level\n * @param collator\n */\nfunction processGroup(\n examples: Examples,\n title: string,\n level: number,\n collator: Intl.Collator\n): cheerio.Cheerio {\n const heading = $(`<h${Math.max(1, Math.min(6, level))}>`);\n heading.text(title);\n\n const list = $(\"<div>\");\n\n const section = $(\"<div>\");\n section.append(heading, list);\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n const example = examples[key];\n\n if (isExample(example)) {\n const header = $(\"<div>\").addClass(\"example-header\").append(\n // Playgrounds\n generateJSFiddle(example),\n generateCodePen(example),\n // Title\n $(\"<a>\").attr(\"href\", example.paths.page.web).text(key)\n );\n\n const image = $(\"<a>\")\n .addClass(\"example-image\")\n .attr(\"href\", example.paths.page.web)\n .append(\n $(\"<img>\").attr(\"src\", example.paths.screenshot.web).attr(\"alt\", key)\n );\n\n const item = $(\"<span>\").addClass(\"example-link\").append(header, image);\n\n list.append(item);\n } else {\n section.append(processGroup(example, key, level + 1, collator));\n }\n }\n\n return section;\n}\n\nexport const htmlRenderer: Renderer = {\n render(\n examples: ExamplesRoot,\n _output: string,\n title: string,\n collator: Intl.Collator\n ): ContentPart[] {\n const filename = \"index.html\";\n\n const root = $(\"<div>\");\n root.addClass(\"examples-root\");\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n root.append(processGroup(examples[key], key, 1, collator));\n }\n\n const page = $.load(indexTemplate);\n page(\"title\").text(title);\n page(\"body\").append(root);\n const content = formatHTML(page.html());\n\n return [\n { content, filename, title },\n {\n content: styleTemplate,\n filename: \"examples.css\",\n title: \"examples.css\",\n },\n ];\n },\n screenshot: {\n width: 400,\n height: 400,\n },\n};\n","import { ContentPart, Renderer, isExample } from \"../common\";\nimport { Examples, ExamplesRoot } from \"../../types\";\nimport { formatMD } from \"../format\";\nimport { relative } from \"path\";\n\n/**\n * @param lines\n */\nfunction linesToContent(lines: string[]): string {\n return formatMD(lines.join(\"\\n\"));\n}\n\n/**\n * @param title\n * @param src\n * @param href\n */\nfunction image(title: string, src: string, href?: string): string {\n return href == null\n ? `![${title}](${src})`\n : link(href, `![${title}](${src})`);\n}\n\n/**\n * @param href\n * @param text\n */\nfunction link(href: string, text: string = href): string {\n return `[${text}](${href})`;\n}\n\n/**\n * @param level\n * @param text\n */\nfunction header(level: number, text: string): string {\n return `${\"#\".repeat(level)} ${text}`;\n}\n\n/**\n * @param examples\n * @param output\n * @param title\n * @param collator\n */\nfunction processGroup(\n examples: Examples,\n output: string,\n title: string,\n collator: Intl.Collator\n): ContentPart[] {\n const items: string[] = [];\n const sections: ContentPart[] = [];\n const filenamePart = title.replace(/[^a-zA-Z0-9]/g, \"-\").toLowerCase();\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n const example = examples[key];\n\n if (isExample(example)) {\n // An example in this group.\n items.push(\n header(2, key),\n \"\",\n image(\n key,\n \"./\" + relative(output, example.paths.screenshot.local),\n example.paths.page.web\n ),\n \"\",\n [\n link(example.paths.page.web, \"Open\"),\n link(example.paths.jsfiddle.web, \"JSFiddle\"),\n link(example.paths.codepen.web, \"CodePen\"),\n ].join(\" | \"),\n \"\"\n );\n } else {\n // A subgroup of examples.\n sections.push(\n ...processGroup(example, output, key, collator).map(\n (contentPart): ContentPart => ({\n ...contentPart,\n filename: filenamePart + \".\" + contentPart.filename,\n })\n )\n );\n }\n }\n\n return [\n {\n content: linesToContent([header(1, title), \"\", ...items]),\n filename: filenamePart + \".md\",\n title,\n },\n ...sections,\n ];\n}\n\nexport const mdRenderer: Renderer = {\n render(\n examples: ExamplesRoot,\n output: string,\n _title: string,\n collator: Intl.Collator\n ): ContentPart[] {\n const sections: ContentPart[] = [];\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n sections.push(...processGroup(examples[key], output, key, collator));\n }\n\n return [\n {\n content: linesToContent([\n header(1, \"Examples\"),\n \"\",\n ...sections.map(\n ({ filename, title }): string => \"- \" + link(\"./\" + filename, title)\n ),\n ]),\n filename: \"README.md\",\n title: \"Examples\",\n },\n ...sections,\n ];\n },\n screenshot: {\n width: 740,\n height: 250,\n },\n};\n","import yargs from \"yargs\";\n\nconst y = yargs\n .strict(true)\n .usage(\"generate-example-index [options]\")\n .hide(\"version\")\n .config()\n .help()\n\n .option(\"assets-local-directory\", {\n default: \"./examples/thumbnails\",\n describe: \"The directory where assets will be written to.\",\n type: \"string\",\n })\n .option(\"assets-web-directory\", {\n default: \"./thumbnails\",\n describe: \"The directory where assets will be loaded from on the web.\",\n type: \"string\",\n })\n .option(\"base-url\", {\n demand: true,\n describe:\n \"The base URL for relative imports. Web URLs starting with slash will be relative to this URL.\",\n type: \"string\",\n })\n .option(\"examples-local-directory\", {\n default: \"./examples/thumbnails\",\n describe: \"The directory where examples will be loaded from locally.\",\n type: \"string\",\n })\n .option(\"examples-web-directory\", {\n default: \"./thumbnails\",\n describe: \"The directory where examples will be loaded from on the web.\",\n type: \"string\",\n })\n .option(\"output-directory\", {\n default: \"./examples\",\n describe: \"The directory where generated files will be emitted.\",\n type: \"string\",\n })\n .option(\"pages-local-directory\", {\n default: \"./examples/pages\",\n describe: \"The directory where pages will be written to.\",\n type: \"string\",\n })\n .option(\"pages-web-directory\", {\n default: \"./pages\",\n describe: \"The directory where pages will be loaded from on the web.\",\n type: \"string\",\n })\n\n .option(\"index\", {\n default: false,\n describe: \"Generate index files.\",\n type: \"boolean\",\n })\n .option(\"lint\", {\n default: false,\n describe: \"Lint examples.\",\n type: \"boolean\",\n })\n .option(\"playgrounds\", {\n default: false,\n describe: \"Generate playground pages.\",\n type: \"boolean\",\n })\n .option(\"screenshots\", {\n default: false,\n describe: \"Render screenshot thumbnails.\",\n type: \"boolean\",\n })\n\n .option(\"container-id\", {\n default: \"vis-container\",\n describe: \"The id of the elements where Vis will put canvas.\",\n type: \"string\",\n })\n .option(\"format\", {\n default: \"html\",\n describe: \"Whether HTML or Markdown should be generated.\",\n type: \"string\",\n })\n .option(\"parallel\", {\n default: 6,\n describe:\n \"Generate n screenshots at the same time (there is quite high delay to make sure the graph is rendered before the screenshot is taken so the CPU utilization is generally quite low).\",\n type: \"number\",\n })\n .option(\"screenshot-script\", {\n describe:\n \"The path of JavaScript file that will be executed before taking a screenshot (and before any other JavaScript in the page).\",\n type: \"string\",\n })\n .option(\"title\", {\n default: \"Examples\",\n describe: \"The title of the examples index.\",\n type: \"string\",\n })\n .option(\"verify\", {\n default: 100,\n describe:\n \"Attempt to verify that the examples were generated correctly. The value is a percentage of checks that have to pass for the run to be considered success.\",\n type: \"number\",\n });\n\n/**\n *\n */\nexport function parseArguments(): ReturnType<typeof y[\"parseSync\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parseSync();\n}\n","import { Example, ExamplePath, ExamplePaths } from \"./types\";\nimport { createHash } from \"crypto\";\nimport { relative, resolve } from \"path\";\n\n/**\n * @param urls\n */\nexport function joinURLs(...urls: string[]): string {\n return urls\n .map((url): string =>\n // Strip the parts of leading and trailing slashes if they have them.\n url.replace(/^\\/?(.*?)\\/?$/, \"$1\")\n )\n .join(\"/\");\n}\n\n/**\n * @param baseURL\n * @param url\n */\nexport function fixAbsoluteInputURL(baseURL: string, url: string): string {\n return url.startsWith(\"/\")\n ? // Relative to the base URL. Base URL starts and URL ends with a slash.\n baseURL + url.slice(1)\n : // Relative to some other point or absolute already.\n url;\n}\n\n/**\n * @param config\n * @param exampleAbsolutePath\n */\nexport function generatePaths(\n config: ExamplePaths,\n exampleAbsolutePath: Example[\"path\"]\n): ExamplePaths {\n const exampleRelativePath = relative(config.page.local, exampleAbsolutePath);\n\n // It's important that the hash is created from the relative path so that it\n // is the same on all computers.\n const hash = createHash(\"sha256\").update(exampleRelativePath).digest(\"hex\");\n\n return {\n codepen: generateLocalWebPair(\n config.codepen.local,\n config.codepen.web,\n hash,\n \"codepen\",\n \"html\"\n ),\n jsfiddle: generateLocalWebPair(\n config.jsfiddle.local,\n config.jsfiddle.web,\n hash,\n \"jsfiddle\",\n \"html\"\n ),\n page: {\n local: exampleAbsolutePath,\n web: joinURLs(config.page.web, exampleRelativePath),\n },\n screenshot: generateLocalWebPair(\n config.screenshot.local,\n config.screenshot.web,\n hash,\n \"screenshot\",\n \"png\"\n ),\n };\n}\n\n/**\n * @param localRoot\n * @param webRoot\n * @param hash\n * @param prefix\n * @param extension\n */\nfunction generateLocalWebPair(\n localRoot: string,\n webRoot: string,\n hash: string,\n prefix: string,\n extension: string\n): ExamplePath {\n const filename = `${prefix}.${hash}.${extension}`;\n\n return {\n local: resolve(localRoot, filename),\n web: joinURLs(webRoot, filename),\n };\n}\n","import $ from \"cheerio\";\nimport fs from \"fs\";\nimport globby from \"globby\";\nimport util from \"util\";\nimport yargs from \"yargs\";\nimport { join } from \"path\";\nimport { resolve } from \"path\";\n\nimport {\n ContentBuilder,\n generatePlaygroundData,\n htmlRenderer,\n mdRenderer,\n reduceReports,\n formatStartStopMs,\n} from \"./content-builder\";\nimport { Example, ExamplesRoot, ExamplePaths } from \"./types\";\nimport { parseArguments } from \"./cli\";\nimport { generatePaths, fixAbsoluteInputURL } from \"./paths\";\n\nconst argv = parseArguments();\n\n// Log the parsed configuration for debugging purposes.\nconsole.info(\"Configuration: \", JSON.stringify(argv, null, 2));\nprocess.stdout.write(\"\\n\");\n\n// Pageres uses quite a lot of listeners when invoked multiple times in\n// parallel. This ensures there are no warnings about it.\nprocess.setMaxListeners(40);\n\n// Resolve paths relative to PWD.\nconst screenshotScriptPath =\n typeof argv[\"screenshot-script\"] === \"string\"\n ? resolve(argv[\"screenshot-script\"])\n : undefined;\n\nconst mkdir = util.promisify(fs.mkdir);\nconst readFile = util.promisify(fs.readFile);\n\nfunction getMeta<T>(page: cheerio.Root, name: string, fallback: T): T;\n/**\n * Extract and coerce a value from meta tag.\n *\n * @param page - The page to be queried.\n * @param name - The name of the meta tag.\n * @param fallback - The value to be used if the meta tag is not present.\n * @returns The value “smartly” coerced or the fallback if conversion isn't\n * possible or the value is not present in the page.\n */\nfunction getMeta(\n page: cheerio.Root,\n name: string,\n fallback: number | string\n): number | string {\n const content = page(`meta[name=\"${name}\"]`).attr(\"content\");\n\n if (content == null) {\n // No meta of this name exists in the page, use the fallback.\n return fallback;\n } else if (!Number.isNaN(+content)) {\n // Number.\n return +content;\n } else if (typeof content === \"string\") {\n // String.\n return content;\n } else {\n // Something doesn't match, use the fallback.\n return fallback;\n }\n}\n\n/**\n * Test if the example conforms to the conventions.\n *\n * @param path - The path to the example (used for identification in logs).\n * @param page - The HTML to be linted.\n * @returns True if everything's okay, false otherwise.\n */\nfunction lintExample(path: string, page: cheerio.Root): boolean {\n let valid = true;\n const msgs = [`${path}:`];\n\n if (page(\"#title\").length !== 1) {\n msgs.push(\"Missing #title element in the body.\");\n valid = false;\n }\n\n if (page(\"#title > *\").length < 2) {\n msgs.push(\n \"There have to be at least two headings (group and example name).\"\n );\n valid = false;\n }\n\n const headTitle = page(\"head > title\").text().trim();\n const bodyTitle = page(\"#title > *\")\n .map((_i, elem): string => $(elem).text())\n .get()\n .join(\" | \")\n .trim();\n if (headTitle !== bodyTitle) {\n msgs.push(\n \"The title in the head doesn't match the title in the body.\",\n ` head: ${headTitle}`,\n ` body: ${bodyTitle}`\n );\n valid = false;\n }\n\n if (msgs.length > 1) {\n console.warn(\"\\n\" + msgs.join(\"\\n \"));\n }\n\n return valid;\n}\n\n(async (): Promise<void> => {\n let code = 0;\n\n if (!argv.index && !argv.screenshots && !argv.lint) {\n yargs.parse(\"--help\");\n return;\n }\n\n // Ensure that all paths exist.\n await Promise.all(\n [\n argv[\"assets-local-directory\"],\n argv[\"examples-local-directory\"],\n argv[\"output-directory\"],\n argv[\"pages-local-directory\"],\n ].map(async (path): Promise<void> => {\n await mkdir(path, { recursive: true });\n })\n );\n\n const baseURL = argv[\"base-url\"];\n if (!baseURL.endsWith(\"/\")) {\n throw new Error(\"Base URL (`base-url`) has to end with a slash (`/`).\");\n }\n\n // Paths.\n const pathsConfig: ExamplePaths = {\n codepen: {\n local: argv[\"pages-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"pages-web-directory\"]),\n },\n jsfiddle: {\n local: argv[\"pages-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"pages-web-directory\"]),\n },\n page: {\n local: argv[\"examples-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"examples-web-directory\"]),\n },\n screenshot: {\n local: argv[\"assets-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"assets-web-directory\"]),\n },\n };\n\n const examples: ExamplesRoot = {};\n const selector = \"#\" + argv[\"container-id\"];\n const stats = { examples: 0 };\n const skipped: string[] = [];\n\n await Promise.all(\n (\n await globby(join(pathsConfig.page.local, \"**/*.html\"))\n ).map(async (pagePath): Promise<any> => {\n const html = await readFile(pagePath, \"utf-8\");\n const $page = $.load(html);\n const pageDelay = getMeta<number | \"call\">(\n $page,\n \"example-screenshot-delay\",\n 6\n );\n const pageTimeout = getMeta<number>(\n $page,\n \"example-screenshot-timeout\",\n 60\n );\n const pageSelector = getMeta<string>(\n $page,\n \"example-screenshot-selector\",\n selector\n );\n\n // Is this an examples?\n if ($page(pageSelector).length === 0) {\n skipped.push(pagePath);\n return;\n }\n\n // Lint if requested.\n if (argv.lint) {\n lintExample(pagePath, $page);\n }\n\n // Body titles.\n let titles = $page(\"#title > *\")\n .get()\n .map((elem): string => $page(elem).text().trim());\n\n // Head title fallback.\n if (titles.length < 2) {\n titles = $page(\"head > title\")\n .text()\n .split(\"|\")\n .map((title): string => title.trim());\n }\n\n // File path fallback.\n if (titles.length < 2) {\n titles = pagePath.split(\"/\");\n }\n\n // Just ignore it.\n if (titles.length < 2) {\n console.error(\"Title resolution failed. Skipping.\");\n return;\n }\n\n // Put this example into the structure while creating any missing groups in the process.\n titles.reduce((acc, title, i, arr): any => {\n while (acc[title] != null && acc[title].path != null) {\n console.error(\"The following group already exists: \", titles);\n title += \"!\";\n }\n\n if (i === arr.length - 1) {\n if (acc[title] != null) {\n console.error(\n \"The following example has the same name as an already existing group: \",\n titles\n );\n return null;\n } else {\n const example: Example = {\n $: $page,\n delay: pageDelay,\n html: html,\n path: pagePath,\n paths: generatePaths(pathsConfig, pagePath),\n playground: generatePlaygroundData(baseURL, $page, pagePath),\n selector: pageSelector,\n timeout: pageTimeout,\n titles: titles,\n };\n\n acc[title] = example;\n\n ++stats.examples;\n }\n } else {\n return (acc[title] = acc[title] || {});\n }\n }, examples as any);\n })\n );\n\n if (skipped.length) {\n process.stdout.write(\"\\n\");\n console.info(\n [\n \"The following files don't look like examples (there is nothing to take a screenshot of):\",\n ...skipped.sort(),\n ].join(\"\\n \")\n );\n }\n\n if (stats.examples === 0) {\n console.info(\"No usable example files were found.\");\n } else if (argv.index || argv.playgrounds || argv.screenshots) {\n process.stdout.write(\"\\n\");\n\n const screenshotScript =\n screenshotScriptPath != null\n ? (await readFile(screenshotScriptPath, \"utf-8\")) || \"\"\n : \"\";\n\n const builtData = new ContentBuilder({\n examples,\n output: resolve(argv[\"output-directory\"]),\n parallel: argv.parallel,\n renderer: argv.format === \"md\" ? mdRenderer : htmlRenderer,\n screenshotScript,\n title: argv.title,\n }).build({\n index: argv.index,\n playgrounds: argv.playgrounds,\n screenshots: argv.screenshots,\n });\n\n // Create and write the page.\n if (argv.index) {\n const cummulativeReport = reduceReports(await builtData.index);\n console.info(\n `Index with ${stats.examples} examples written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Create and write the playgrounds.\n if (argv.index) {\n const cummulativeReport = reduceReports(await builtData.playgrounds);\n console.info(\n `Playground opener files for ${stats.examples} examples written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Create and write the screenshots.\n if (argv.screenshots) {\n const cummulativeReport = reduceReports(await builtData.screenshots);\n console.info(\n `Screenshot files for ${stats.examples} written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Verify the result.\n const checks = await builtData.checks;\n process.stdout.write(\"\\n\");\n if (checks.fail === 0) {\n console.info(\n `Verification: ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %) passed.`\n );\n } else {\n if (checks.percentage >= argv.verify) {\n console.info(\n `Verification: ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %), ${checks.fail} failed.\\n` +\n \"This is within the threshold set by --verify.\"\n );\n } else {\n console.error(\n `Verification: Only ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %), ${checks.fail} failed.\\n` +\n \"This is not within the threshold set by --verify. Exiting with an error.\"\n );\n code = 3;\n }\n\n checks.failPaths.forEach((path): void => {\n console.error(path);\n });\n }\n }\n\n process.exitCode = code;\n})().catch((error): void => {\n process.exitCode = 1;\n console.error(error);\n});\n"],"names":["isExample","value","_typeof","path","measureStartStopMs","start","_Date$now","stop","reduceReports","reports","fallback","count","result","_reduceInstanceProperty","acc","val","_everyInstanceProperty","Math","min","Number","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","formatStartStopMs","round","toFixed","formatCSS","css","prettier","format","filepath","formatHTML","html","formatJS","js","formatMD","md","generateCodePenPage","example","data","playground","title","titles","join","page","$","load","template","text","form","_findInstanceProperty","attr","_JSON$stringify","code","css_external","resources","js_external","generatePlaygroundData","baseURL","example$","examplePath","eventListeners","_mapInstanceProperty","get","attribs","_slicedToArray","name","test","_sliceInstanceProperty","_i","elem","children","$html","remove","fixPath","rawPath","relative","process","cwd","resolve","dirname","src","href","generateJSFiddlePage","_concatInstanceProperty","_toConsumableArray","unlink","promisify","fs","writeFile","isScreenshotValid","_asyncToGenerator","_regeneratorRuntime","screenshot","Jimp","read","image","firstPixel","getPixelColor","x","getWidth","y","getHeight","generateScreenshot","browser","config","debug","height","screenshotScript","width","cleanup","tmpPath","paths","local","basename","screenshotPage","prepend","commonScreenshotScript","selector","push","createIncognitoBrowserContext","context","close","newPage","setViewport","goto","split","sep","posix","waitForSelector","visible","timeout","delay","evaluate","waitForTimeout","$element","Error","element","scrollIntoView","encoding","console","error","_createForOfIteratorHelper","_reverseInstanceProperty","callback","collator","Intl","Collator","ContentBuilder","_config","_classCallCheck","_defineProperty","_createClass","emit","allExamples","_processGroup","examples","okay","fail","info","_flatInstanceProperty","index","playgrounds","screenshots","length","stdout","write","getStartStopMs","_Promise","allSettled","renderer","render","output","content","filename","results","_objectSpread","status","all","jsfiddle","codepen","env","DEBUG","puppeteer","launch","headless","slowMo","undefined","disconnect","todo","total","_fillInstanceProperty","Array","parallel","pop","valid","report","percentage","_padStartInstanceProperty","floor","validText","msText","checks","failPaths","okayPaths","_flatMapInstanceProperty","_sortInstanceProperty","_Object$keys","compare","key","generateJSFiddle","addClass","web","generateCodePen","processGroup","level","heading","list","section","append","header","item","htmlRenderer","_output","root","indexTemplate","styleTemplate","linesToContent","lines","link","_repeatInstanceProperty","items","sections","filenamePart","replace","toLowerCase","contentPart","mdRenderer","_title","yargs","strict","usage","hide","help","option","default","describe","type","demand","parseArguments","parserConfiguration","parseSync","joinURLs","urls","url","fixAbsoluteInputURL","_startsWithInstanceProperty","generatePaths","exampleAbsolutePath","exampleRelativePath","hash","createHash","update","digest","generateLocalWebPair","localRoot","webRoot","prefix","extension","argv","setMaxListeners","screenshotScriptPath","mkdir","util","readFile","getMeta","_Number$isNaN","lintExample","msgs","headTitle","_trimInstanceProperty","bodyTitle","warn","lint","parse","recursive","_endsWithInstanceProperty","pathsConfig","stats","skipped","globby","pagePath","$page","pageDelay","pageTimeout","pageSelector","i","arr","builtData","build","cummulativeReport","verify","_forEachInstanceProperty","exitCode","catch"],"mappings":"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"}