From ea87c350a5d5dc4c96ce25ac8e8b81339d04c501 Mon Sep 17 00:00:00 2001 From: Jeuner <62662523+Jeuners@users.noreply.github.com> Date: Fri, 28 Aug 2026 13:35:16 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Installationsroutine=20f=C3=BCr=20macOS?= =?UTF-8?q?=20(setup.sh)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - prüft macOS, Homebrew, Node 22+, npm-Abhängigkeiten, ffmpeg, whisper.cpp inkl. Modell, Piper inkl. Stimme, Ollama-Server und das Sprachmodell — fehlende Teile werden auf Nachfrage installiert - Modi: interaktiv, --check (nur Prüfung), --yes (ohne Nachfragen) - README: Schnellstart-Abschnitt (clone → setup → dev) - npm run setup als Alias --- README.md | 17 ++ package-lock.json | 232 ++++++++++++++++++ package.json | 1 + server/package.json | 1 + server/src/db.ts | 33 ++- server/src/files.ts | 134 ++++++++++ server/src/index.ts | 55 ++++- server/src/memory.ts | 3 + setup.sh | 225 +++++++++++++++++ web/dist/assets/index-CQxQcFyH.js | 74 ++++++ ...{index-CKaNlN-w.css => index-CXQcDbVB.css} | 2 +- web/dist/assets/index-leRe8gQm.js | 74 ------ web/dist/index.html | 4 +- web/src/App.tsx | 4 +- web/src/components/ChatMessage.tsx | 31 +++ web/src/components/Composer.tsx | 172 ++++++++++--- web/src/styles.css | 42 ++++ web/src/types.ts | 8 + web/src/useChat.ts | 7 +- 19 files changed, 989 insertions(+), 130 deletions(-) create mode 100644 server/src/files.ts create mode 100755 setup.sh create mode 100644 web/dist/assets/index-CQxQcFyH.js rename web/dist/assets/{index-CKaNlN-w.css => index-CXQcDbVB.css} (95%) delete mode 100644 web/dist/assets/index-leRe8gQm.js diff --git a/README.md b/README.md index d35ff61..940ad69 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ npm-Workspace mit zwei Paketen: ## Voraussetzungen +- **macOS** mit [Homebrew](https://brew.sh) - **Node.js 22+** — `server/src/db.ts` nutzt das eingebaute `node:sqlite`, das es unter Node 20 noch nicht gibt. Unter Node 22 erscheint beim Start eine `ExperimentalWarning`; ab Node 24 ist das Modul stabil. @@ -32,6 +33,22 @@ npm-Workspace mit zwei Paketen: - Piper als **Python-Modul** — der Server ruft `python3 -m piper` auf, nicht das gleichnamige Homebrew-Binary +## Schnellstart (Mac) + +Ein Befehl von null bis zur lauffähigen App — das Skript prüft alle +Abhängigkeiten und bietet fehlende (Homebrew, Node, ffmpeg, whisper, Piper, +Ollama, Modell, Sprachdateien) zur Installation an: + +```bash +git clone https://github.com/Jeuners/agenttwo-tools.git +cd agenttwo-tools +./setup.sh # oder: npm run setup +npm run dev # → http://localhost:5174 +``` + +Nur prüfen ohne etwas zu ändern: `./setup.sh --check` · Ohne Nachfragen: +`./setup.sh --yes` + Unter macOS: ```bash diff --git a/package-lock.json b/package-lock.json index d0cbdd7..a5a3018 100644 --- a/package-lock.json +++ b/package-lock.json @@ -920,6 +920,205 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@napi-rs/canvas": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.80.tgz", + "integrity": "sha512-DxuT1ClnIPts1kQx8FBmkk4BQDTfI5kIzywAaMjQSXfNnra5UFU9PwurXrl+Je3bJ6BGsp/zmshVVFbCmyI+ww==", + "license": "MIT", + "workspaces": [ + "e2e/*" + ], + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@napi-rs/canvas-android-arm64": "0.1.80", + "@napi-rs/canvas-darwin-arm64": "0.1.80", + "@napi-rs/canvas-darwin-x64": "0.1.80", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.80", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.80", + "@napi-rs/canvas-linux-arm64-musl": "0.1.80", + "@napi-rs/canvas-linux-riscv64-gnu": "0.1.80", + "@napi-rs/canvas-linux-x64-gnu": "0.1.80", + "@napi-rs/canvas-linux-x64-musl": "0.1.80", + "@napi-rs/canvas-win32-x64-msvc": "0.1.80" + } + }, + "node_modules/@napi-rs/canvas-android-arm64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.80.tgz", + "integrity": "sha512-sk7xhN/MoXeuExlggf91pNziBxLPVUqF2CAVnB57KLG/pz7+U5TKG8eXdc3pm0d7Od0WreB6ZKLj37sX9muGOQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-arm64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.80.tgz", + "integrity": "sha512-O64APRTXRUiAz0P8gErkfEr3lipLJgM6pjATwavZ22ebhjYl/SUbpgM0xcWPQBNMP1n29afAC/Us5PX1vg+JNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-x64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.80.tgz", + "integrity": "sha512-FqqSU7qFce0Cp3pwnTjVkKjjOtxMqRe6lmINxpIZYaZNnVI0H5FtsaraZJ36SiTHNjZlUB69/HhxNDT1Aaa9vA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.80.tgz", + "integrity": "sha512-eyWz0ddBDQc7/JbAtY4OtZ5SpK8tR4JsCYEZjCE3dI8pqoWUC8oMwYSBGCYfsx2w47cQgQCgMVRVTFiiO38hHQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.80.tgz", + "integrity": "sha512-qwA63t8A86bnxhuA/GwOkK3jvb+XTQaTiVML0vAWoHyoZYTjNs7BzoOONDgTnNtr8/yHrq64XXzUoLqDzU+Uuw==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-musl": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.80.tgz", + "integrity": "sha512-1XbCOz/ymhj24lFaIXtWnwv/6eFHXDrjP0jYkc6iHQ9q8oXKzUX1Lc6bu+wuGiLhGh2GS/2JlfORC5ZcXimRcg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.80.tgz", + "integrity": "sha512-XTzR125w5ZMs0lJcxRlS1K3P5RaZ9RmUsPtd1uGt+EfDyYMu4c6SEROYsxyatbbu/2+lPe7MPHOO/0a0x7L/gw==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.80.tgz", + "integrity": "sha512-BeXAmhKg1kX3UCrJsYbdQd3hIMDH/K6HnP/pG2LuITaXhXBiNdh//TVVVVCBbJzVQaV5gK/4ZOCMrQW9mvuTqA==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-musl": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.80.tgz", + "integrity": "sha512-x0XvZWdHbkgdgucJsRxprX/4o4sEed7qo9rCQA9ugiS9qE2QvP0RIiEugtZhfLH3cyI+jIRFJHV4Fuz+1BHHMg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-win32-x64-msvc": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.80.tgz", + "integrity": "sha512-Z8jPsM6df5V8B1HrCHB05+bDiCxjE9QA//3YrkKIdVDEwn5RKaqOxCJDRJkl48cJbylcrJbW4HxZbTte8juuPg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@napi-rs/lzma-linux-x64-gnu": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", @@ -3325,6 +3524,38 @@ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, + "node_modules/pdf-parse": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/pdf-parse/-/pdf-parse-2.4.5.tgz", + "integrity": "sha512-mHU89HGh7v+4u2ubfnevJ03lmPgQ5WU4CxAVmTSh/sxVTEDYd1er/dKS/A6vg77NX47KTEoihq8jZBLr8Cxuwg==", + "license": "Apache-2.0", + "dependencies": { + "@napi-rs/canvas": "0.1.80", + "pdfjs-dist": "5.4.296" + }, + "bin": { + "pdf-parse": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.16.0 <21 || >=22.3.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/mehmet-kozan" + } + }, + "node_modules/pdfjs-dist": { + "version": "5.4.296", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.296.tgz", + "integrity": "sha512-DlOzet0HO7OEnmUmB6wWGJrrdvbyJKftI1bhMitK7O2N8W2gc757yyYBbINy9IDafXAV9wmKr9t7xsTaNKRG5Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=20.16.0 || >=22.3.0" + }, + "optionalDependencies": { + "@napi-rs/canvas": "^0.1.80" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -4693,6 +4924,7 @@ "dependencies": { "@fastify/cors": "^10.0.1", "fastify": "^5.2.1", + "pdf-parse": "^2.4.5", "ws": "^8.18.0" }, "devDependencies": { diff --git a/package.json b/package.json index 3e987b3..bc37e70 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "web" ], "scripts": { + "setup": "bash setup.sh", "dev": "npm run dev --workspace server & npm run dev --workspace web & wait", "dev:server": "npm run dev --workspace server", "dev:web": "npm run dev --workspace web", diff --git a/server/package.json b/server/package.json index 57e4901..06dec28 100644 --- a/server/package.json +++ b/server/package.json @@ -12,6 +12,7 @@ "dependencies": { "@fastify/cors": "^10.0.1", "fastify": "^5.2.1", + "pdf-parse": "^2.4.5", "ws": "^8.18.0" }, "devDependencies": { diff --git a/server/src/db.ts b/server/src/db.ts index 5f7fb32..d302b19 100644 --- a/server/src/db.ts +++ b/server/src/db.ts @@ -23,13 +23,19 @@ db.exec(` CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(session_id, created_at); `); -// Bestehende Datenbanken aus agenttwo kennen die Spalte noch nicht. +// Bestehende Datenbanken aus agenttwo kennen die Spalten noch nicht. const hasImages = ( db.prepare("PRAGMA table_info(messages)").all() as unknown as { name: string }[] ).some((c) => c.name === "images"); if (!hasImages) { db.exec("ALTER TABLE messages ADD COLUMN images TEXT"); } +const hasFiles = ( + db.prepare("PRAGMA table_info(messages)").all() as unknown as { name: string }[] +).some((c) => c.name === "files"); +if (!hasFiles) { + db.exec("ALTER TABLE messages ADD COLUMN files TEXT"); +} export interface SessionRow { id: string; @@ -45,6 +51,8 @@ export interface MessageRow { thinking: string | null; /** JSON-Array mit base64-Bilddaten (ohne data:-Präfix), oder null. */ images: string | null; + /** JSON-Array mit Text-Datei-Anhängen ({name, content}), oder null. */ + files: string | null; created_at: number; } @@ -92,6 +100,7 @@ export function insertMessage( content: string, thinking?: string | null, images?: string[] | null, + files?: { name: string; content: string }[] | null, ): MessageRow { const row: MessageRow = { id: randomUUID(), @@ -100,10 +109,11 @@ export function insertMessage( content, thinking: thinking ?? null, images: images?.length ? JSON.stringify(images) : null, + files: files?.length ? JSON.stringify(files) : null, created_at: Date.now(), }; db.prepare( - "INSERT INTO messages (id, session_id, role, content, thinking, images, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)", + "INSERT INTO messages (id, session_id, role, content, thinking, images, files, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", ).run( row.id, row.session_id, @@ -111,6 +121,7 @@ export function insertMessage( row.content, row.thinking, row.images, + row.files, row.created_at, ); return row; @@ -127,6 +138,24 @@ export function parseImages(row: Pick): string[] { } } +/** Text-Datei-Anhänge einer Zeile als Array — leer, wenn keine oder unlesbar. */ +export function parseFiles( + row: Pick, +): { name: string; content: string }[] { + if (!row.files) return []; + try { + const parsed: unknown = JSON.parse(row.files); + if (!Array.isArray(parsed)) return []; + return parsed.flatMap((f) => { + const o = f as { name?: unknown; content?: unknown }; + if (typeof o?.name !== "string" || typeof o?.content !== "string") return []; + return [{ name: o.name, content: o.content }]; + }); + } catch { + return []; + } +} + export function updateAssistantMessage( id: string, content: string, diff --git a/server/src/files.ts b/server/src/files.ts new file mode 100644 index 0000000..48358f4 --- /dev/null +++ b/server/src/files.ts @@ -0,0 +1,134 @@ +import { PDFParse } from "pdf-parse"; + +export const MAX_FILES_PER_MESSAGE = 4; +/** Maximale Zeichen je Textdatei — deckt JSON/CSV/Code weit ab, ohne das Kontextfenster zu sprengen. */ +export const MAX_FILE_CHARS = 100_000; +/** Maximale PDF-Größe vor der Textextraktion. */ +export const MAX_PDF_BYTES = 10 * 1024 * 1024; +/** Maximale Namenlänge nach Bereinigung. */ +const MAX_NAME_CHARS = 120; + +export interface ValidatedFile { + name: string; + content: string; +} + +export interface RawFile { + name?: unknown; + content?: unknown; + encoding?: unknown; +} + +export class FileError extends Error {} + +/** Stripped Pfade und gefährliche Namen; "." und ".." werden abgewiesen. */ +function sanitizeName(raw: unknown): string { + if (typeof raw !== "string" || !raw.trim()) { + throw new FileError("Datei ohne Namen"); + } + const base = raw.split(/[\\/]/).pop() ?? ""; + const name = base.replace(/[\x00-\x1F]/g, "").trim().slice(0, MAX_NAME_CHARS); + if (!name || name === "." || name === "..") { + throw new FileError("Ungültiger Dateiname"); + } + return name; +} + +/** Textnachweis: druckbare Zeichen plus Whitespace; sonstige Steuerzeichen → binär. */ +function isText(content: string): boolean { + return !/[\x00-\x08\x0B\x0C\x0E-\x1F]/.test(content.slice(0, 2000)); +} + +function decodeBase64(input: string): Buffer { + const comma = input.startsWith("data:") ? input.indexOf(",") : -1; + const raw = comma === -1 ? input : input.slice(comma + 1); + if (!/^[A-Za-z0-9+/]+={0,2}$/.test(raw.replace(/\s/g, ""))) { + throw new FileError("Anhang ist kein gültiges base64"); + } + return Buffer.from(raw, "base64"); +} + +async function extractPdfText(name: string, b64: string): Promise { + const buf = decodeBase64(b64); + if (buf.length === 0) throw new FileError(`${name} ist leer`); + if (buf.length > MAX_PDF_BYTES) { + throw new FileError(`${name} ist größer als ${Math.round(MAX_PDF_BYTES / 1024 / 1024)} MB`); + } + if (!buf.subarray(0, 5).toString("latin1").startsWith("%PDF-")) { + throw new FileError(`${name} ist keine PDF-Datei`); + } + let text = ""; + try { + const parser = new PDFParse({ data: new Uint8Array(buf) }); + try { + const result = await parser.getText(); + text = result.text; + } finally { + await parser.destroy(); + } + } catch { + throw new FileError(`${name} konnte nicht gelesen werden`); + } + text = text.replace(/\x00/g, "").trim(); + if (!text) { + throw new FileError( + `${name} enthält keinen extrahierbaren Text — vermutlich gescannt (OCR wird nicht unterstützt)`, + ); + } + if (text.length > MAX_FILE_CHARS) { + text = text.slice(0, MAX_FILE_CHARS) + "\n[…gekürzt]"; + } + return text; +} + +/** + * Prüft Datei-Anhänge: Textdateien direkt, PDFs als base64 mit serverseitiger + * Textextraktion. Wirft FileError, sobald etwas nicht passt. + */ +export async function prepareFiles(raw: unknown): Promise { + if (raw === undefined || raw === null) return []; + if (!Array.isArray(raw)) throw new FileError("files muss ein Array sein"); + if (raw.length > MAX_FILES_PER_MESSAGE) { + throw new FileError(`Maximal ${MAX_FILES_PER_MESSAGE} Dateien pro Nachricht`); + } + + const out: ValidatedFile[] = []; + for (const entry of raw) { + if (!entry || typeof entry !== "object" || Array.isArray(entry)) { + throw new FileError("Datei hat ein ungültiges Format"); + } + const o = entry as RawFile; + const name = sanitizeName(o.name); + + if (o.encoding === "base64") { + if (typeof o.content !== "string" || o.content.length === 0) { + throw new FileError(`${name} ist leer`); + } + out.push({ name, content: await extractPdfText(name, o.content) }); + continue; + } + + if (typeof o.content !== "string" || o.content.length === 0) { + throw new FileError(`${name} ist leer`); + } + if (o.content.length > MAX_FILE_CHARS) { + throw new FileError( + `${name} ist größer als ${Math.round(MAX_FILE_CHARS / 1000)} kB`, + ); + } + if (!isText(o.content)) { + throw new FileError(`${name} wirkt binär — nur Textdateien werden unterstützt`); + } + out.push({ name, content: o.content }); + } + return out; +} + +/** Baut einen Datei-Block für den LLM-Kontext, gekürzt auf maxChars. */ +export function fileBlock(name: string, content: string, maxChars = 24_000): string { + const body = + content.length > maxChars + ? content.slice(0, maxChars) + "\n[…gekürzt]" + : content; + return `[Datei: ${name}]\n\`\`\`\n${body}\n\`\`\``; +} diff --git a/server/src/index.ts b/server/src/index.ts index a864f00..48138c3 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -15,6 +15,7 @@ import { } from "./openrouter.js"; import { ALLOWED_ORIGINS, isOriginAllowed, createRateLimiter } from "./security.js"; import { validateImages, ImageError, MAX_WS_PAYLOAD } from "./images.js"; +import { prepareFiles, FileError, fileBlock } from "./files.js"; import { toolNames } from "./tools/index.js"; // simple .env loader (project root) @@ -81,6 +82,7 @@ app.addHook("onRequest", async (req, reply) => { const sttLimiter = createRateLimiter(10, 60_000); const ttsLimiter = createRateLimiter(30, 60_000); +const dreamLimiter = createRateLimiter(4, 60_000); app.addContentTypeParser( ["application/octet-stream", "audio/*", "video/*"], @@ -145,6 +147,9 @@ app.get("/api/sessions/:id/memory", async (req, reply) => { }); app.post("/api/sessions/:id/dream", async (req, reply) => { + if (!dreamLimiter(req.ip)) { + return reply.code(429).send({ error: "Zu viele Anfragen" }); + } const { id } = req.params as { id: string }; if (!dbmod.getSession(id)) return reply.code(404).send({ error: "not found" }); const result = await mem.dream(id, { ollamaUrl: OLLAMA_URL, model: MODEL }); @@ -153,6 +158,9 @@ app.post("/api/sessions/:id/dream", async (req, reply) => { }); app.post("/api/sessions/:id/memory/rebuild", async (req, reply) => { + if (!dreamLimiter(req.ip)) { + return reply.code(429).send({ error: "Zu viele Anfragen" }); + } const { id } = req.params as { id: string }; if (!dbmod.getSession(id)) return reply.code(404).send({ error: "not found" }); const result = mem.rebuildMemory(id); @@ -351,36 +359,57 @@ wss.on("connection", (socket: WebSocket, _req: IncomingMessage) => { return; } - // Ein Bild allein ist eine gültige Anfrage — Text darf dann fehlen. - if (!sessionId || (!content && images.length === 0)) { + let chatFiles: { name: string; content: string }[]; + try { + chatFiles = await prepareFiles(msg.files); + } catch (err) { + socket.send( + JSON.stringify({ + type: "error", + error: err instanceof FileError ? err.message : "Datei abgelehnt", + }), + ); + return; + } + + // Ein Bild oder eine Datei allein ist eine gültige Anfrage — Text darf dann fehlen. + if (!sessionId || (!content && images.length === 0 && chatFiles.length === 0)) { socket.send(JSON.stringify({ type: "error", error: "sessionId/content fehlt" })); return; } let session = dbmod.getSession(sessionId); if (!session) session = dbmod.createSession(); - dbmod.renameSessionIfDefault(session.id, content || "Bild"); + dbmod.renameSessionIfDefault( + session.id, + content || chatFiles.map((f) => f.name).join(", ") || "Bild", + ); - const userMsg = dbmod.insertMessage(session.id, "user", content, null, images); + const userMsg = dbmod.insertMessage(session.id, "user", content, null, images, chatFiles); mem.appendEvent(session.id, "message", { role: "user", content, images: images.length, + files: chatFiles.map((f) => ({ name: f.name, chars: f.content.length })), }); socket.send(JSON.stringify({ type: "user-message", message: userMsg })); broadcast({ type: "sessions-changed" }); const opts = parseOptions(msg.options); opts.sessionId = session.id; - const history = dbmod - .listMessages(session.id) - .slice(-opts.memorySteps) - .map((m) => { - const imgs = dbmod.parseImages(m); - return imgs.length - ? { role: m.role, content: m.content, images: imgs } - : { role: m.role, content: m.content }; - }); + const history = dbmod.listMessages(session.id).slice(-opts.memorySteps).map((m) => { + const imgs = dbmod.parseImages(m); + let text = m.content; + const msgFiles = dbmod.parseFiles(m); + if (msgFiles.length) { + text = (text ? text + "\n\n" : "") + msgFiles.map((f) => fileBlock(f.name, f.content)).join("\n\n"); + } + const base: { role: string; content: string; images?: string[] } = { + role: m.role, + content: text, + }; + return imgs.length ? { ...base, images: imgs } : base; + }); const userSystem = typeof msg.systemPrompt === "string" && msg.systemPrompt.trim() diff --git a/server/src/memory.ts b/server/src/memory.ts index 64948d0..40b74af 100644 --- a/server/src/memory.ts +++ b/server/src/memory.ts @@ -103,6 +103,9 @@ export function appendEvent( type: "message" | "tool_call", payload: Record, ): number { + if (typeof payload.content === "string") { + payload = { ...payload, content: payload.content.slice(0, 20_000) }; + } const res = db .prepare( "INSERT INTO memory_events (session_id, type, payload, created_at) VALUES (?, ?, ?, ?)", diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..54bff1a --- /dev/null +++ b/setup.sh @@ -0,0 +1,225 @@ +#!/usr/bin/env bash +# +# agenttwo-tools — Installationsroutine für macOS +# Prüft alle Abhängigkeiten und bietet fehlende Komponenten zur Installation an. +# +# ./setup.sh interaktiv (fragt vor jeder Installation) +# ./setup.sh --check prüft nur, ändert nichts +# ./setup.sh --yes installiert alles Fehlende ohne Nachfragen +# +set -u + +cd "$(dirname "$0")" + +AUTO=0 +CHECK=0 +for arg in "$@"; do + case "$arg" in + --yes|-y) AUTO=1 ;; + --check|-c) CHECK=1 ;; + *) echo "Unbekannte Option: $arg"; exit 1 ;; + esac +done + +GREEN='\033[0;32m'; YELLOW='\033[0;33m'; RED='\033[0;31m'; BOLD='\033[1m'; OFF='\033[0m' +ok() { printf " ${GREEN}✓${OFF} %s\n" "$1"; } +warn() { printf " ${YELLOW}!${OFF} %s\n" "$1"; } +fail() { printf " ${RED}✗${OFF} %s\n" "$1"; } +sect() { printf "\n${BOLD}== %s ==${OFF}\n" "$1"; } + +MISSING=0 +note_missing() { MISSING=$((MISSING + 1)); } + +have() { command -v "$1" >/dev/null 2>&1; } + +ask() { + if [ "$AUTO" -eq 1 ]; then echo " → --yes: installiere automatisch"; return 0; fi + printf " ${BOLD}%s installieren? [J/n] ${OFF}" "$1" + read -r answer + [ -z "$answer" ] || [ "$answer" = "j" ] || [ "$answer" = "J" ] || [ "$answer" = "ja" ] +} + +# .env lesen (nur einfache KEY=VALUE-Zeilen), ohne sie zu verändern +env_var() { + if [ -f .env ]; then + grep -E "^\s*$1=" .env | head -1 | cut -d= -f2- | sed 's/^["'\'']//; s/["'\'']$//' + fi +} + +MODEL="$(env_var MODEL)"; MODEL="${MODEL:-qwen3.5:latest}" +WHISPER_MODEL="$(env_var WHISPER_MODEL)"; WHISPER_MODEL="${WHISPER_MODEL:-$HOME/whisper-models/ggml-large-v3-turbo.bin}" +WHISPER_MODEL="${WHISPER_MODEL/#\~/$HOME}" +PIPER_MODEL="$(env_var PIPER_MODEL)"; PIPER_MODEL="${PIPER_MODEL:-server/voices/de_DE-thorsten-high.onnx}" +OLLAMA_URL="$(env_var OLLAMA_URL)"; OLLAMA_URL="${OLLAMA_URL:-http://localhost:11434}" + +sect "agenttwo-tools — Setup" +echo "Ziel: lauffähiger Voice-Chat auf diesem Mac (alles lokal)." +echo "Modell: $MODEL · Ollama: $OLLAMA_URL" + +sect "1/9 macOS" +if [ "$(uname -s)" = "Darwin" ]; then + ok "macOS $(sw_vers -productVersion 2>/dev/null) · $(uname -m)" +else + fail "Kein macOS — dieses Skript ist für macOS geschrieben." + exit 1 +fi + +sect "2/9 Homebrew" +if have brew; then + ok "brew $(brew --version | head -1 | awk '{print $2}')" +else + note_missing + warn "Homebrew fehlt (Paketbasis für fast alles Weitere)." + if [ "$CHECK" -eq 0 ] && ask "Homebrew"; then + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" || fail "Homebrew-Installation fehlgeschlagen" + if [ "$(uname -m)" = "arm64" ] && ! have brew; then + echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile + eval "$(/opt/homebrew/bin/brew shellenv)" + fi + have brew && ok "Homebrew installiert" || fail "brew weiterhin nicht gefunden — Terminal neu starten und Skript erneut laufen lassen" + fi +fi + +sect "3/9 Node.js 22+" +NODE_OK=0 +if have node; then + NODE_MAJOR="$(node -v | sed 's/^v//' | cut -d. -f1)" + if [ "${NODE_MAJOR:-0}" -ge 22 ]; then + ok "node $(node -v)" + NODE_OK=1 + else + warn "node $(node -v) ist zu alt (mind. v22, wegen node:sqlite)." + fi +fi +if [ "$NODE_OK" -eq 0 ]; then + note_missing + if [ "$CHECK" -eq 0 ] && have brew && ask "Node.js 22 (brew install node@22)"; then + brew install node@22 && brew link --overwrite node@22 + have node && ok "node $(node -v)" || fail "node weiterhin nicht gefunden — Terminal neu starten" + fi +fi + +sect "4/9 Projekt-Abhängigkeiten (npm)" +if [ -d node_modules ] && [ -x node_modules/.bin/tsx ] && [ -x node_modules/.bin/vite ]; then + ok "node_modules vorhanden" +else + note_missing + if [ "$CHECK" -eq 0 ] && have npm && ask "npm install"; then + npm install && ok "Abhängigkeiten installiert" || fail "npm install fehlgeschlagen" + fi +fi + +sect "5/9 ffmpeg" +if have ffmpeg; then + ok "ffmpeg $(ffmpeg -version 2>/dev/null | head -1 | awk '{print $3}')" +else + note_missing + if [ "$CHECK" -eq 0 ] && have brew && ask "ffmpeg (brew install ffmpeg)"; then + brew install ffmpeg && ok "ffmpeg installiert" || fail "ffmpeg-Installation fehlgeschlagen" + fi +fi + +sect "6/9 whisper.cpp (Spracheingabe)" +if have whisper-cli; then + ok "whisper-cli gefunden" +else + note_missing + if [ "$CHECK" -eq 0 ] && have brew && ask "whisper.cpp (brew install whisper-cpp)"; then + brew install whisper-cpp && ok "whisper-cli installiert" || fail "whisper-cpp-Installation fehlgeschlagen" + fi +fi +if [ -f "$WHISPER_MODEL" ]; then + ok "Whisper-Modell: $(basename "$WHISPER_MODEL") ($(( $(stat -f%z "$WHISPER_MODEL") / 1024 / 1024 )) MB)" +else + note_missing + warn "Whisper-Modell fehlt: $WHISPER_MODEL (~1,5 GB Download)." + if [ "$CHECK" -eq 0 ] && ask "Whisper-Modell herunterladen"; then + mkdir -p "$(dirname "$WHISPER_MODEL")" + curl -L -o "$WHISPER_MODEL" \ + "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin" \ + && ok "Whisper-Modell geladen" || fail "Download fehlgeschlagen" + fi +fi + +sect "7/9 Piper (Sprachausgabe)" +if python3 -m piper --help >/dev/null 2>&1; then + ok "piper (python3 -m piper)" +else + note_missing + warn "piper fehlt. Hinweis: Homebrew-Python verweigert pip oft (externally-managed)." + if [ "$CHECK" -eq 0 ] && ask "piper-tts"; then + pip3 install piper-tts 2>/dev/null \ + || pip3 install --user piper-tts 2>/dev/null \ + || pip3 install --break-system-packages piper-tts + python3 -m piper --help >/dev/null 2>&1 && ok "piper installiert" \ + || fail "piper weiterhin nicht nutzbar — manuell: pipx install piper-tts oder venv" + fi +fi +if [ -f "$PIPER_MODEL" ]; then + ok "Piper-Stimme: $(basename "$PIPER_MODEL")" +else + note_missing + warn "Piper-Stimme fehlt: $PIPER_MODEL (~110 MB Download)." + if [ "$CHECK" -eq 0 ] && ask "Piper-Stimme herunterladen"; then + mkdir -p "$(dirname "$PIPER_MODEL")" + curl -L -o "$PIPER_MODEL" \ + "https://huggingface.co/rhasspy/piper-voices/resolve/main/de/de_DE/thorsten/high/$(basename "$PIPER_MODEL")" \ + && ok "Stimme geladen" || fail "Download fehlgeschlagen" + fi +fi + +sect "8/9 Ollama" +OLLAMA_SVC=0 +if have ollama; then + ok "ollama $(ollama --version 2>/dev/null | awk '{print $NF}')" +else + note_missing + warn "Ollama fehlt (führt das Sprachmodell lokal aus)." + if [ "$CHECK" -eq 0 ] && ask "Ollama (brew install ollama)"; then + brew install ollama && ok "Ollama installiert" || fail "Ollama-Installation fehlgeschlagen" + fi +fi +if curl -s --max-time 2 "$OLLAMA_URL/api/tags" >/dev/null 2>&1; then + ok "Ollama-Server erreichbar ($OLLAMA_URL)" + OLLAMA_SVC=1 +else + note_missing + warn "Ollama-Server läuft nicht auf $OLLAMA_URL." + if [ "$CHECK" -eq 0 ] && have ollama && ask "Ollama-Server starten (ollama serve im Hintergrund)"; then + nohup ollama serve >/dev/null 2>&1 & disown + sleep 3 + if curl -s --max-time 2 "$OLLAMA_URL/api/tags" >/dev/null 2>&1; then + ok "Ollama-Server läuft" + OLLAMA_SVC=1 + else + fail "Server nicht erreichbar — App „Ollama“ öffnen oder 'ollama serve' manuell starten" + fi + fi +fi + +sect "9/9 Sprachmodell ($MODEL)" +MODEL_OK=0 +if [ "$OLLAMA_SVC" -eq 1 ]; then + if ollama list 2>/dev/null | awk '{print $1}' | grep -qx "$MODEL"; then + ok "$MODEL ist geladen" + MODEL_OK=1 + else + note_missing + warn "$MODEL fehlt (Download je nach Modell mehrere GB)." + if [ "$CHECK" -eq 0 ] && have ollama && ask "ollama pull $MODEL"; then + ollama pull "$MODEL" && ok "$MODEL geladen" || fail "Modell-Download fehlgeschlagen" + fi + fi +else + warn "Ohne laufenden Ollama-Server keine Modellprüfung möglich." +fi + +sect "Ergebnis" +if [ "$MISSING" -eq 0 ]; then + printf "${GREEN}Alles bereit!${OFF} Starten mit:\n\n npm run dev\n → http://localhost:5174\n" +else + printf "${YELLOW}%s Punkt(e) offen.${OFF} Skript erneut laufen lassen (fehlende Teile werden nachinstalliert), dann:\n\n npm run dev\n → http://localhost:5174\n" "$MISSING" +fi +printf "\nOptional (nur für Cloud-Fallback): OPENROUTER_API_KEY in die .env eintragen.\n" +[ "$CHECK" -eq 1 ] && [ "$MISSING" -gt 0 ] && exit 1 +exit 0 diff --git a/web/dist/assets/index-CQxQcFyH.js b/web/dist/assets/index-CQxQcFyH.js new file mode 100644 index 0000000..b167acb --- /dev/null +++ b/web/dist/assets/index-CQxQcFyH.js @@ -0,0 +1,74 @@ +var Dh=Object.defineProperty;var Ph=(e,i,r)=>i in e?Dh(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r;var Ti=(e,i,r)=>Ph(e,typeof i!="symbol"?i+"":i,r);(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const c of s)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function r(s){const c={};return s.integrity&&(c.integrity=s.integrity),s.referrerPolicy&&(c.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?c.credentials="include":s.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function l(s){if(s.ep)return;s.ep=!0;const c=r(s);fetch(s.href,c)}})();function Co(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var js={exports:{}},yo={},Gs={exports:{}},Fe={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ff;function zh(){if(ff)return Fe;ff=1;var e=Symbol.for("react.element"),i=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),u=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),h=Symbol.iterator;function b(R){return R===null||typeof R!="object"?null:(R=h&&R[h]||R["@@iterator"],typeof R=="function"?R:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,N={};function O(R,$,k){this.props=R,this.context=$,this.refs=N,this.updater=k||E}O.prototype.isReactComponent={},O.prototype.setState=function(R,$){if(typeof R!="object"&&typeof R!="function"&&R!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,R,$,"setState")},O.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function S(){}S.prototype=O.prototype;function L(R,$,k){this.props=R,this.context=$,this.refs=N,this.updater=k||E}var P=L.prototype=new S;P.constructor=L,w(P,O.prototype),P.isPureReactComponent=!0;var q=Array.isArray,X=Object.prototype.hasOwnProperty,M={current:null},le={key:!0,ref:!0,__self:!0,__source:!0};function de(R,$,k){var ke,Me={},we=null,$e=null;if($!=null)for(ke in $.ref!==void 0&&($e=$.ref),$.key!==void 0&&(we=""+$.key),$)X.call($,ke)&&!le.hasOwnProperty(ke)&&(Me[ke]=$[ke]);var De=arguments.length-2;if(De===1)Me.children=k;else if(1>>1,$=V[R];if(0>>1;Rs(Me,v))we<$&&0>s($e,Me)?(V[R]=$e,V[we]=v,R=we):(V[R]=Me,V[ke]=v,R=ke);else if(we<$&&0>s($e,v))V[R]=$e,V[we]=v,R=we;else break e}}return ae}function s(V,ae){var v=V.sortIndex-ae.sortIndex;return v!==0?v:V.id-ae.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,f=u.now();e.unstable_now=function(){return u.now()-f}}var p=[],m=[],y=1,h=null,b=3,E=!1,w=!1,N=!1,O=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,L=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function P(V){for(var ae=r(m);ae!==null;){if(ae.callback===null)l(m);else if(ae.startTime<=V)l(m),ae.sortIndex=ae.expirationTime,i(p,ae);else break;ae=r(m)}}function q(V){if(N=!1,P(V),!w)if(r(p)!==null)w=!0,se(X);else{var ae=r(m);ae!==null&&z(q,ae.startTime-V)}}function X(V,ae){w=!1,N&&(N=!1,S(de),de=-1),E=!0;var v=b;try{for(P(ae),h=r(p);h!==null&&(!(h.expirationTime>ae)||V&&!j());){var R=h.callback;if(typeof R=="function"){h.callback=null,b=h.priorityLevel;var $=R(h.expirationTime<=ae);ae=e.unstable_now(),typeof $=="function"?h.callback=$:h===r(p)&&l(p),P(ae)}else l(p);h=r(p)}if(h!==null)var k=!0;else{var ke=r(m);ke!==null&&z(q,ke.startTime-ae),k=!1}return k}finally{h=null,b=v,E=!1}}var M=!1,le=null,de=-1,K=5,A=-1;function j(){return!(e.unstable_now()-AV||125R?(V.sortIndex=v,i(m,V),r(p)===null&&V===r(m)&&(N?(S(de),de=-1):N=!0,z(q,v-R))):(V.sortIndex=$,i(p,V),w||E||(w=!0,se(X))),V},e.unstable_shouldYield=j,e.unstable_wrapCallback=function(V){var ae=b;return function(){var v=b;b=ae;try{return V.apply(this,arguments)}finally{b=v}}}})(Vs)),Vs}var yf;function Hh(){return yf||(yf=1,Ws.exports=$h()),Ws.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var bf;function jh(){if(bf)return Yt;bf=1;var e=Au(),i=Hh();function r(t){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+t,o=1;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),p=Object.prototype.hasOwnProperty,m=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,y={},h={};function b(t){return p.call(h,t)?!0:p.call(y,t)?!1:m.test(t)?h[t]=!0:(y[t]=!0,!1)}function E(t,n,o,a){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return a?!1:o!==null?!o.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function w(t,n,o,a){if(n===null||typeof n>"u"||E(t,n,o,a))return!0;if(a)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function N(t,n,o,a,d,g,_){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=a,this.attributeNamespace=d,this.mustUseProperty=o,this.propertyName=t,this.type=n,this.sanitizeURL=g,this.removeEmptyString=_}var O={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){O[t]=new N(t,0,!1,t,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var n=t[0];O[n]=new N(n,1,!1,t[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(t){O[t]=new N(t,2,!1,t.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){O[t]=new N(t,2,!1,t,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){O[t]=new N(t,3,!1,t.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(t){O[t]=new N(t,3,!0,t,null,!1,!1)}),["capture","download"].forEach(function(t){O[t]=new N(t,4,!1,t,null,!1,!1)}),["cols","rows","size","span"].forEach(function(t){O[t]=new N(t,6,!1,t,null,!1,!1)}),["rowSpan","start"].forEach(function(t){O[t]=new N(t,5,!1,t.toLowerCase(),null,!1,!1)});var S=/[\-:]([a-z])/g;function L(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var n=t.replace(S,L);O[n]=new N(n,1,!1,t,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var n=t.replace(S,L);O[n]=new N(n,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(t){var n=t.replace(S,L);O[n]=new N(n,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(t){O[t]=new N(t,1,!1,t.toLowerCase(),null,!1,!1)}),O.xlinkHref=new N("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(t){O[t]=new N(t,1,!1,t.toLowerCase(),null,!0,!0)});function P(t,n,o,a){var d=O.hasOwnProperty(n)?O[n]:null;(d!==null?d.type!==0:a||!(2x||d[_]!==g[x]){var C=` +`+d[_].replace(" at new "," at ");return t.displayName&&C.includes("")&&(C=C.replace("",t.displayName)),C}while(1<=_&&0<=x);break}}}finally{k=!1,Error.prepareStackTrace=o}return(t=t?t.displayName||t.name:"")?$(t):""}function Me(t){switch(t.tag){case 5:return $(t.type);case 16:return $("Lazy");case 13:return $("Suspense");case 19:return $("SuspenseList");case 0:case 2:case 15:return t=ke(t.type,!1),t;case 11:return t=ke(t.type.render,!1),t;case 1:return t=ke(t.type,!0),t;default:return""}}function we(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case le:return"Fragment";case M:return"Portal";case K:return"Profiler";case de:return"StrictMode";case J:return"Suspense";case Q:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case j:return(t.displayName||"Context")+".Consumer";case A:return(t._context.displayName||"Context")+".Provider";case U:var n=t.render;return t=t.displayName,t||(t=n.displayName||n.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case G:return n=t.displayName||null,n!==null?n:we(t.type)||"Memo";case se:n=t._payload,t=t._init;try{return we(t(n))}catch{}}return null}function $e(t){var n=t.type;switch(t.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=n.render,t=t.displayName||t.name||"",n.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return we(n);case 8:return n===de?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function De(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Ge(t){var n=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Ze(t){var n=Ge(t)?"checked":"value",o=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),a=""+t[n];if(!t.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var d=o.get,g=o.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return d.call(this)},set:function(_){a=""+_,g.call(this,_)}}),Object.defineProperty(t,n,{enumerable:o.enumerable}),{getValue:function(){return a},setValue:function(_){a=""+_},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function Zt(t){t._valueTracker||(t._valueTracker=Ze(t))}function rr(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var o=n.getValue(),a="";return t&&(a=Ge(t)?t.checked?"true":"false":t.value),t=a,t!==o?(n.setValue(t),!0):!1}function An(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Hn(t,n){var o=n.checked;return v({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??t._wrapperState.initialChecked})}function jn(t,n){var o=n.defaultValue==null?"":n.defaultValue,a=n.checked!=null?n.checked:n.defaultChecked;o=De(n.value!=null?n.value:o),t._wrapperState={initialChecked:a,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Ke(t,n){n=n.checked,n!=null&&P(t,"checked",n,!1)}function Jt(t,n){Ke(t,n);var o=De(n.value),a=n.type;if(o!=null)a==="number"?(o===0&&t.value===""||t.value!=o)&&(t.value=""+o):t.value!==""+o&&(t.value=""+o);else if(a==="submit"||a==="reset"){t.removeAttribute("value");return}n.hasOwnProperty("value")?Rn(t,n.type,o):n.hasOwnProperty("defaultValue")&&Rn(t,n.type,De(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(t.defaultChecked=!!n.defaultChecked)}function an(t,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var a=n.type;if(!(a!=="submit"&&a!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+t._wrapperState.initialValue,o||n===t.value||(t.value=n),t.defaultValue=n}o=t.name,o!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,o!==""&&(t.name=o)}function Rn(t,n,o){(n!=="number"||An(t.ownerDocument)!==t)&&(o==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+o&&(t.defaultValue=""+o))}var bn=Array.isArray;function On(t,n,o,a){if(t=t.options,n){n={};for(var d=0;d"+n.valueOf().toString()+"",n=Ce.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;n.firstChild;)t.appendChild(n.firstChild)}});function He(t,n){if(n){var o=t.firstChild;if(o&&o===t.lastChild&&o.nodeType===3){o.nodeValue=n;return}}t.textContent=n}var _t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},En=["Webkit","ms","Moz","O"];Object.keys(_t).forEach(function(t){En.forEach(function(n){n=n+t.charAt(0).toUpperCase()+t.substring(1),_t[n]=_t[t]})});function jt(t,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||_t.hasOwnProperty(t)&&_t[t]?(""+n).trim():n+"px"}function _n(t,n){t=t.style;for(var o in n)if(n.hasOwnProperty(o)){var a=o.indexOf("--")===0,d=jt(o,n[o],a);o==="float"&&(o="cssFloat"),a?t.setProperty(o,d):t[o]=d}}var Gn=v({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vt(t,n){if(n){if(Gn[t]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(r(137,t));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(r(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(r(61))}if(n.style!=null&&typeof n.style!="object")throw Error(r(62))}}function un(t,n){if(t.indexOf("-")===-1)return typeof n.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ct=null;function ei(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var ti=null,ir=null,Kn=null;function Wn(t){if(t=to(t)){if(typeof ti!="function")throw Error(r(280));var n=t.stateNode;n&&(n=tl(n),ti(t.stateNode,t.type,n))}}function T(t){ir?Kn?Kn.push(t):Kn=[t]:ir=t}function Y(){if(ir){var t=ir,n=Kn;if(Kn=ir=null,Wn(t),n)for(t=0;t>>=0,t===0?32:31-(Mn(t)/ii|0)|0}var Ft=64,Ir=4194304;function lr(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Mr(t,n){var o=t.pendingLanes;if(o===0)return 0;var a=0,d=t.suspendedLanes,g=t.pingedLanes,_=o&268435455;if(_!==0){var x=_&~d;x!==0?a=lr(x):(g&=_,g!==0&&(a=lr(g)))}else _=o&~d,_!==0?a=lr(_):g!==0&&(a=lr(g));if(a===0)return 0;if(n!==0&&n!==a&&(n&d)===0&&(d=a&-a,g=n&-n,d>=g||d===16&&(g&4194240)!==0))return n;if((a&4)!==0&&(a|=o&16),n=t.entangledLanes,n!==0)for(t=t.entanglements,n&=a;0o;o++)n.push(t);return n}function sr(t,n,o){t.pendingLanes|=n,n!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,n=31-ut(n),t[n]=o}function cn(t,n){var o=t.pendingLanes&~n;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=n,t.mutableReadLanes&=n,t.entangledLanes&=n,n=t.entanglements;var a=t.eventTimes;for(t=t.expirationTimes;0=Wi),ic=" ",oc=!1;function lc(t,n){switch(t){case"keyup":return Rg.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ac(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ai=!1;function Ig(t,n){switch(t){case"compositionend":return ac(n);case"keypress":return n.which!==32?null:(oc=!0,ic);case"textInput":return t=n.data,t===ic&&oc?null:t;default:return null}}function Mg(t,n){if(ai)return t==="compositionend"||!wa&&lc(t,n)?(t=Zu(),Go=ya=cr=null,ai=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:o,offset:n-t};t=a}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=mc(o)}}function hc(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?hc(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function yc(){for(var t=window,n=An();n instanceof t.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)t=n.contentWindow;else break;n=An(t.document)}return n}function Na(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}function Hg(t){var n=yc(),o=t.focusedElem,a=t.selectionRange;if(n!==o&&o&&o.ownerDocument&&hc(o.ownerDocument.documentElement,o)){if(a!==null&&Na(o)){if(n=a.start,t=a.end,t===void 0&&(t=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(t,o.value.length);else if(t=(n=o.ownerDocument||document)&&n.defaultView||window,t.getSelection){t=t.getSelection();var d=o.textContent.length,g=Math.min(a.start,d);a=a.end===void 0?g:Math.min(a.end,d),!t.extend&&g>a&&(d=a,a=g,g=d),d=gc(o,g);var _=gc(o,a);d&&_&&(t.rangeCount!==1||t.anchorNode!==d.node||t.anchorOffset!==d.offset||t.focusNode!==_.node||t.focusOffset!==_.offset)&&(n=n.createRange(),n.setStart(d.node,d.offset),t.removeAllRanges(),g>a?(t.addRange(n),t.extend(_.node,_.offset)):(n.setEnd(_.node,_.offset),t.addRange(n)))}}for(n=[],t=o;t=t.parentNode;)t.nodeType===1&&n.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o=document.documentMode,si=null,Ta=null,Qi=null,Ca=!1;function bc(t,n,o){var a=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;Ca||si==null||si!==An(a)||(a=si,"selectionStart"in a&&Na(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qi&&Yi(Qi,a)||(Qi=a,a=Zo(Ta,"onSelect"),0pi||(t.current=Ua[pi],Ua[pi]=null,pi--)}function nt(t,n){pi++,Ua[pi]=t.current,t.current=n}var mr={},Ot=pr(mr),Gt=pr(!1),zr=mr;function mi(t,n){var o=t.type.contextTypes;if(!o)return mr;var a=t.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===n)return a.__reactInternalMemoizedMaskedChildContext;var d={},g;for(g in o)d[g]=n[g];return a&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=n,t.__reactInternalMemoizedMaskedChildContext=d),d}function Kt(t){return t=t.childContextTypes,t!=null}function nl(){ot(Gt),ot(Ot)}function Mc(t,n,o){if(Ot.current!==mr)throw Error(r(168));nt(Ot,n),nt(Gt,o)}function Lc(t,n,o){var a=t.stateNode;if(n=n.childContextTypes,typeof a.getChildContext!="function")return o;a=a.getChildContext();for(var d in a)if(!(d in n))throw Error(r(108,$e(t)||"Unknown",d));return v({},o,a)}function rl(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||mr,zr=Ot.current,nt(Ot,t),nt(Gt,Gt.current),!0}function Dc(t,n,o){var a=t.stateNode;if(!a)throw Error(r(169));o?(t=Lc(t,n,zr),a.__reactInternalMemoizedMergedChildContext=t,ot(Gt),ot(Ot),nt(Ot,t)):ot(Gt),nt(Gt,o)}var Yn=null,il=!1,$a=!1;function Pc(t){Yn===null?Yn=[t]:Yn.push(t)}function eh(t){il=!0,Pc(t)}function gr(){if(!$a&&Yn!==null){$a=!0;var t=0,n=Ve;try{var o=Yn;for(Ve=1;t>=_,d-=_,Qn=1<<32-ut(n)+d|o<Oe?(Tt=Ne,Ne=null):Tt=Ne.sibling;var Ye=Z(D,Ne,F[Oe],ie);if(Ye===null){Ne===null&&(Ne=Tt);break}t&&Ne&&Ye.alternate===null&&n(D,Ne),I=g(Ye,I,Oe),Se===null?_e=Ye:Se.sibling=Ye,Se=Ye,Ne=Tt}if(Oe===F.length)return o(D,Ne),at&&Br(D,Oe),_e;if(Ne===null){for(;OeOe?(Tt=Ne,Ne=null):Tt=Ne.sibling;var xr=Z(D,Ne,Ye.value,ie);if(xr===null){Ne===null&&(Ne=Tt);break}t&&Ne&&xr.alternate===null&&n(D,Ne),I=g(xr,I,Oe),Se===null?_e=xr:Se.sibling=xr,Se=xr,Ne=Tt}if(Ye.done)return o(D,Ne),at&&Br(D,Oe),_e;if(Ne===null){for(;!Ye.done;Oe++,Ye=F.next())Ye=te(D,Ye.value,ie),Ye!==null&&(I=g(Ye,I,Oe),Se===null?_e=Ye:Se.sibling=Ye,Se=Ye);return at&&Br(D,Oe),_e}for(Ne=a(D,Ne);!Ye.done;Oe++,Ye=F.next())Ye=pe(Ne,D,Oe,Ye.value,ie),Ye!==null&&(t&&Ye.alternate!==null&&Ne.delete(Ye.key===null?Oe:Ye.key),I=g(Ye,I,Oe),Se===null?_e=Ye:Se.sibling=Ye,Se=Ye);return t&&Ne.forEach(function(Lh){return n(D,Lh)}),at&&Br(D,Oe),_e}function ht(D,I,F,ie){if(typeof F=="object"&&F!==null&&F.type===le&&F.key===null&&(F=F.props.children),typeof F=="object"&&F!==null){switch(F.$$typeof){case X:e:{for(var _e=F.key,Se=I;Se!==null;){if(Se.key===_e){if(_e=F.type,_e===le){if(Se.tag===7){o(D,Se.sibling),I=d(Se,F.props.children),I.return=D,D=I;break e}}else if(Se.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===se&&Hc(_e)===Se.type){o(D,Se.sibling),I=d(Se,F.props),I.ref=no(D,Se,F),I.return=D,D=I;break e}o(D,Se);break}else n(D,Se);Se=Se.sibling}F.type===le?(I=Vr(F.props.children,D.mode,ie,F.key),I.return=D,D=I):(ie=Il(F.type,F.key,F.props,null,D.mode,ie),ie.ref=no(D,I,F),ie.return=D,D=ie)}return _(D);case M:e:{for(Se=F.key;I!==null;){if(I.key===Se)if(I.tag===4&&I.stateNode.containerInfo===F.containerInfo&&I.stateNode.implementation===F.implementation){o(D,I.sibling),I=d(I,F.children||[]),I.return=D,D=I;break e}else{o(D,I);break}else n(D,I);I=I.sibling}I=Fs(F,D.mode,ie),I.return=D,D=I}return _(D);case se:return Se=F._init,ht(D,I,Se(F._payload),ie)}if(bn(F))return be(D,I,F,ie);if(ae(F))return Ee(D,I,F,ie);sl(D,F)}return typeof F=="string"&&F!==""||typeof F=="number"?(F=""+F,I!==null&&I.tag===6?(o(D,I.sibling),I=d(I,F),I.return=D,D=I):(o(D,I),I=zs(F,D.mode,ie),I.return=D,D=I),_(D)):o(D,I)}return ht}var bi=jc(!0),Gc=jc(!1),ul=pr(null),cl=null,Ei=null,Va=null;function qa(){Va=Ei=cl=null}function Ya(t){var n=ul.current;ot(ul),t._currentValue=n}function Qa(t,n,o){for(;t!==null;){var a=t.alternate;if((t.childLanes&n)!==n?(t.childLanes|=n,a!==null&&(a.childLanes|=n)):a!==null&&(a.childLanes&n)!==n&&(a.childLanes|=n),t===o)break;t=t.return}}function _i(t,n){cl=t,Va=Ei=null,t=t.dependencies,t!==null&&t.firstContext!==null&&((t.lanes&n)!==0&&(Wt=!0),t.firstContext=null)}function pn(t){var n=t._currentValue;if(Va!==t)if(t={context:t,memoizedValue:n,next:null},Ei===null){if(cl===null)throw Error(r(308));Ei=t,cl.dependencies={lanes:0,firstContext:t}}else Ei=Ei.next=t;return n}var Ur=null;function Xa(t){Ur===null?Ur=[t]:Ur.push(t)}function Kc(t,n,o,a){var d=n.interleaved;return d===null?(o.next=o,Xa(n)):(o.next=d.next,d.next=o),n.interleaved=o,Zn(t,a)}function Zn(t,n){t.lanes|=n;var o=t.alternate;for(o!==null&&(o.lanes|=n),o=t,t=t.return;t!==null;)t.childLanes|=n,o=t.alternate,o!==null&&(o.childLanes|=n),o=t,t=t.return;return o.tag===3?o.stateNode:null}var hr=!1;function Za(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Wc(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Jn(t,n){return{eventTime:t,lane:n,tag:0,payload:null,callback:null,next:null}}function yr(t,n,o){var a=t.updateQueue;if(a===null)return null;if(a=a.shared,(qe&2)!==0){var d=a.pending;return d===null?n.next=n:(n.next=d.next,d.next=n),a.pending=n,Zn(t,o)}return d=a.interleaved,d===null?(n.next=n,Xa(a)):(n.next=d.next,d.next=n),a.interleaved=n,Zn(t,o)}function dl(t,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var a=n.lanes;a&=t.pendingLanes,o|=a,n.lanes=o,Bi(t,o)}}function Vc(t,n){var o=t.updateQueue,a=t.alternate;if(a!==null&&(a=a.updateQueue,o===a)){var d=null,g=null;if(o=o.firstBaseUpdate,o!==null){do{var _={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};g===null?d=g=_:g=g.next=_,o=o.next}while(o!==null);g===null?d=g=n:g=g.next=n}else d=g=n;o={baseState:a.baseState,firstBaseUpdate:d,lastBaseUpdate:g,shared:a.shared,effects:a.effects},t.updateQueue=o;return}t=o.lastBaseUpdate,t===null?o.firstBaseUpdate=n:t.next=n,o.lastBaseUpdate=n}function fl(t,n,o,a){var d=t.updateQueue;hr=!1;var g=d.firstBaseUpdate,_=d.lastBaseUpdate,x=d.shared.pending;if(x!==null){d.shared.pending=null;var C=x,B=C.next;C.next=null,_===null?g=B:_.next=B,_=C;var ee=t.alternate;ee!==null&&(ee=ee.updateQueue,x=ee.lastBaseUpdate,x!==_&&(x===null?ee.firstBaseUpdate=B:x.next=B,ee.lastBaseUpdate=C))}if(g!==null){var te=d.baseState;_=0,ee=B=C=null,x=g;do{var Z=x.lane,pe=x.eventTime;if((a&Z)===Z){ee!==null&&(ee=ee.next={eventTime:pe,lane:0,tag:x.tag,payload:x.payload,callback:x.callback,next:null});e:{var be=t,Ee=x;switch(Z=n,pe=o,Ee.tag){case 1:if(be=Ee.payload,typeof be=="function"){te=be.call(pe,te,Z);break e}te=be;break e;case 3:be.flags=be.flags&-65537|128;case 0:if(be=Ee.payload,Z=typeof be=="function"?be.call(pe,te,Z):be,Z==null)break e;te=v({},te,Z);break e;case 2:hr=!0}}x.callback!==null&&x.lane!==0&&(t.flags|=64,Z=d.effects,Z===null?d.effects=[x]:Z.push(x))}else pe={eventTime:pe,lane:Z,tag:x.tag,payload:x.payload,callback:x.callback,next:null},ee===null?(B=ee=pe,C=te):ee=ee.next=pe,_|=Z;if(x=x.next,x===null){if(x=d.shared.pending,x===null)break;Z=x,x=Z.next,Z.next=null,d.lastBaseUpdate=Z,d.shared.pending=null}}while(!0);if(ee===null&&(C=te),d.baseState=C,d.firstBaseUpdate=B,d.lastBaseUpdate=ee,n=d.shared.interleaved,n!==null){d=n;do _|=d.lane,d=d.next;while(d!==n)}else g===null&&(d.shared.lanes=0);jr|=_,t.lanes=_,t.memoizedState=te}}function qc(t,n,o){if(t=n.effects,n.effects=null,t!==null)for(n=0;no?o:4,t(!0);var a=rs.transition;rs.transition={};try{t(!1),n()}finally{Ve=o,rs.transition=a}}function pd(){return mn().memoizedState}function ih(t,n,o){var a=vr(t);if(o={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null},md(t))gd(n,o);else if(o=Kc(t,n,o,a),o!==null){var d=Ut();Tn(o,t,a,d),hd(o,n,a)}}function oh(t,n,o){var a=vr(t),d={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null};if(md(t))gd(n,d);else{var g=t.alternate;if(t.lanes===0&&(g===null||g.lanes===0)&&(g=n.lastRenderedReducer,g!==null))try{var _=n.lastRenderedState,x=g(_,o);if(d.hasEagerState=!0,d.eagerState=x,kn(x,_)){var C=n.interleaved;C===null?(d.next=d,Xa(n)):(d.next=C.next,C.next=d),n.interleaved=d;return}}catch{}finally{}o=Kc(t,n,d,a),o!==null&&(d=Ut(),Tn(o,t,a,d),hd(o,n,a))}}function md(t){var n=t.alternate;return t===dt||n!==null&&n===dt}function gd(t,n){lo=gl=!0;var o=t.pending;o===null?n.next=n:(n.next=o.next,o.next=n),t.pending=n}function hd(t,n,o){if((o&4194240)!==0){var a=n.lanes;a&=t.pendingLanes,o|=a,n.lanes=o,Bi(t,o)}}var bl={readContext:pn,useCallback:It,useContext:It,useEffect:It,useImperativeHandle:It,useInsertionEffect:It,useLayoutEffect:It,useMemo:It,useReducer:It,useRef:It,useState:It,useDebugValue:It,useDeferredValue:It,useTransition:It,useMutableSource:It,useSyncExternalStore:It,useId:It,unstable_isNewReconciler:!1},lh={readContext:pn,useCallback:function(t,n){return zn().memoizedState=[t,n===void 0?null:n],t},useContext:pn,useEffect:od,useImperativeHandle:function(t,n,o){return o=o!=null?o.concat([t]):null,hl(4194308,4,sd.bind(null,n,t),o)},useLayoutEffect:function(t,n){return hl(4194308,4,t,n)},useInsertionEffect:function(t,n){return hl(4,2,t,n)},useMemo:function(t,n){var o=zn();return n=n===void 0?null:n,t=t(),o.memoizedState=[t,n],t},useReducer:function(t,n,o){var a=zn();return n=o!==void 0?o(n):n,a.memoizedState=a.baseState=n,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:n},a.queue=t,t=t.dispatch=ih.bind(null,dt,t),[a.memoizedState,t]},useRef:function(t){var n=zn();return t={current:t},n.memoizedState=t},useState:rd,useDebugValue:cs,useDeferredValue:function(t){return zn().memoizedState=t},useTransition:function(){var t=rd(!1),n=t[0];return t=rh.bind(null,t[1]),zn().memoizedState=t,[n,t]},useMutableSource:function(){},useSyncExternalStore:function(t,n,o){var a=dt,d=zn();if(at){if(o===void 0)throw Error(r(407));o=o()}else{if(o=n(),Nt===null)throw Error(r(349));(Hr&30)!==0||Zc(a,n,o)}d.memoizedState=o;var g={value:o,getSnapshot:n};return d.queue=g,od(ed.bind(null,a,g,t),[t]),a.flags|=2048,uo(9,Jc.bind(null,a,g,o,n),void 0,null),o},useId:function(){var t=zn(),n=Nt.identifierPrefix;if(at){var o=Xn,a=Qn;o=(a&~(1<<32-ut(a)-1)).toString(32)+o,n=":"+n+"R"+o,o=ao++,0<\/script>",t=t.removeChild(t.firstChild)):typeof a.is=="string"?t=_.createElement(o,{is:a.is}):(t=_.createElement(o),o==="select"&&(_=t,a.multiple?_.multiple=!0:a.size&&(_.size=a.size))):t=_.createElementNS(t,o),t[Dn]=n,t[eo]=a,Pd(t,n,!1,!1),n.stateNode=t;e:{switch(_=un(o,a),o){case"dialog":it("cancel",t),it("close",t),d=a;break;case"iframe":case"object":case"embed":it("load",t),d=a;break;case"video":case"audio":for(d=0;dSi&&(n.flags|=128,a=!0,co(g,!1),n.lanes=4194304)}else{if(!a)if(t=pl(_),t!==null){if(n.flags|=128,a=!0,o=t.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),co(g,!0),g.tail===null&&g.tailMode==="hidden"&&!_.alternate&&!at)return Mt(n),null}else 2*st()-g.renderingStartTime>Si&&o!==1073741824&&(n.flags|=128,a=!0,co(g,!1),n.lanes=4194304);g.isBackwards?(_.sibling=n.child,n.child=_):(o=g.last,o!==null?o.sibling=_:n.child=_,g.last=_)}return g.tail!==null?(n=g.tail,g.rendering=n,g.tail=n.sibling,g.renderingStartTime=st(),n.sibling=null,o=ct.current,nt(ct,a?o&1|2:o&1),n):(Mt(n),null);case 22:case 23:return Ls(),a=n.memoizedState!==null,t!==null&&t.memoizedState!==null!==a&&(n.flags|=8192),a&&(n.mode&1)!==0?(rn&1073741824)!==0&&(Mt(n),n.subtreeFlags&6&&(n.flags|=8192)):Mt(n),null;case 24:return null;case 25:return null}throw Error(r(156,n.tag))}function mh(t,n){switch(ja(n),n.tag){case 1:return Kt(n.type)&&nl(),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return vi(),ot(Gt),ot(Ot),ns(),t=n.flags,(t&65536)!==0&&(t&128)===0?(n.flags=t&-65537|128,n):null;case 5:return es(n),null;case 13:if(ot(ct),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(r(340));yi()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return ot(ct),null;case 4:return vi(),null;case 10:return Ya(n.type._context),null;case 22:case 23:return Ls(),null;case 24:return null;default:return null}}var kl=!1,Lt=!1,gh=typeof WeakSet=="function"?WeakSet:Set,ye=null;function wi(t,n){var o=t.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(a){pt(t,n,a)}else o.current=null}function ks(t,n,o){try{o()}catch(a){pt(t,n,a)}}var Bd=!1;function hh(t,n){if(La=Ho,t=yc(),Na(t)){if("selectionStart"in t)var o={start:t.selectionStart,end:t.selectionEnd};else e:{o=(o=t.ownerDocument)&&o.defaultView||window;var a=o.getSelection&&o.getSelection();if(a&&a.rangeCount!==0){o=a.anchorNode;var d=a.anchorOffset,g=a.focusNode;a=a.focusOffset;try{o.nodeType,g.nodeType}catch{o=null;break e}var _=0,x=-1,C=-1,B=0,ee=0,te=t,Z=null;t:for(;;){for(var pe;te!==o||d!==0&&te.nodeType!==3||(x=_+d),te!==g||a!==0&&te.nodeType!==3||(C=_+a),te.nodeType===3&&(_+=te.nodeValue.length),(pe=te.firstChild)!==null;)Z=te,te=pe;for(;;){if(te===t)break t;if(Z===o&&++B===d&&(x=_),Z===g&&++ee===a&&(C=_),(pe=te.nextSibling)!==null)break;te=Z,Z=te.parentNode}te=pe}o=x===-1||C===-1?null:{start:x,end:C}}else o=null}o=o||{start:0,end:0}}else o=null;for(Da={focusedElem:t,selectionRange:o},Ho=!1,ye=n;ye!==null;)if(n=ye,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,ye=t;else for(;ye!==null;){n=ye;try{var be=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(be!==null){var Ee=be.memoizedProps,ht=be.memoizedState,D=n.stateNode,I=D.getSnapshotBeforeUpdate(n.elementType===n.type?Ee:xn(n.type,Ee),ht);D.__reactInternalSnapshotBeforeUpdate=I}break;case 3:var F=n.stateNode.containerInfo;F.nodeType===1?F.textContent="":F.nodeType===9&&F.documentElement&&F.removeChild(F.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(ie){pt(n,n.return,ie)}if(t=n.sibling,t!==null){t.return=n.return,ye=t;break}ye=n.return}return be=Bd,Bd=!1,be}function fo(t,n,o){var a=n.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var d=a=a.next;do{if((d.tag&t)===t){var g=d.destroy;d.destroy=void 0,g!==void 0&&ks(n,o,g)}d=d.next}while(d!==a)}}function wl(t,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&t)===t){var a=o.create;o.destroy=a()}o=o.next}while(o!==n)}}function ws(t){var n=t.ref;if(n!==null){var o=t.stateNode;switch(t.tag){case 5:t=o;break;default:t=o}typeof n=="function"?n(t):n.current=t}}function Ud(t){var n=t.alternate;n!==null&&(t.alternate=null,Ud(n)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(n=t.stateNode,n!==null&&(delete n[Dn],delete n[eo],delete n[Ba],delete n[Zg],delete n[Jg])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function $d(t){return t.tag===5||t.tag===3||t.tag===4}function Hd(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||$d(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function xs(t,n,o){var a=t.tag;if(a===5||a===6)t=t.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(t,n):o.insertBefore(t,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(t,o)):(n=o,n.appendChild(t)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=el));else if(a!==4&&(t=t.child,t!==null))for(xs(t,n,o),t=t.sibling;t!==null;)xs(t,n,o),t=t.sibling}function Ss(t,n,o){var a=t.tag;if(a===5||a===6)t=t.stateNode,n?o.insertBefore(t,n):o.appendChild(t);else if(a!==4&&(t=t.child,t!==null))for(Ss(t,n,o),t=t.sibling;t!==null;)Ss(t,n,o),t=t.sibling}var At=null,Sn=!1;function br(t,n,o){for(o=o.child;o!==null;)jd(t,n,o),o=o.sibling}function jd(t,n,o){if(Be&&typeof Be.onCommitFiberUnmount=="function")try{Be.onCommitFiberUnmount(ze,o)}catch{}switch(o.tag){case 5:Lt||wi(o,n);case 6:var a=At,d=Sn;At=null,br(t,n,o),At=a,Sn=d,At!==null&&(Sn?(t=At,o=o.stateNode,t.nodeType===8?t.parentNode.removeChild(o):t.removeChild(o)):At.removeChild(o.stateNode));break;case 18:At!==null&&(Sn?(t=At,o=o.stateNode,t.nodeType===8?Fa(t.parentNode,o):t.nodeType===1&&Fa(t,o),ji(t)):Fa(At,o.stateNode));break;case 4:a=At,d=Sn,At=o.stateNode.containerInfo,Sn=!0,br(t,n,o),At=a,Sn=d;break;case 0:case 11:case 14:case 15:if(!Lt&&(a=o.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){d=a=a.next;do{var g=d,_=g.destroy;g=g.tag,_!==void 0&&((g&2)!==0||(g&4)!==0)&&ks(o,n,_),d=d.next}while(d!==a)}br(t,n,o);break;case 1:if(!Lt&&(wi(o,n),a=o.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=o.memoizedProps,a.state=o.memoizedState,a.componentWillUnmount()}catch(x){pt(o,n,x)}br(t,n,o);break;case 21:br(t,n,o);break;case 22:o.mode&1?(Lt=(a=Lt)||o.memoizedState!==null,br(t,n,o),Lt=a):br(t,n,o);break;default:br(t,n,o)}}function Gd(t){var n=t.updateQueue;if(n!==null){t.updateQueue=null;var o=t.stateNode;o===null&&(o=t.stateNode=new gh),n.forEach(function(a){var d=Sh.bind(null,t,a);o.has(a)||(o.add(a),a.then(d,d))})}}function Nn(t,n){var o=n.deletions;if(o!==null)for(var a=0;ad&&(d=_),a&=~g}if(a=d,a=st()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*bh(a/1960))-a,10t?16:t,_r===null)var a=!1;else{if(t=_r,_r=null,Cl=0,(qe&6)!==0)throw Error(r(331));var d=qe;for(qe|=4,ye=t.current;ye!==null;){var g=ye,_=g.child;if((ye.flags&16)!==0){var x=g.deletions;if(x!==null){for(var C=0;Cst()-Cs?Kr(t,0):Ts|=o),qt(t,n)}function rf(t,n){n===0&&((t.mode&1)===0?n=1:(n=Ir,Ir<<=1,(Ir&130023424)===0&&(Ir=4194304)));var o=Ut();t=Zn(t,n),t!==null&&(sr(t,n,o),qt(t,o))}function xh(t){var n=t.memoizedState,o=0;n!==null&&(o=n.retryLane),rf(t,o)}function Sh(t,n){var o=0;switch(t.tag){case 13:var a=t.stateNode,d=t.memoizedState;d!==null&&(o=d.retryLane);break;case 19:a=t.stateNode;break;default:throw Error(r(314))}a!==null&&a.delete(n),rf(t,o)}var of;of=function(t,n,o){if(t!==null)if(t.memoizedProps!==n.pendingProps||Gt.current)Wt=!0;else{if((t.lanes&o)===0&&(n.flags&128)===0)return Wt=!1,fh(t,n,o);Wt=(t.flags&131072)!==0}else Wt=!1,at&&(n.flags&1048576)!==0&&zc(n,ll,n.index);switch(n.lanes=0,n.tag){case 2:var a=n.type;vl(t,n),t=n.pendingProps;var d=mi(n,Ot.current);_i(n,o),d=os(null,n,a,t,d,o);var g=ls();return n.flags|=1,typeof d=="object"&&d!==null&&typeof d.render=="function"&&d.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Kt(a)?(g=!0,rl(n)):g=!1,n.memoizedState=d.state!==null&&d.state!==void 0?d.state:null,Za(n),d.updater=El,n.stateNode=d,d._reactInternals=n,fs(n,a,t,o),n=hs(null,n,a,!0,g,o)):(n.tag=0,at&&g&&Ha(n),Bt(null,n,d,o),n=n.child),n;case 16:a=n.elementType;e:{switch(vl(t,n),t=n.pendingProps,d=a._init,a=d(a._payload),n.type=a,d=n.tag=Th(a),t=xn(a,t),d){case 0:n=gs(null,n,a,t,o);break e;case 1:n=Rd(null,n,a,t,o);break e;case 11:n=Sd(null,n,a,t,o);break e;case 14:n=Nd(null,n,a,xn(a.type,t),o);break e}throw Error(r(306,a,""))}return n;case 0:return a=n.type,d=n.pendingProps,d=n.elementType===a?d:xn(a,d),gs(t,n,a,d,o);case 1:return a=n.type,d=n.pendingProps,d=n.elementType===a?d:xn(a,d),Rd(t,n,a,d,o);case 3:e:{if(Od(n),t===null)throw Error(r(387));a=n.pendingProps,g=n.memoizedState,d=g.element,Wc(t,n),fl(n,a,null,o);var _=n.memoizedState;if(a=_.element,g.isDehydrated)if(g={element:a,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},n.updateQueue.baseState=g,n.memoizedState=g,n.flags&256){d=ki(Error(r(423)),n),n=Id(t,n,a,o,d);break e}else if(a!==d){d=ki(Error(r(424)),n),n=Id(t,n,a,o,d);break e}else for(nn=fr(n.stateNode.containerInfo.firstChild),tn=n,at=!0,wn=null,o=Gc(n,null,a,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(yi(),a===d){n=er(t,n,o);break e}Bt(t,n,a,o)}n=n.child}return n;case 5:return Yc(n),t===null&&Ka(n),a=n.type,d=n.pendingProps,g=t!==null?t.memoizedProps:null,_=d.children,Pa(a,d)?_=null:g!==null&&Pa(a,g)&&(n.flags|=32),Ad(t,n),Bt(t,n,_,o),n.child;case 6:return t===null&&Ka(n),null;case 13:return Md(t,n,o);case 4:return Ja(n,n.stateNode.containerInfo),a=n.pendingProps,t===null?n.child=bi(n,null,a,o):Bt(t,n,a,o),n.child;case 11:return a=n.type,d=n.pendingProps,d=n.elementType===a?d:xn(a,d),Sd(t,n,a,d,o);case 7:return Bt(t,n,n.pendingProps,o),n.child;case 8:return Bt(t,n,n.pendingProps.children,o),n.child;case 12:return Bt(t,n,n.pendingProps.children,o),n.child;case 10:e:{if(a=n.type._context,d=n.pendingProps,g=n.memoizedProps,_=d.value,nt(ul,a._currentValue),a._currentValue=_,g!==null)if(kn(g.value,_)){if(g.children===d.children&&!Gt.current){n=er(t,n,o);break e}}else for(g=n.child,g!==null&&(g.return=n);g!==null;){var x=g.dependencies;if(x!==null){_=g.child;for(var C=x.firstContext;C!==null;){if(C.context===a){if(g.tag===1){C=Jn(-1,o&-o),C.tag=2;var B=g.updateQueue;if(B!==null){B=B.shared;var ee=B.pending;ee===null?C.next=C:(C.next=ee.next,ee.next=C),B.pending=C}}g.lanes|=o,C=g.alternate,C!==null&&(C.lanes|=o),Qa(g.return,o,n),x.lanes|=o;break}C=C.next}}else if(g.tag===10)_=g.type===n.type?null:g.child;else if(g.tag===18){if(_=g.return,_===null)throw Error(r(341));_.lanes|=o,x=_.alternate,x!==null&&(x.lanes|=o),Qa(_,o,n),_=g.sibling}else _=g.child;if(_!==null)_.return=g;else for(_=g;_!==null;){if(_===n){_=null;break}if(g=_.sibling,g!==null){g.return=_.return,_=g;break}_=_.return}g=_}Bt(t,n,d.children,o),n=n.child}return n;case 9:return d=n.type,a=n.pendingProps.children,_i(n,o),d=pn(d),a=a(d),n.flags|=1,Bt(t,n,a,o),n.child;case 14:return a=n.type,d=xn(a,n.pendingProps),d=xn(a.type,d),Nd(t,n,a,d,o);case 15:return Td(t,n,n.type,n.pendingProps,o);case 17:return a=n.type,d=n.pendingProps,d=n.elementType===a?d:xn(a,d),vl(t,n),n.tag=1,Kt(a)?(t=!0,rl(n)):t=!1,_i(n,o),bd(n,a,d),fs(n,a,d,o),hs(null,n,a,!0,t,o);case 19:return Dd(t,n,o);case 22:return Cd(t,n,o)}throw Error(r(156,n.tag))};function lf(t,n){return Po(t,n)}function Nh(t,n,o,a){this.tag=t,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function hn(t,n,o,a){return new Nh(t,n,o,a)}function Ps(t){return t=t.prototype,!(!t||!t.isReactComponent)}function Th(t){if(typeof t=="function")return Ps(t)?1:0;if(t!=null){if(t=t.$$typeof,t===U)return 11;if(t===G)return 14}return 2}function wr(t,n){var o=t.alternate;return o===null?(o=hn(t.tag,n,t.key,t.mode),o.elementType=t.elementType,o.type=t.type,o.stateNode=t.stateNode,o.alternate=t,t.alternate=o):(o.pendingProps=n,o.type=t.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=t.flags&14680064,o.childLanes=t.childLanes,o.lanes=t.lanes,o.child=t.child,o.memoizedProps=t.memoizedProps,o.memoizedState=t.memoizedState,o.updateQueue=t.updateQueue,n=t.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=t.sibling,o.index=t.index,o.ref=t.ref,o}function Il(t,n,o,a,d,g){var _=2;if(a=t,typeof t=="function")Ps(t)&&(_=1);else if(typeof t=="string")_=5;else e:switch(t){case le:return Vr(o.children,d,g,n);case de:_=8,d|=8;break;case K:return t=hn(12,o,n,d|2),t.elementType=K,t.lanes=g,t;case J:return t=hn(13,o,n,d),t.elementType=J,t.lanes=g,t;case Q:return t=hn(19,o,n,d),t.elementType=Q,t.lanes=g,t;case z:return Ml(o,d,g,n);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case A:_=10;break e;case j:_=9;break e;case U:_=11;break e;case G:_=14;break e;case se:_=16,a=null;break e}throw Error(r(130,t==null?t:typeof t,""))}return n=hn(_,o,n,d),n.elementType=t,n.type=a,n.lanes=g,n}function Vr(t,n,o,a){return t=hn(7,t,a,n),t.lanes=o,t}function Ml(t,n,o,a){return t=hn(22,t,a,n),t.elementType=z,t.lanes=o,t.stateNode={isHidden:!1},t}function zs(t,n,o){return t=hn(6,t,null,n),t.lanes=o,t}function Fs(t,n,o){return n=hn(4,t.children!==null?t.children:[],t.key,n),n.lanes=o,n.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},n}function Ch(t,n,o,a,d){this.tag=n,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ar(0),this.expirationTimes=ar(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ar(0),this.identifierPrefix=a,this.onRecoverableError=d,this.mutableSourceEagerHydrationData=null}function Bs(t,n,o,a,d,g,_,x,C){return t=new Ch(t,n,o,x,C),n===1?(n=1,g===!0&&(n|=8)):n=0,g=hn(3,null,null,n),t.current=g,g.stateNode=t,g.memoizedState={element:a,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Za(g),t}function Ah(t,n,o){var a=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(i){console.error(i)}}return e(),Ks.exports=jh(),Ks.exports}var _f;function Kh(){if(_f)return Ul;_f=1;var e=Gh();return Ul.createRoot=e.createRoot,Ul.hydrateRoot=e.hydrateRoot,Ul}var Wh=Kh();const Vh=Co(Wh);class qh{constructor(){Ti(this,"ws",null);Ti(this,"handlers",new Set);Ti(this,"queue",[]);Ti(this,"closedByUser",!1);Ti(this,"onStatus")}connect(){var l;this.closedByUser=!1,(l=this.onStatus)==null||l.call(this,"connecting");const i=location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${i}//${location.host}/ws`);r.onopen=()=>{var s;(s=this.onStatus)==null||s.call(this,"open");for(const c of this.queue)r.send(c);this.queue=[]},r.onmessage=s=>{try{const c=JSON.parse(s.data);for(const u of this.handlers)u(c)}catch{}},r.onclose=()=>{var s;(s=this.onStatus)==null||s.call(this,"closed"),this.closedByUser||setTimeout(()=>this.connect(),1500)},this.ws=r}send(i){var l;const r=JSON.stringify(i);((l=this.ws)==null?void 0:l.readyState)===WebSocket.OPEN?this.ws.send(r):this.queue.push(r)}close(){var i;this.closedByUser=!0,(i=this.ws)==null||i.close()}subscribe(i){return this.handlers.add(i),()=>this.handlers.delete(i)}}const Rp="oxagenttwo.options",vf="oxagenttwo.session",kf="oxagenttwo.systemPrompt";function Yh(){const e={model:"qwen3.5:latest",think:!0,tools:!0,temperature:.7,numPredict:2048,provider:"ollama",openrouterModel:"anthropic/claude-sonnet-4.5",memorySteps:10,memoryAnchors:!0,dreamAuto:!0};try{const i=localStorage.getItem(Rp);if(i)return{...e,...JSON.parse(i)}}catch{}return e}function Qh(){const e=ce.useRef(null),[i,r]=ce.useState("connecting"),[l,s]=ce.useState([]),[c,u]=ce.useState(()=>localStorage.getItem(vf)),[f,p]=ce.useState([]),[m,y]=ce.useState(!1),[h,b]=ce.useState({}),[E,w]=ce.useState(Yh),[N,O]=ce.useState(()=>localStorage.getItem(kf)??""),[S,L]=ce.useState(null),P=ce.useRef(!1);ce.useEffect(()=>{const j=new qh;e.current=j,j.onStatus=r;const U=j.subscribe(J=>{const Q=J.type;if(Q==="user-message"){const G=J.message;p(se=>se.some(z=>z.id===G.id)?se:[...se,G]),u(se=>se===G.session_id?se:G.session_id)}else if(Q==="assistant-start"){const G=J.message;p(se=>[...se,{...G,content:"",thinking:""}])}else if(Q==="thinking"){const G=J.text;p(se=>se.map(z=>z.id===J.messageId?{...z,thinking:(z.thinking??"")+G}:z))}else if(Q==="token"){const G=J.text;p(se=>se.map(z=>z.id===J.messageId?{...z,content:z.content+G}:z))}else Q==="tool-call"?b(G=>({...G,[J.messageId]:[...G[J.messageId]??[],{name:J.name,args:J.args}]})):Q==="tool-result"?b(G=>{const se=G[J.messageId]??[],z=[...se].reverse().findIndex(v=>v.name===J.name&&v.ok===void 0);if(z===-1)return G;const V=se.length-1-z,ae=se.map((v,R)=>R===V?{...v,ok:J.ok,durationMs:J.durationMs}:v);return{...G,[J.messageId]:ae}}):Q==="done"||Q==="error"?(P.current=!1,y(!1)):(Q==="sessions-changed"||Q==="session-deleted")&&q()});return j.connect(),()=>{U(),j.close()}},[]);const q=ce.useCallback(async()=>{const U=await(await fetch("/api/sessions")).json();s(U),u(J=>{var Q;return J&&U.some(G=>G.id===J)?J:((Q=U[0])==null?void 0:Q.id)??null})},[]);ce.useEffect(()=>{q()},[q]),ce.useEffect(()=>{fetch(`/api/model?name=${encodeURIComponent(E.model)}`).then(j=>j.json()).then(L).catch(()=>L({ok:!1,error:"Ollama nicht erreichbar"}))},[E.model]),ce.useEffect(()=>{if(!c){p([]);return}localStorage.setItem(vf,c),P.current=!1,y(!1),fetch(`/api/sessions/${c}/messages`).then(j=>j.json()).then(j=>p(Array.isArray(j)?j:[])).catch(()=>p([]))},[c]);const X=ce.useCallback(j=>{w(U=>{const J={...U,...j};return localStorage.setItem(Rp,JSON.stringify(J)),J})},[]),M=ce.useCallback(j=>{O(j),localStorage.setItem(kf,j)},[]),le=ce.useCallback((j,U=[],J=[])=>{var Q;!j.trim()&&U.length===0&&J.length===0||P.current||!c||(P.current=!0,y(!0),(Q=e.current)==null||Q.send({type:"chat",sessionId:c,content:j,images:U,files:J,options:E,systemPrompt:N}))},[c,E,N]),de=ce.useCallback(()=>{var j;(j=e.current)==null||j.send({type:"abort"})},[]),K=ce.useCallback(async()=>{const U=await(await fetch("/api/sessions",{method:"POST"})).json();await q(),u(U.id)},[q]),A=ce.useCallback(async j=>{await fetch(`/api/sessions/${j}`,{method:"DELETE"}),s(U=>U.filter(J=>J.id!==j)),u(U=>U===j?null:U),await q()},[q]);return{status:i,sessions:l,activeId:c,setActiveId:u,messages:f,streaming:m,toolEvents:h,sendMessage:le,abort:de,newSession:K,deleteSession:A,options:E,setOptions:X,systemPrompt:N,setSystemPrompt:M,modelInfo:S}}function Xh({onTranscript:e,onQueueDrained:i}){const[r,l]=ce.useState(!1),[s,c]=ce.useState(!1),[u,f]=ce.useState(!1),[p,m]=ce.useState(null),y=ce.useRef(null),h=ce.useRef([]),b=ce.useRef(null),E=ce.useRef(null),w=ce.useRef([]),N=ce.useRef(null),O=ce.useRef(!1),S=ce.useRef(null),L=ce.useRef(i);L.current=i;const P=ce.useRef(e);P.current=e;const q=ce.useCallback(async()=>{if(O.current)return;const K=w.current.shift();if(K===void 0){f(!1),L.current();return}O.current=!0,f(!0);try{S.current=new AbortController;const A=await fetch("/api/tts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:K}),signal:S.current.signal});if(!A.ok)throw new Error(`TTS HTTP ${A.status}`);const j=await A.blob(),U=new Audio(URL.createObjectURL(j));N.current=U,await new Promise(J=>{U.onended=()=>J(),U.onerror=()=>J(),U.play().catch(()=>J())}),URL.revokeObjectURL(U.src)}catch(A){A instanceof DOMException&&A.name==="AbortError"||m(A instanceof Error?A.message:String(A))}finally{O.current=!1,S.current=null,q()}},[]),X=ce.useCallback(K=>{const A=K.trim();A&&(w.current.push(A),q())},[q]),M=ce.useCallback(()=>{var K;w.current=[],(K=S.current)==null||K.abort(),N.current&&(N.current.pause(),N.current.src=""),O.current=!1,f(!1)},[]),le=ce.useCallback(()=>{var K;E.current&&clearTimeout(E.current),E.current=null,((K=y.current)==null?void 0:K.state)==="recording"&&y.current.stop()},[]),de=ce.useCallback(async()=>{var K;if(((K=y.current)==null?void 0:K.state)!=="recording"){m(null);try{const A=await navigator.mediaDevices.getUserMedia({audio:!0});b.current=A;const j=new MediaRecorder(A);h.current=[],j.ondataavailable=U=>{U.data.size>0&&h.current.push(U.data)},j.onstop=async()=>{var J,Q;(J=b.current)==null||J.getTracks().forEach(G=>G.stop()),b.current=null,l(!1);const U=new Blob(h.current);if(h.current=[],!(U.size<2e3)){c(!0);try{const se=await(await fetch("/api/stt",{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:U})).json();if(!se.ok)throw new Error(se.error??"STT fehlgeschlagen");const z=(Q=se.text)==null?void 0:Q.trim();z?P.current(z):m("Nichts verstanden — bitte nochmal sprechen.")}catch(G){m(G instanceof Error?G.message:String(G))}finally{c(!1)}}},y.current=j,j.start(),l(!0),E.current=setTimeout(()=>le(),3e4)}catch(A){m(A instanceof Error?A.message:String(A))}}},[e,le]);return ce.useEffect(()=>()=>{var K,A;((K=y.current)==null?void 0:K.state)==="recording"&&y.current.stop(),(A=b.current)==null||A.getTracks().forEach(j=>j.stop()),M()},[]),{recording:r,transcribing:s,speaking:u,error:p,setError:m,startRecording:de,stopRecording:le,enqueueSpeech:X,cancelSpeech:M}}function Zh({sessions:e,activeId:i,onSelect:r,onNew:l,onDelete:s}){return H.jsxs("aside",{className:"sidebar",children:[H.jsxs("div",{className:"sidebar-header",children:[H.jsxs("div",{className:"brand",children:[H.jsx("span",{className:"brand-prompt",children:"▸"})," agenttwo-tools"]}),H.jsx("button",{className:"btn-new",onClick:l,children:"+ Neuer Chat"})]}),H.jsxs("nav",{className:"session-list",children:[e.length===0&&H.jsx("div",{className:"empty-hint",children:"Noch keine Sessions."}),e.map(c=>H.jsxs("div",{className:`session-item ${c.id===i?"active":""}`,onClick:()=>r(c.id),children:[H.jsx("span",{className:"session-title",children:c.title}),H.jsx("button",{className:"session-delete",title:"Session löschen",onClick:u=>{u.stopPropagation(),s(c.id)},children:"✕"})]},c.id))]})]})}function Jh(e,i){const r={};return(e[e.length-1]===""?[...e,""]:e).join((r.padRight?" ":"")+","+(r.padLeft===!1?"":" ")).trim()}const ey=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,ty=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,ny={};function wf(e,i){return(ny.jsx?ty:ey).test(e)}const ry=/[ \t\n\f\r]/g;function iy(e){return typeof e=="object"?e.type==="text"?xf(e.value):!1:xf(e)}function xf(e){return e.replace(ry,"")===""}class Ao{constructor(i,r,l){this.normal=r,this.property=i,l&&(this.space=l)}}Ao.prototype.normal={};Ao.prototype.property={};Ao.prototype.space=void 0;function Op(e,i){const r={},l={};for(const s of e)Object.assign(r,s.property),Object.assign(l,s.normal);return new Ao(r,l,i)}function hu(e){return e.toLowerCase()}class Xt{constructor(i,r){this.attribute=r,this.property=i}}Xt.prototype.attribute="";Xt.prototype.booleanish=!1;Xt.prototype.boolean=!1;Xt.prototype.commaOrSpaceSeparated=!1;Xt.prototype.commaSeparated=!1;Xt.prototype.defined=!1;Xt.prototype.mustUseProperty=!1;Xt.prototype.number=!1;Xt.prototype.overloadedBoolean=!1;Xt.prototype.property="";Xt.prototype.spaceSeparated=!1;Xt.prototype.space=void 0;let oy=0;const Le=Zr(),Et=Zr(),yu=Zr(),ne=Zr(),Je=Zr(),Qr=Zr(),on=Zr();function Zr(){return 2**++oy}const bu=Object.freeze(Object.defineProperty({__proto__:null,boolean:Le,booleanish:Et,commaOrSpaceSeparated:on,commaSeparated:Qr,number:ne,overloadedBoolean:yu,spaceSeparated:Je},Symbol.toStringTag,{value:"Module"})),qs=Object.keys(bu);class Ru extends Xt{constructor(i,r,l,s){let c=-1;if(super(i,r),Sf(this,"space",s),typeof l=="number")for(;++c4&&r.slice(0,4)==="data"&&cy.test(i)){if(i.charAt(4)==="-"){const c=i.slice(5).replace(Nf,py);l="data"+c.charAt(0).toUpperCase()+c.slice(1)}else{const c=i.slice(4);if(!Nf.test(c)){let u=c.replace(uy,fy);u.charAt(0)!=="-"&&(u="-"+u),i="data"+u}}s=Ru}return new s(l,i)}function fy(e){return"-"+e.toLowerCase()}function py(e){return e.charAt(1).toUpperCase()}const my=Op([Ip,ly,Dp,Pp,zp],"html"),Ou=Op([Ip,ay,Dp,Pp,zp],"svg");function gy(e){return e.join(" ").trim()}var Ci={},Ys,Tf;function hy(){if(Tf)return Ys;Tf=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,i=/\n/g,r=/^\s*/,l=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,c=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,f=/^\s+|\s+$/g,p=` +`,m="/",y="*",h="",b="comment",E="declaration";function w(O,S){if(typeof O!="string")throw new TypeError("First argument must be a string");if(!O)return[];S=S||{};var L=1,P=1;function q(Q){var G=Q.match(i);G&&(L+=G.length);var se=Q.lastIndexOf(p);P=~se?Q.length-se:P+Q.length}function X(){var Q={line:L,column:P};return function(G){return G.position=new M(Q),K(),G}}function M(Q){this.start=Q,this.end={line:L,column:P},this.source=S.source}M.prototype.content=O;function le(Q){var G=new Error(S.source+":"+L+":"+P+": "+Q);if(G.reason=Q,G.filename=S.source,G.line=L,G.column=P,G.source=O,!S.silent)throw G}function de(Q){var G=Q.exec(O);if(G){var se=G[0];return q(se),O=O.slice(se.length),G}}function K(){de(r)}function A(Q){var G;for(Q=Q||[];G=j();)G!==!1&&Q.push(G);return Q}function j(){var Q=X();if(!(m!=O.charAt(0)||y!=O.charAt(1))){for(var G=2;h!=O.charAt(G)&&(y!=O.charAt(G)||m!=O.charAt(G+1));)++G;if(G+=2,h===O.charAt(G-1))return le("End of comment missing");var se=O.slice(2,G-2);return P+=2,q(se),O=O.slice(G),P+=2,Q({type:b,comment:se})}}function U(){var Q=X(),G=de(l);if(G){if(j(),!de(s))return le("property missing ':'");var se=de(c),z=Q({type:E,property:N(G[0].replace(e,h)),value:se?N(se[0].replace(e,h)):h});return de(u),z}}function J(){var Q=[];A(Q);for(var G;G=U();)G!==!1&&(Q.push(G),A(Q));return Q}return K(),J()}function N(O){return O?O.replace(f,h):h}return Ys=w,Ys}var Cf;function yy(){if(Cf)return Ci;Cf=1;var e=Ci&&Ci.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.default=r;const i=e(hy());function r(l,s){let c=null;if(!l||typeof l!="string")return c;const u=(0,i.default)(l),f=typeof s=="function";return u.forEach(p=>{if(p.type!=="declaration")return;const{property:m,value:y}=p;f?s(m,y,p):y&&(c=c||{},c[m]=y)}),c}return Ci}var bo={},Af;function by(){if(Af)return bo;Af=1,Object.defineProperty(bo,"__esModule",{value:!0}),bo.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,i=/-([a-z])/g,r=/^[^-]+$/,l=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,c=function(m){return!m||r.test(m)||e.test(m)},u=function(m,y){return y.toUpperCase()},f=function(m,y){return"".concat(y,"-")},p=function(m,y){return y===void 0&&(y={}),c(m)?m:(m=m.toLowerCase(),y.reactCompat?m=m.replace(s,f):m=m.replace(l,f),m.replace(i,u))};return bo.camelCase=p,bo}var Eo,Rf;function Ey(){if(Rf)return Eo;Rf=1;var e=Eo&&Eo.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},i=e(yy()),r=by();function l(s,c){var u={};return!s||typeof s!="string"||(0,i.default)(s,function(f,p){f&&p&&(u[(0,r.camelCase)(f,c)]=p)}),u}return l.default=l,Eo=l,Eo}var _y=Ey();const vy=Co(_y),Fp=Bp("end"),Iu=Bp("start");function Bp(e){return i;function i(r){const l=r&&r.position&&r.position[e]||{};if(typeof l.line=="number"&&l.line>0&&typeof l.column=="number"&&l.column>0)return{line:l.line,column:l.column,offset:typeof l.offset=="number"&&l.offset>-1?l.offset:void 0}}}function ky(e){const i=Iu(e),r=Fp(e);if(i&&r)return{start:i,end:r}}function wo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Of(e.position):"start"in e||"end"in e?Of(e):"line"in e||"column"in e?Eu(e):""}function Eu(e){return If(e&&e.line)+":"+If(e&&e.column)}function Of(e){return Eu(e&&e.start)+"-"+Eu(e&&e.end)}function If(e){return e&&typeof e=="number"?e:1}class Pt extends Error{constructor(i,r,l){super(),typeof r=="string"&&(l=r,r=void 0);let s="",c={},u=!1;if(r&&("line"in r&&"column"in r?c={place:r}:"start"in r&&"end"in r?c={place:r}:"type"in r?c={ancestors:[r],place:r.position}:c={...r}),typeof i=="string"?s=i:!c.cause&&i&&(u=!0,s=i.message,c.cause=i),!c.ruleId&&!c.source&&typeof l=="string"){const p=l.indexOf(":");p===-1?c.ruleId=l:(c.source=l.slice(0,p),c.ruleId=l.slice(p+1))}if(!c.place&&c.ancestors&&c.ancestors){const p=c.ancestors[c.ancestors.length-1];p&&(c.place=p.position)}const f=c.place&&"start"in c.place?c.place.start:c.place;this.ancestors=c.ancestors||void 0,this.cause=c.cause||void 0,this.column=f?f.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=f?f.line:void 0,this.name=wo(c.place)||"1:1",this.place=c.place||void 0,this.reason=this.message,this.ruleId=c.ruleId||void 0,this.source=c.source||void 0,this.stack=u&&c.cause&&typeof c.cause.stack=="string"?c.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Pt.prototype.file="";Pt.prototype.name="";Pt.prototype.reason="";Pt.prototype.message="";Pt.prototype.stack="";Pt.prototype.column=void 0;Pt.prototype.line=void 0;Pt.prototype.ancestors=void 0;Pt.prototype.cause=void 0;Pt.prototype.fatal=void 0;Pt.prototype.place=void 0;Pt.prototype.ruleId=void 0;Pt.prototype.source=void 0;const Mu={}.hasOwnProperty,wy=new Map,xy=/[A-Z]/g,Sy=new Set(["table","tbody","thead","tfoot","tr"]),Ny=new Set(["td","th"]),Up="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Ty(e,i){if(!i||i.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const r=i.filePath||void 0;let l;if(i.development){if(typeof i.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");l=Dy(r,i.jsxDEV)}else{if(typeof i.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof i.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");l=Ly(r,i.jsx,i.jsxs)}const s={Fragment:i.Fragment,ancestors:[],components:i.components||{},create:l,elementAttributeNameCase:i.elementAttributeNameCase||"react",evaluater:i.createEvaluater?i.createEvaluater():void 0,filePath:r,ignoreInvalidStyle:i.ignoreInvalidStyle||!1,passKeys:i.passKeys!==!1,passNode:i.passNode||!1,schema:i.space==="svg"?Ou:my,stylePropertyNameCase:i.stylePropertyNameCase||"dom",tableCellAlignToStyle:i.tableCellAlignToStyle!==!1},c=$p(s,e,void 0);return c&&typeof c!="string"?c:s.create(e,s.Fragment,{children:c||void 0},void 0)}function $p(e,i,r){if(i.type==="element")return Cy(e,i,r);if(i.type==="mdxFlowExpression"||i.type==="mdxTextExpression")return Ay(e,i);if(i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement")return Oy(e,i,r);if(i.type==="mdxjsEsm")return Ry(e,i);if(i.type==="root")return Iy(e,i,r);if(i.type==="text")return My(e,i)}function Cy(e,i,r){const l=e.schema;let s=l;i.tagName.toLowerCase()==="svg"&&l.space==="html"&&(s=Ou,e.schema=s),e.ancestors.push(i);const c=jp(e,i.tagName,!1),u=Py(e,i);let f=Du(e,i);return Sy.has(i.tagName)&&(f=f.filter(function(p){return typeof p=="string"?!iy(p):!0})),Hp(e,u,c,i),Lu(u,f),e.ancestors.pop(),e.schema=l,e.create(i,c,u,r)}function Ay(e,i){if(i.data&&i.data.estree&&e.evaluater){const l=i.data.estree.body[0];return l.type,e.evaluater.evaluateExpression(l.expression)}No(e,i.position)}function Ry(e,i){if(i.data&&i.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(i.data.estree);No(e,i.position)}function Oy(e,i,r){const l=e.schema;let s=l;i.name==="svg"&&l.space==="html"&&(s=Ou,e.schema=s),e.ancestors.push(i);const c=i.name===null?e.Fragment:jp(e,i.name,!0),u=zy(e,i),f=Du(e,i);return Hp(e,u,c,i),Lu(u,f),e.ancestors.pop(),e.schema=l,e.create(i,c,u,r)}function Iy(e,i,r){const l={};return Lu(l,Du(e,i)),e.create(i,e.Fragment,l,r)}function My(e,i){return i.value}function Hp(e,i,r,l){typeof r!="string"&&r!==e.Fragment&&e.passNode&&(i.node=l)}function Lu(e,i){if(i.length>0){const r=i.length>1?i:i[0];r&&(e.children=r)}}function Ly(e,i,r){return l;function l(s,c,u,f){const m=Array.isArray(u.children)?r:i;return f?m(c,u,f):m(c,u)}}function Dy(e,i){return r;function r(l,s,c,u){const f=Array.isArray(c.children),p=Iu(l);return i(s,c,u,f,{columnNumber:p?p.column-1:void 0,fileName:e,lineNumber:p?p.line:void 0},void 0)}}function Py(e,i){const r={};let l,s;for(s in i.properties)if(s!=="children"&&Mu.call(i.properties,s)){const c=Fy(e,s,i.properties[s]);if(c){const[u,f]=c;e.tableCellAlignToStyle&&u==="align"&&typeof f=="string"&&Ny.has(i.tagName)?l=f:r[u]=f}}if(l){const c=r.style||(r.style={});c[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=l}return r}function zy(e,i){const r={};for(const l of i.attributes)if(l.type==="mdxJsxExpressionAttribute")if(l.data&&l.data.estree&&e.evaluater){const c=l.data.estree.body[0];c.type;const u=c.expression;u.type;const f=u.properties[0];f.type,Object.assign(r,e.evaluater.evaluateExpression(f.argument))}else No(e,i.position);else{const s=l.name;let c;if(l.value&&typeof l.value=="object")if(l.value.data&&l.value.data.estree&&e.evaluater){const f=l.value.data.estree.body[0];f.type,c=e.evaluater.evaluateExpression(f.expression)}else No(e,i.position);else c=l.value===null?!0:l.value;r[s]=c}return r}function Du(e,i){const r=[];let l=-1;const s=e.passKeys?new Map:wy;for(;++ls?0:s+i:i=i>s?s:i,r=r>0?r:0,l.length<1e4)u=Array.from(l),u.unshift(i,r),e.splice(...u);else for(r&&e.splice(i,r);c0?(ln(e,e.length,0,i),e):i}const Df={}.hasOwnProperty;function Kp(e){const i={};let r=-1;for(;++r13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)===65535||(r&65535)===65534||r>1114111?"�":String.fromCodePoint(r)}function Cn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ht=Nr(/[A-Za-z]/),Dt=Nr(/[\dA-Za-z]/),Vy=Nr(/[#-'*+\--9=?A-Z^-~]/);function Xl(e){return e!==null&&(e<32||e===127)}const _u=Nr(/\d/),qy=Nr(/[\dA-Fa-f]/),Yy=Nr(/[!-/:-@[-`{-~]/);function Te(e){return e!==null&&e<-2}function et(e){return e!==null&&(e<0||e===32)}function Ue(e){return e===-2||e===-1||e===32}const ia=Nr(new RegExp("\\p{P}|\\p{S}","u")),Xr=Nr(/\s/);function Nr(e){return i;function i(r){return r!==null&&r>-1&&e.test(String.fromCharCode(r))}}function Li(e){const i=[];let r=-1,l=0,s=0;for(;++r55295&&c<57344){const f=e.charCodeAt(r+1);c<56320&&f>56319&&f<57344?(u=String.fromCharCode(c,f),s=1):u="�"}else u=String.fromCharCode(c);u&&(i.push(e.slice(l,r),encodeURIComponent(u)),l=r+s+1,u=""),s&&(r+=s,s=0)}return i.join("")+e.slice(l)}function We(e,i,r,l){const s=l?l-1:Number.POSITIVE_INFINITY;let c=0;return u;function u(p){return Ue(p)?(e.enter(r),f(p)):i(p)}function f(p){return Ue(p)&&c++u))return;const le=i.events.length;let de=le,K,A;for(;de--;)if(i.events[de][0]==="exit"&&i.events[de][1].type==="chunkFlow"){if(K){A=i.events[de][1].end;break}K=!0}for(S(l),M=le;MP;){const X=r[q];i.containerState=X[1],X[0].exit.call(i,e)}r.length=P}function L(){s.write([null]),c=void 0,s=void 0,i.containerState._closeFlow=void 0}}function eb(e,i,r){return We(e,e.attempt(this.parser.constructs.document,i,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ii(e){if(e===null||et(e)||Xr(e))return 1;if(ia(e))return 2}function oa(e,i,r){const l=[];let s=-1;for(;++s1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;const h={...e[l][1].end},b={...e[r][1].start};zf(h,-p),zf(b,p),u={type:p>1?"strongSequence":"emphasisSequence",start:h,end:{...e[l][1].end}},f={type:p>1?"strongSequence":"emphasisSequence",start:{...e[r][1].start},end:b},c={type:p>1?"strongText":"emphasisText",start:{...e[l][1].end},end:{...e[r][1].start}},s={type:p>1?"strong":"emphasis",start:{...u.start},end:{...f.end}},e[l][1].end={...u.start},e[r][1].start={...f.end},m=[],e[l][1].end.offset-e[l][1].start.offset&&(m=yn(m,[["enter",e[l][1],i],["exit",e[l][1],i]])),m=yn(m,[["enter",s,i],["enter",u,i],["exit",u,i],["enter",c,i]]),m=yn(m,oa(i.parser.constructs.insideSpan.null,e.slice(l+1,r),i)),m=yn(m,[["exit",c,i],["enter",f,i],["exit",f,i],["exit",s,i]]),e[r][1].end.offset-e[r][1].start.offset?(y=2,m=yn(m,[["enter",e[r][1],i],["exit",e[r][1],i]])):y=0,ln(e,l-1,r-l+3,m),r=l+m.length-y-2;break}}for(r=-1;++r0&&Ue(M)?We(e,L,"linePrefix",c+1)(M):L(M)}function L(M){return M===null||Te(M)?e.check(Ff,N,q)(M):(e.enter("codeFlowValue"),P(M))}function P(M){return M===null||Te(M)?(e.exit("codeFlowValue"),L(M)):(e.consume(M),P)}function q(M){return e.exit("codeFenced"),i(M)}function X(M,le,de){let K=0;return A;function A(G){return M.enter("lineEnding"),M.consume(G),M.exit("lineEnding"),j}function j(G){return M.enter("codeFencedFence"),Ue(G)?We(M,U,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(G):U(G)}function U(G){return G===f?(M.enter("codeFencedFenceSequence"),J(G)):de(G)}function J(G){return G===f?(K++,M.consume(G),J):K>=u?(M.exit("codeFencedFenceSequence"),Ue(G)?We(M,Q,"whitespace")(G):Q(G)):de(G)}function Q(G){return G===null||Te(G)?(M.exit("codeFencedFence"),le(G)):de(G)}}}function fb(e,i,r){const l=this;return s;function s(u){return u===null?r(u):(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),c)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}const Xs={name:"codeIndented",tokenize:mb},pb={partial:!0,tokenize:gb};function mb(e,i,r){const l=this;return s;function s(m){return e.enter("codeIndented"),We(e,c,"linePrefix",5)(m)}function c(m){const y=l.events[l.events.length-1];return y&&y[1].type==="linePrefix"&&y[2].sliceSerialize(y[1],!0).length>=4?u(m):r(m)}function u(m){return m===null?p(m):Te(m)?e.attempt(pb,u,p)(m):(e.enter("codeFlowValue"),f(m))}function f(m){return m===null||Te(m)?(e.exit("codeFlowValue"),u(m)):(e.consume(m),f)}function p(m){return e.exit("codeIndented"),i(m)}}function gb(e,i,r){const l=this;return s;function s(u){return l.parser.lazy[l.now().line]?r(u):Te(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),s):We(e,c,"linePrefix",5)(u)}function c(u){const f=l.events[l.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?i(u):Te(u)?s(u):r(u)}}const hb={name:"codeText",previous:bb,resolve:yb,tokenize:Eb};function yb(e){let i=e.length-4,r=3,l,s;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[i][1].type==="lineEnding"||e[i][1].type==="space")){for(l=r;++l=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+i+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ithis.left.length?this.right.slice(this.right.length-l+this.left.length,this.right.length-i+this.left.length).reverse():this.left.slice(i).concat(this.right.slice(this.right.length-l+this.left.length).reverse())}splice(i,r,l){const s=r||0;this.setCursor(Math.trunc(i));const c=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return l&&_o(this.left,l),c.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(i){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(i)}pushMany(i){this.setCursor(Number.POSITIVE_INFINITY),_o(this.left,i)}unshift(i){this.setCursor(0),this.right.push(i)}unshiftMany(i){this.setCursor(0),_o(this.right,i.reverse())}setCursor(i){if(!(i===this.left.length||i>this.left.length&&this.right.length===0||i<0&&this.left.length===0))if(i=4?i(u):e.interrupt(l.parser.constructs.flow,r,i)(u)}}function Xp(e,i,r,l,s,c,u,f,p){const m=p||Number.POSITIVE_INFINITY;let y=0;return h;function h(S){return S===60?(e.enter(l),e.enter(s),e.enter(c),e.consume(S),e.exit(c),b):S===null||S===32||S===41||Xl(S)?r(S):(e.enter(l),e.enter(u),e.enter(f),e.enter("chunkString",{contentType:"string"}),N(S))}function b(S){return S===62?(e.enter(c),e.consume(S),e.exit(c),e.exit(s),e.exit(l),i):(e.enter(f),e.enter("chunkString",{contentType:"string"}),E(S))}function E(S){return S===62?(e.exit("chunkString"),e.exit(f),b(S)):S===null||S===60||Te(S)?r(S):(e.consume(S),S===92?w:E)}function w(S){return S===60||S===62||S===92?(e.consume(S),E):E(S)}function N(S){return!y&&(S===null||S===41||et(S))?(e.exit("chunkString"),e.exit(f),e.exit(u),e.exit(l),i(S)):y999||E===null||E===91||E===93&&!p||E===94&&!f&&"_hiddenFootnoteSupport"in u.parser.constructs?r(E):E===93?(e.exit(c),e.enter(s),e.consume(E),e.exit(s),e.exit(l),i):Te(E)?(e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),y):(e.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||E===91||E===93||Te(E)||f++>999?(e.exit("chunkString"),y(E)):(e.consume(E),p||(p=!Ue(E)),E===92?b:h)}function b(E){return E===91||E===92||E===93?(e.consume(E),f++,h):h(E)}}function Jp(e,i,r,l,s,c){let u;return f;function f(b){return b===34||b===39||b===40?(e.enter(l),e.enter(s),e.consume(b),e.exit(s),u=b===40?41:b,p):r(b)}function p(b){return b===u?(e.enter(s),e.consume(b),e.exit(s),e.exit(l),i):(e.enter(c),m(b))}function m(b){return b===u?(e.exit(c),p(u)):b===null?r(b):Te(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),We(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),y(b))}function y(b){return b===u||b===null||Te(b)?(e.exit("chunkString"),m(b)):(e.consume(b),b===92?h:y)}function h(b){return b===u||b===92?(e.consume(b),y):y(b)}}function xo(e,i){let r;return l;function l(s){return Te(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),r=!0,l):Ue(s)?We(e,l,r?"linePrefix":"lineSuffix")(s):i(s)}}const Tb={name:"definition",tokenize:Ab},Cb={partial:!0,tokenize:Rb};function Ab(e,i,r){const l=this;let s;return c;function c(E){return e.enter("definition"),u(E)}function u(E){return Zp.call(l,e,f,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(E)}function f(E){return s=Cn(l.sliceSerialize(l.events[l.events.length-1][1]).slice(1,-1)),E===58?(e.enter("definitionMarker"),e.consume(E),e.exit("definitionMarker"),p):r(E)}function p(E){return et(E)?xo(e,m)(E):m(E)}function m(E){return Xp(e,y,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(E)}function y(E){return e.attempt(Cb,h,h)(E)}function h(E){return Ue(E)?We(e,b,"whitespace")(E):b(E)}function b(E){return E===null||Te(E)?(e.exit("definition"),l.parser.defined.push(s),i(E)):r(E)}}function Rb(e,i,r){return l;function l(f){return et(f)?xo(e,s)(f):r(f)}function s(f){return Jp(e,c,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(f)}function c(f){return Ue(f)?We(e,u,"whitespace")(f):u(f)}function u(f){return f===null||Te(f)?i(f):r(f)}}const Ob={name:"hardBreakEscape",tokenize:Ib};function Ib(e,i,r){return l;function l(c){return e.enter("hardBreakEscape"),e.consume(c),s}function s(c){return Te(c)?(e.exit("hardBreakEscape"),i(c)):r(c)}}const Mb={name:"headingAtx",resolve:Lb,tokenize:Db};function Lb(e,i){let r=e.length-2,l=3,s,c;return e[l][1].type==="whitespace"&&(l+=2),r-2>l&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(l===r-1||r-4>l&&e[r-2][1].type==="whitespace")&&(r-=l+1===r?2:4),r>l&&(s={type:"atxHeadingText",start:e[l][1].start,end:e[r][1].end},c={type:"chunkText",start:e[l][1].start,end:e[r][1].end,contentType:"text"},ln(e,l,r-l+1,[["enter",s,i],["enter",c,i],["exit",c,i],["exit",s,i]])),e}function Db(e,i,r){let l=0;return s;function s(y){return e.enter("atxHeading"),c(y)}function c(y){return e.enter("atxHeadingSequence"),u(y)}function u(y){return y===35&&l++<6?(e.consume(y),u):y===null||et(y)?(e.exit("atxHeadingSequence"),f(y)):r(y)}function f(y){return y===35?(e.enter("atxHeadingSequence"),p(y)):y===null||Te(y)?(e.exit("atxHeading"),i(y)):Ue(y)?We(e,f,"whitespace")(y):(e.enter("atxHeadingText"),m(y))}function p(y){return y===35?(e.consume(y),p):(e.exit("atxHeadingSequence"),f(y))}function m(y){return y===null||y===35||et(y)?(e.exit("atxHeadingText"),f(y)):(e.consume(y),m)}}const Pb=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Uf=["pre","script","style","textarea"],zb={concrete:!0,name:"htmlFlow",resolveTo:Ub,tokenize:$b},Fb={partial:!0,tokenize:jb},Bb={partial:!0,tokenize:Hb};function Ub(e){let i=e.length;for(;i--&&!(e[i][0]==="enter"&&e[i][1].type==="htmlFlow"););return i>1&&e[i-2][1].type==="linePrefix"&&(e[i][1].start=e[i-2][1].start,e[i+1][1].start=e[i-2][1].start,e.splice(i-2,2)),e}function $b(e,i,r){const l=this;let s,c,u,f,p;return m;function m(k){return y(k)}function y(k){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(k),h}function h(k){return k===33?(e.consume(k),b):k===47?(e.consume(k),c=!0,N):k===63?(e.consume(k),s=3,l.interrupt?i:v):Ht(k)?(e.consume(k),u=String.fromCharCode(k),O):r(k)}function b(k){return k===45?(e.consume(k),s=2,E):k===91?(e.consume(k),s=5,f=0,w):Ht(k)?(e.consume(k),s=4,l.interrupt?i:v):r(k)}function E(k){return k===45?(e.consume(k),l.interrupt?i:v):r(k)}function w(k){const ke="CDATA[";return k===ke.charCodeAt(f++)?(e.consume(k),f===ke.length?l.interrupt?i:U:w):r(k)}function N(k){return Ht(k)?(e.consume(k),u=String.fromCharCode(k),O):r(k)}function O(k){if(k===null||k===47||k===62||et(k)){const ke=k===47,Me=u.toLowerCase();return!ke&&!c&&Uf.includes(Me)?(s=1,l.interrupt?i(k):U(k)):Pb.includes(u.toLowerCase())?(s=6,ke?(e.consume(k),S):l.interrupt?i(k):U(k)):(s=7,l.interrupt&&!l.parser.lazy[l.now().line]?r(k):c?L(k):P(k))}return k===45||Dt(k)?(e.consume(k),u+=String.fromCharCode(k),O):r(k)}function S(k){return k===62?(e.consume(k),l.interrupt?i:U):r(k)}function L(k){return Ue(k)?(e.consume(k),L):A(k)}function P(k){return k===47?(e.consume(k),A):k===58||k===95||Ht(k)?(e.consume(k),q):Ue(k)?(e.consume(k),P):A(k)}function q(k){return k===45||k===46||k===58||k===95||Dt(k)?(e.consume(k),q):X(k)}function X(k){return k===61?(e.consume(k),M):Ue(k)?(e.consume(k),X):P(k)}function M(k){return k===null||k===60||k===61||k===62||k===96?r(k):k===34||k===39?(e.consume(k),p=k,le):Ue(k)?(e.consume(k),M):de(k)}function le(k){return k===p?(e.consume(k),p=null,K):k===null||Te(k)?r(k):(e.consume(k),le)}function de(k){return k===null||k===34||k===39||k===47||k===60||k===61||k===62||k===96||et(k)?X(k):(e.consume(k),de)}function K(k){return k===47||k===62||Ue(k)?P(k):r(k)}function A(k){return k===62?(e.consume(k),j):r(k)}function j(k){return k===null||Te(k)?U(k):Ue(k)?(e.consume(k),j):r(k)}function U(k){return k===45&&s===2?(e.consume(k),se):k===60&&s===1?(e.consume(k),z):k===62&&s===4?(e.consume(k),R):k===63&&s===3?(e.consume(k),v):k===93&&s===5?(e.consume(k),ae):Te(k)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(Fb,$,J)(k)):k===null||Te(k)?(e.exit("htmlFlowData"),J(k)):(e.consume(k),U)}function J(k){return e.check(Bb,Q,$)(k)}function Q(k){return e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),G}function G(k){return k===null||Te(k)?J(k):(e.enter("htmlFlowData"),U(k))}function se(k){return k===45?(e.consume(k),v):U(k)}function z(k){return k===47?(e.consume(k),u="",V):U(k)}function V(k){if(k===62){const ke=u.toLowerCase();return Uf.includes(ke)?(e.consume(k),R):U(k)}return Ht(k)&&u.length<8?(e.consume(k),u+=String.fromCharCode(k),V):U(k)}function ae(k){return k===93?(e.consume(k),v):U(k)}function v(k){return k===62?(e.consume(k),R):k===45&&s===2?(e.consume(k),v):U(k)}function R(k){return k===null||Te(k)?(e.exit("htmlFlowData"),$(k)):(e.consume(k),R)}function $(k){return e.exit("htmlFlow"),i(k)}}function Hb(e,i,r){const l=this;return s;function s(u){return Te(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),c):r(u)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}function jb(e,i,r){return l;function l(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Ro,i,r)}}const Gb={name:"htmlText",tokenize:Kb};function Kb(e,i,r){const l=this;let s,c,u;return f;function f(v){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(v),p}function p(v){return v===33?(e.consume(v),m):v===47?(e.consume(v),X):v===63?(e.consume(v),P):Ht(v)?(e.consume(v),de):r(v)}function m(v){return v===45?(e.consume(v),y):v===91?(e.consume(v),c=0,w):Ht(v)?(e.consume(v),L):r(v)}function y(v){return v===45?(e.consume(v),E):r(v)}function h(v){return v===null?r(v):v===45?(e.consume(v),b):Te(v)?(u=h,z(v)):(e.consume(v),h)}function b(v){return v===45?(e.consume(v),E):h(v)}function E(v){return v===62?se(v):v===45?b(v):h(v)}function w(v){const R="CDATA[";return v===R.charCodeAt(c++)?(e.consume(v),c===R.length?N:w):r(v)}function N(v){return v===null?r(v):v===93?(e.consume(v),O):Te(v)?(u=N,z(v)):(e.consume(v),N)}function O(v){return v===93?(e.consume(v),S):N(v)}function S(v){return v===62?se(v):v===93?(e.consume(v),S):N(v)}function L(v){return v===null||v===62?se(v):Te(v)?(u=L,z(v)):(e.consume(v),L)}function P(v){return v===null?r(v):v===63?(e.consume(v),q):Te(v)?(u=P,z(v)):(e.consume(v),P)}function q(v){return v===62?se(v):P(v)}function X(v){return Ht(v)?(e.consume(v),M):r(v)}function M(v){return v===45||Dt(v)?(e.consume(v),M):le(v)}function le(v){return Te(v)?(u=le,z(v)):Ue(v)?(e.consume(v),le):se(v)}function de(v){return v===45||Dt(v)?(e.consume(v),de):v===47||v===62||et(v)?K(v):r(v)}function K(v){return v===47?(e.consume(v),se):v===58||v===95||Ht(v)?(e.consume(v),A):Te(v)?(u=K,z(v)):Ue(v)?(e.consume(v),K):se(v)}function A(v){return v===45||v===46||v===58||v===95||Dt(v)?(e.consume(v),A):j(v)}function j(v){return v===61?(e.consume(v),U):Te(v)?(u=j,z(v)):Ue(v)?(e.consume(v),j):K(v)}function U(v){return v===null||v===60||v===61||v===62||v===96?r(v):v===34||v===39?(e.consume(v),s=v,J):Te(v)?(u=U,z(v)):Ue(v)?(e.consume(v),U):(e.consume(v),Q)}function J(v){return v===s?(e.consume(v),s=void 0,G):v===null?r(v):Te(v)?(u=J,z(v)):(e.consume(v),J)}function Q(v){return v===null||v===34||v===39||v===60||v===61||v===96?r(v):v===47||v===62||et(v)?K(v):(e.consume(v),Q)}function G(v){return v===47||v===62||et(v)?K(v):r(v)}function se(v){return v===62?(e.consume(v),e.exit("htmlTextData"),e.exit("htmlText"),i):r(v)}function z(v){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(v),e.exit("lineEnding"),V}function V(v){return Ue(v)?We(e,ae,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):ae(v)}function ae(v){return e.enter("htmlTextData"),u(v)}}const Fu={name:"labelEnd",resolveAll:Yb,resolveTo:Qb,tokenize:Xb},Wb={tokenize:Zb},Vb={tokenize:Jb},qb={tokenize:eE};function Yb(e){let i=-1;const r=[];for(;++i=3&&(m===null||Te(m))?(e.exit("thematicBreak"),i(m)):r(m)}function p(m){return m===s?(e.consume(m),l++,p):(e.exit("thematicBreakSequence"),Ue(m)?We(e,f,"whitespace")(m):f(m))}}const Qt={continuation:{tokenize:cE},exit:fE,name:"list",tokenize:uE},aE={partial:!0,tokenize:pE},sE={partial:!0,tokenize:dE};function uE(e,i,r){const l=this,s=l.events[l.events.length-1];let c=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,u=0;return f;function f(E){const w=l.containerState.type||(E===42||E===43||E===45?"listUnordered":"listOrdered");if(w==="listUnordered"?!l.containerState.marker||E===l.containerState.marker:_u(E)){if(l.containerState.type||(l.containerState.type=w,e.enter(w,{_container:!0})),w==="listUnordered")return e.enter("listItemPrefix"),E===42||E===45?e.check(Ql,r,m)(E):m(E);if(!l.interrupt||E===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),p(E)}return r(E)}function p(E){return _u(E)&&++u<10?(e.consume(E),p):(!l.interrupt||u<2)&&(l.containerState.marker?E===l.containerState.marker:E===41||E===46)?(e.exit("listItemValue"),m(E)):r(E)}function m(E){return e.enter("listItemMarker"),e.consume(E),e.exit("listItemMarker"),l.containerState.marker=l.containerState.marker||E,e.check(Ro,l.interrupt?r:y,e.attempt(aE,b,h))}function y(E){return l.containerState.initialBlankLine=!0,c++,b(E)}function h(E){return Ue(E)?(e.enter("listItemPrefixWhitespace"),e.consume(E),e.exit("listItemPrefixWhitespace"),b):r(E)}function b(E){return l.containerState.size=c+l.sliceSerialize(e.exit("listItemPrefix"),!0).length,i(E)}}function cE(e,i,r){const l=this;return l.containerState._closeFlow=void 0,e.check(Ro,s,c);function s(f){return l.containerState.furtherBlankLines=l.containerState.furtherBlankLines||l.containerState.initialBlankLine,We(e,i,"listItemIndent",l.containerState.size+1)(f)}function c(f){return l.containerState.furtherBlankLines||!Ue(f)?(l.containerState.furtherBlankLines=void 0,l.containerState.initialBlankLine=void 0,u(f)):(l.containerState.furtherBlankLines=void 0,l.containerState.initialBlankLine=void 0,e.attempt(sE,i,u)(f))}function u(f){return l.containerState._closeFlow=!0,l.interrupt=void 0,We(e,e.attempt(Qt,i,r),"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(f)}}function dE(e,i,r){const l=this;return We(e,s,"listItemIndent",l.containerState.size+1);function s(c){const u=l.events[l.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===l.containerState.size?i(c):r(c)}}function fE(e){e.exit(this.containerState.type)}function pE(e,i,r){const l=this;return We(e,s,"listItemPrefixWhitespace",l.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(c){const u=l.events[l.events.length-1];return!Ue(c)&&u&&u[1].type==="listItemPrefixWhitespace"?i(c):r(c)}}const $f={name:"setextUnderline",resolveTo:mE,tokenize:gE};function mE(e,i){let r=e.length,l,s,c;for(;r--;)if(e[r][0]==="enter"){if(e[r][1].type==="content"){l=r;break}e[r][1].type==="paragraph"&&(s=r)}else e[r][1].type==="content"&&e.splice(r,1),!c&&e[r][1].type==="definition"&&(c=r);const u={type:"setextHeading",start:{...e[l][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",c?(e.splice(s,0,["enter",u,i]),e.splice(c+1,0,["exit",e[l][1],i]),e[l][1].end={...e[c][1].end}):e[l][1]=u,e.push(["exit",u,i]),e}function gE(e,i,r){const l=this;let s;return c;function c(m){let y=l.events.length,h;for(;y--;)if(l.events[y][1].type!=="lineEnding"&&l.events[y][1].type!=="linePrefix"&&l.events[y][1].type!=="content"){h=l.events[y][1].type==="paragraph";break}return!l.parser.lazy[l.now().line]&&(l.interrupt||h)?(e.enter("setextHeadingLine"),s=m,u(m)):r(m)}function u(m){return e.enter("setextHeadingLineSequence"),f(m)}function f(m){return m===s?(e.consume(m),f):(e.exit("setextHeadingLineSequence"),Ue(m)?We(e,p,"lineSuffix")(m):p(m))}function p(m){return m===null||Te(m)?(e.exit("setextHeadingLine"),i(m)):r(m)}}const hE={tokenize:yE};function yE(e){const i=this,r=e.attempt(Ro,l,e.attempt(this.parser.constructs.flowInitial,s,We(e,e.attempt(this.parser.constructs.flow,s,e.attempt(kb,s)),"linePrefix")));return r;function l(c){if(c===null){e.consume(c);return}return e.enter("lineEndingBlank"),e.consume(c),e.exit("lineEndingBlank"),i.currentConstruct=void 0,r}function s(c){if(c===null){e.consume(c);return}return e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i.currentConstruct=void 0,r}}const bE={resolveAll:tm()},EE=em("string"),_E=em("text");function em(e){return{resolveAll:tm(e==="text"?vE:void 0),tokenize:i};function i(r){const l=this,s=this.parser.constructs[e],c=r.attempt(s,u,f);return u;function u(y){return m(y)?c(y):f(y)}function f(y){if(y===null){r.consume(y);return}return r.enter("data"),r.consume(y),p}function p(y){return m(y)?(r.exit("data"),c(y)):(r.consume(y),p)}function m(y){if(y===null)return!0;const h=s[y];let b=-1;if(h)for(;++b-1){const f=u[0];typeof f=="string"?u[0]=f.slice(l):u.shift()}c>0&&u.push(e[s].slice(0,c))}return u}function LE(e,i){let r=-1;const l=[];let s;for(;++r0){const _t=Ce.tokenStack[Ce.tokenStack.length-1];(_t[1]||jf).call(Ce,void 0,_t[0])}for(oe.position={start:Sr(W.length>0?W[0][1].start:{line:1,column:1,offset:0}),end:Sr(W.length>0?W[W.length-2][1].end:{line:1,column:1,offset:0})},He=-1;++He0&&(l.className=["language-"+s[0]]);let c={type:"element",tagName:"code",properties:l,children:[{type:"text",value:r}]};return i.meta&&(c.data={meta:i.meta}),e.patch(i,c),c=e.applyData(i,c),c={type:"element",tagName:"pre",properties:{},children:[c]},e.patch(i,c),c}function qE(e,i){const r={type:"element",tagName:"del",properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function YE(e,i){const r={type:"element",tagName:"em",properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function QE(e,i){const r=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",l=String(i.identifier).toUpperCase(),s=Li(l.toLowerCase()),c=e.footnoteOrder.indexOf(l);let u,f=e.footnoteCounts.get(l);f===void 0?(f=0,e.footnoteOrder.push(l),u=e.footnoteOrder.length):u=c+1,f+=1,e.footnoteCounts.set(l,f);const p={type:"element",tagName:"a",properties:{href:"#"+r+"fn-"+s,id:r+"fnref-"+s+(f>1?"-"+f:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(u)}]};e.patch(i,p);const m={type:"element",tagName:"sup",properties:{},children:[p]};return e.patch(i,m),e.applyData(i,m)}function XE(e,i){const r={type:"element",tagName:"h"+i.depth,properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function ZE(e,i){if(e.options.allowDangerousHtml){const r={type:"raw",value:i.value};return e.patch(i,r),e.applyData(i,r)}}function im(e,i){const r=i.referenceType;let l="]";if(r==="collapsed"?l+="[]":r==="full"&&(l+="["+(i.label||i.identifier)+"]"),i.type==="imageReference")return[{type:"text",value:"!["+i.alt+l}];const s=e.all(i),c=s[0];c&&c.type==="text"?c.value="["+c.value:s.unshift({type:"text",value:"["});const u=s[s.length-1];return u&&u.type==="text"?u.value+=l:s.push({type:"text",value:l}),s}function JE(e,i){const r=String(i.identifier).toUpperCase(),l=e.definitionById.get(r);if(!l)return im(e,i);const s={src:Li(l.url||""),alt:i.alt};l.title!==null&&l.title!==void 0&&(s.title=l.title);const c={type:"element",tagName:"img",properties:s,children:[]};return e.patch(i,c),e.applyData(i,c)}function e_(e,i){const r={src:Li(i.url)};i.alt!==null&&i.alt!==void 0&&(r.alt=i.alt),i.title!==null&&i.title!==void 0&&(r.title=i.title);const l={type:"element",tagName:"img",properties:r,children:[]};return e.patch(i,l),e.applyData(i,l)}function t_(e,i){const r={type:"text",value:i.value.replace(/\r?\n|\r/g," ")};e.patch(i,r);const l={type:"element",tagName:"code",properties:{},children:[r]};return e.patch(i,l),e.applyData(i,l)}function n_(e,i){const r=String(i.identifier).toUpperCase(),l=e.definitionById.get(r);if(!l)return im(e,i);const s={href:Li(l.url||"")};l.title!==null&&l.title!==void 0&&(s.title=l.title);const c={type:"element",tagName:"a",properties:s,children:e.all(i)};return e.patch(i,c),e.applyData(i,c)}function r_(e,i){const r={href:Li(i.url)};i.title!==null&&i.title!==void 0&&(r.title=i.title);const l={type:"element",tagName:"a",properties:r,children:e.all(i)};return e.patch(i,l),e.applyData(i,l)}function i_(e,i,r){const l=e.all(i),s=r?o_(r):om(i),c={},u=[];if(typeof i.checked=="boolean"){const y=l[0];let h;y&&y.type==="element"&&y.tagName==="p"?h=y:(h={type:"element",tagName:"p",properties:{},children:[]},l.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:i.checked,disabled:!0},children:[]}),c.className=["task-list-item"]}let f=-1;for(;++f1}function l_(e,i){const r={},l=e.all(i);let s=-1;for(typeof i.start=="number"&&i.start!==1&&(r.start=i.start);++s0){const u={type:"element",tagName:"tbody",properties:{},children:e.wrap(r,!0)},f=Iu(i.children[1]),p=Fp(i.children[i.children.length-1]);f&&p&&(u.position={start:f,end:p}),s.push(u)}const c={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(i,c),e.applyData(i,c)}function d_(e,i,r){const l=r?r.children:void 0,c=(l?l.indexOf(i):1)===0?"th":"td",u=r&&r.type==="table"?r.align:void 0,f=u?u.length:i.children.length;let p=-1;const m=[];for(;++p0,!0),l[0]),s=l.index+l[0].length,l=r.exec(i);return c.push(Wf(i.slice(s),s>0,!1)),c.join("")}function Wf(e,i,r){let l=0,s=e.length;if(i){let c=e.codePointAt(l);for(;c===Gf||c===Kf;)l++,c=e.codePointAt(l)}if(r){let c=e.codePointAt(s-1);for(;c===Gf||c===Kf;)s--,c=e.codePointAt(s-1)}return s>l?e.slice(l,s):""}function m_(e,i){const r={type:"text",value:p_(String(i.value))};return e.patch(i,r),e.applyData(i,r)}function g_(e,i){const r={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(i,r),e.applyData(i,r)}const h_={blockquote:KE,break:WE,code:VE,delete:qE,emphasis:YE,footnoteReference:QE,heading:XE,html:ZE,imageReference:JE,image:e_,inlineCode:t_,linkReference:n_,link:r_,listItem:i_,list:l_,paragraph:a_,root:s_,strong:u_,table:c_,tableCell:f_,tableRow:d_,text:m_,thematicBreak:g_,toml:$l,yaml:$l,definition:$l,footnoteDefinition:$l};function $l(){}const lm=-1,la=0,So=1,Zl=2,Bu=3,Uu=4,$u=5,Hu=6,am=7,sm=8,um=typeof self=="object"?self:globalThis,Vf=(e,i)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new um[e](i)},y_=(e,i)=>{const r=(s,c)=>(e.set(c,s),s),l=s=>{if(e.has(s))return e.get(s);const[c,u]=i[s];switch(c){case la:case lm:return r(u,s);case So:{const f=r([],s);for(const p of u)f.push(l(p));return f}case Zl:{const f=r({},s);for(const[p,m]of u)f[l(p)]=l(m);return f}case Bu:return r(new Date(u),s);case Uu:{const{source:f,flags:p}=u;return r(new RegExp(f,p),s)}case $u:{const f=r(new Map,s);for(const[p,m]of u)f.set(l(p),l(m));return f}case Hu:{const f=r(new Set,s);for(const p of u)f.add(l(p));return f}case am:{const{name:f,message:p}=u;return r(typeof um[f]=="function"?Vf(f,p):new Error(p),s)}case sm:return r(BigInt(u),s);case"BigInt":return r(Object(BigInt(u)),s);case"ArrayBuffer":return r(new Uint8Array(u).buffer,u);case"DataView":{const{buffer:f}=new Uint8Array(u);return r(new DataView(f),u)}}return r(Vf(c,u),s)};return l},qf=e=>y_(new Map,e)(0),Yr="",{toString:b_}={},{keys:E_}=Object,vo=e=>{const i=typeof e;if(i!=="object"||!e)return[la,i];const r=b_.call(e).slice(8,-1);switch(r){case"Array":return[So,Yr];case"Object":return[Zl,Yr];case"Date":return[Bu,Yr];case"RegExp":return[Uu,Yr];case"Map":return[$u,Yr];case"Set":return[Hu,Yr];case"DataView":return[So,r]}return r.includes("Array")?[So,r]:e instanceof Error?[am,e.name||"Error"]:[Zl,r]},Hl=([e,i])=>e===la&&(i==="function"||i==="symbol"),__=(e,i,r,l)=>{const s=(u,f)=>{const p=l.push(u)-1;return r.set(f,p),p},c=u=>{if(r.has(u))return r.get(u);let[f,p]=vo(u);switch(f){case la:{let y=u;switch(p){case"bigint":f=sm,y=u.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+p);y=null;break;case"undefined":return s([lm],u)}return s([f,y],u)}case So:{if(p){let b=u;return p==="DataView"?b=new Uint8Array(u.buffer):p==="ArrayBuffer"&&(b=new Uint8Array(u)),s([p,[...b]],u)}const y=[],h=s([f,y],u);for(const b of u)y.push(c(b));return h}case Zl:{if(p)switch(p){case"BigInt":return s([p,u.toString()],u);case"Boolean":case"Number":case"String":return s([p,u.valueOf()],u)}if(i&&"toJSON"in u)return c(u.toJSON());const y=[],h=s([f,y],u);for(const b of E_(u))(e||!Hl(vo(u[b])))&&y.push([c(b),c(u[b])]);return h}case Bu:return s([f,isNaN(u.getTime())?Yr:u.toISOString()],u);case Uu:{const{source:y,flags:h}=u;return s([f,{source:y,flags:h}],u)}case $u:{const y=[],h=s([f,y],u);for(const[b,E]of u)(e||!(Hl(vo(b))||Hl(vo(E))))&&y.push([c(b),c(E)]);return h}case Hu:{const y=[],h=s([f,y],u);for(const b of u)(e||!Hl(vo(b)))&&y.push(c(b));return h}}const{message:m}=u;return s([f,{name:p,message:m}],u)};return c},Yf=(e,{json:i,lossy:r}={})=>{const l=[];return __(!(i||r),!!i,new Map,l)(e),l},Jl=typeof structuredClone=="function"?(e,i)=>i&&("json"in i||"lossy"in i)?qf(Yf(e,i)):structuredClone(e):(e,i)=>qf(Yf(e,i));function v_(e,i){const r=[{type:"text",value:"↩"}];return i>1&&r.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(i)}]}),r}function k_(e,i){return"Back to reference "+(e+1)+(i>1?"-"+i:"")}function w_(e){const i=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=e.options.footnoteBackContent||v_,l=e.options.footnoteBackLabel||k_,s=e.options.footnoteLabel||"Footnotes",c=e.options.footnoteLabelTagName||"h2",u=e.options.footnoteLabelProperties||{className:["sr-only"]},f=[];let p=-1;for(;++p0&&w.push({type:"text",value:" "});let L=typeof r=="string"?r:r(p,E);typeof L=="string"&&(L={type:"text",value:L}),w.push({type:"element",tagName:"a",properties:{href:"#"+i+"fnref-"+b+(E>1?"-"+E:""),dataFootnoteBackref:"",ariaLabel:typeof l=="string"?l:l(p,E),className:["data-footnote-backref"]},children:Array.isArray(L)?L:[L]})}const O=y[y.length-1];if(O&&O.type==="element"&&O.tagName==="p"){const L=O.children[O.children.length-1];L&&L.type==="text"?L.value+=" ":O.children.push({type:"text",value:" "}),O.children.push(...w)}else y.push(...w);const S={type:"element",tagName:"li",properties:{id:i+"fn-"+b},children:e.wrap(y,!0)};e.patch(m,S),f.push(S)}if(f.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:c,properties:{...Jl(u),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(f,!0)},{type:"text",value:` +`}]}}const Oo=(function(e){if(e==null)return T_;if(typeof e=="function")return aa(e);if(typeof e=="object")return Array.isArray(e)?x_(e):S_(e);if(typeof e=="string")return N_(e);throw new Error("Expected function, string, or object as test")});function x_(e){const i=[];let r=-1;for(;++r":""))+")"})}return b;function b(){let E=cm,w,N,O;if((!i||c(p,m,y[y.length-1]||void 0))&&(E=O_(r(p,y)),E[0]===ku))return E;if("children"in p&&p.children){const S=p;if(S.children&&E[0]!==R_)for(N=(l?S.children.length:-1)+u,O=y.concat(S);N>-1&&N0&&r.push({type:"text",value:` +`}),r}function Qf(e){let i=0,r=e.charCodeAt(i);for(;r===9||r===32;)i++,r=e.charCodeAt(i);return e.slice(i)}function Xf(e,i){const r=M_(e,i),l=r.one(e,void 0),s=w_(r),c=Array.isArray(l)?{type:"root",children:l}:l||{type:"root",children:[]};return s&&c.children.push({type:"text",value:` +`},s),c}function F_(e,i){return e&&"run"in e?async function(r,l){const s=Xf(r,{file:l,...i});await e.run(s,l)}:function(r,l){return Xf(r,{file:l,...e||i})}}function Zf(e){if(e)throw e}var Js,Jf;function B_(){if(Jf)return Js;Jf=1;var e=Object.prototype.hasOwnProperty,i=Object.prototype.toString,r=Object.defineProperty,l=Object.getOwnPropertyDescriptor,s=function(m){return typeof Array.isArray=="function"?Array.isArray(m):i.call(m)==="[object Array]"},c=function(m){if(!m||i.call(m)!=="[object Object]")return!1;var y=e.call(m,"constructor"),h=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!y&&!h)return!1;var b;for(b in m);return typeof b>"u"||e.call(m,b)},u=function(m,y){r&&y.name==="__proto__"?r(m,y.name,{enumerable:!0,configurable:!0,value:y.newValue,writable:!0}):m[y.name]=y.newValue},f=function(m,y){if(y==="__proto__")if(e.call(m,y)){if(l)return l(m,y).value}else return;return m[y]};return Js=function p(){var m,y,h,b,E,w,N=arguments[0],O=1,S=arguments.length,L=!1;for(typeof N=="boolean"&&(L=N,N=arguments[1]||{},O=2),(N==null||typeof N!="object"&&typeof N!="function")&&(N={});Ou.length;let p;f&&u.push(s);try{p=e.apply(this,u)}catch(m){const y=m;if(f&&r)throw y;return s(y)}f||(p&&p.then&&typeof p.then=="function"?p.then(c,s):p instanceof Error?s(p):c(p))}function s(u,...f){r||(r=!0,i(u,...f))}function c(u){s(null,u)}}const Un={basename:j_,dirname:G_,extname:K_,join:W_,sep:"/"};function j_(e,i){if(i!==void 0&&typeof i!="string")throw new TypeError('"ext" argument must be a string');Io(e);let r=0,l=-1,s=e.length,c;if(i===void 0||i.length===0||i.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(c){r=s+1;break}}else l<0&&(c=!0,l=s+1);return l<0?"":e.slice(r,l)}if(i===e)return"";let u=-1,f=i.length-1;for(;s--;)if(e.codePointAt(s)===47){if(c){r=s+1;break}}else u<0&&(c=!0,u=s+1),f>-1&&(e.codePointAt(s)===i.codePointAt(f--)?f<0&&(l=s):(f=-1,l=u));return r===l?l=u:l<0&&(l=e.length),e.slice(r,l)}function G_(e){if(Io(e),e.length===0)return".";let i=-1,r=e.length,l;for(;--r;)if(e.codePointAt(r)===47){if(l){i=r;break}}else l||(l=!0);return i<0?e.codePointAt(0)===47?"/":".":i===1&&e.codePointAt(0)===47?"//":e.slice(0,i)}function K_(e){Io(e);let i=e.length,r=-1,l=0,s=-1,c=0,u;for(;i--;){const f=e.codePointAt(i);if(f===47){if(u){l=i+1;break}continue}r<0&&(u=!0,r=i+1),f===46?s<0?s=i:c!==1&&(c=1):s>-1&&(c=-1)}return s<0||r<0||c===0||c===1&&s===r-1&&s===l+1?"":e.slice(s,r)}function W_(...e){let i=-1,r;for(;++i0&&e.codePointAt(e.length-1)===47&&(r+="/"),i?"/"+r:r}function q_(e,i){let r="",l=0,s=-1,c=0,u=-1,f,p;for(;++u<=e.length;){if(u2){if(p=r.lastIndexOf("/"),p!==r.length-1){p<0?(r="",l=0):(r=r.slice(0,p),l=r.length-1-r.lastIndexOf("/")),s=u,c=0;continue}}else if(r.length>0){r="",l=0,s=u,c=0;continue}}i&&(r=r.length>0?r+"/..":"..",l=2)}else r.length>0?r+="/"+e.slice(s+1,u):r=e.slice(s+1,u),l=u-s-1;s=u,c=0}else f===46&&c>-1?c++:c=-1}return r}function Io(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Y_={cwd:Q_};function Q_(){return"/"}function Su(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X_(e){if(typeof e=="string")e=new URL(e);else if(!Su(e)){const i=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw i.code="ERR_INVALID_ARG_TYPE",i}if(e.protocol!=="file:"){const i=new TypeError("The URL must be of scheme file");throw i.code="ERR_INVALID_URL_SCHEME",i}return Z_(e)}function Z_(e){if(e.hostname!==""){const l=new TypeError('File URL host must be "localhost" or empty on darwin');throw l.code="ERR_INVALID_FILE_URL_HOST",l}const i=e.pathname;let r=-1;for(;++r0){let[E,...w]=y;const N=l[b][1];xu(N)&&xu(E)&&(E=eu(!0,N,E)),l[b]=[m,E,...w]}}}}const nv=new ju().freeze();function iu(e,i){if(typeof i!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function ou(e,i){if(typeof i!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function lu(e,i){if(i)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function tp(e){if(!xu(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function np(e,i,r){if(!r)throw new Error("`"+e+"` finished async. Use `"+i+"` instead")}function jl(e){return rv(e)?e:new fm(e)}function rv(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function iv(e){return typeof e=="string"||ov(e)}function ov(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const lv="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",rp=[],ip={allowDangerousHtml:!0},av=/^(https?|ircs?|mailto|xmpp)$/i,sv=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function uv(e){const i=cv(e),r=dv(e);return fv(i.runSync(i.parse(r),r),e)}function cv(e){const i=e.rehypePlugins||rp,r=e.remarkPlugins||rp,l=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...ip}:ip;return nv().use(GE).use(r).use(F_,l).use(i)}function dv(e){const i=e.children||"",r=new fm;return typeof i=="string"&&(r.value=i),r}function fv(e,i){const r=i.allowedElements,l=i.allowElement,s=i.components,c=i.disallowedElements,u=i.skipHtml,f=i.unwrapDisallowed,p=i.urlTransform||pv;for(const y of sv)Object.hasOwn(i,y.from)&&(""+y.from+(y.to?"use `"+y.to+"` instead":"remove it")+lv+y.id,void 0);return i.className&&(e={type:"element",tagName:"div",properties:{className:i.className},children:e.type==="root"?e.children:[e]}),sa(e,m),Ty(e,{Fragment:H.Fragment,components:s,ignoreInvalidStyle:!0,jsx:H.jsx,jsxs:H.jsxs,passKeys:!0,passNode:!0});function m(y,h,b){if(y.type==="raw"&&b&&typeof h=="number")return u?b.children.splice(h,1):b.children[h]={type:"text",value:y.value},h;if(y.type==="element"){let E;for(E in Qs)if(Object.hasOwn(Qs,E)&&Object.hasOwn(y.properties,E)){const w=y.properties[E],N=Qs[E];(N===null||N.includes(y.tagName))&&(y.properties[E]=p(String(w||""),E,y))}}if(y.type==="element"){let E=r?!r.includes(y.tagName):c?c.includes(y.tagName):!1;if(!E&&l&&typeof h=="number"&&(E=!l(y,h,b)),E&&b&&typeof h=="number")return f&&y.children?b.children.splice(h,1,...y.children):b.children.splice(h,1),h}}}function pv(e){const i=e.indexOf(":"),r=e.indexOf("?"),l=e.indexOf("#"),s=e.indexOf("/");return i===-1||s!==-1&&i>s||r!==-1&&i>r||l!==-1&&i>l||av.test(e.slice(0,i))?e:""}function op(e,i){const r=String(e);if(typeof i!="string")throw new TypeError("Expected character");let l=0,s=r.indexOf(i);for(;s!==-1;)l++,s=r.indexOf(i,s+i.length);return l}function mv(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function gv(e,i,r){const s=Oo((r||{}).ignore||[]),c=hv(i);let u=-1;for(;++u0?{type:"text",value:M}:void 0),M===!1?b.lastIndex=q+1:(w!==q&&L.push({type:"text",value:m.value.slice(w,q)}),Array.isArray(M)?L.push(...M):M&&L.push(M),w=q+P[0].length,S=!0),!b.global)break;P=b.exec(m.value)}return S?(w?\]}]+$/.exec(e);if(!i)return[e,void 0];e=e.slice(0,i.index);let r=i[0],l=r.indexOf(")");const s=op(e,"(");let c=op(e,")");for(;l!==-1&&s>c;)e+=r.slice(0,l+1),r=r.slice(l+1),l=r.indexOf(")"),c++;return[e,r]}function pm(e,i){const r=e.input.charCodeAt(e.index-1);return(e.index===0||Xr(r)||ia(r))&&(!i||r!==47)}mm.peek=Bv;function Ov(){this.buffer()}function Iv(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function Mv(){this.buffer()}function Lv(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function Dv(e){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Cn(this.sliceSerialize(e)).toLowerCase(),r.label=i}function Pv(e){this.exit(e)}function zv(e){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Cn(this.sliceSerialize(e)).toLowerCase(),r.label=i}function Fv(e){this.exit(e)}function Bv(){return"["}function mm(e,i,r,l){const s=r.createTracker(l);let c=s.move("[^");const u=r.enter("footnoteReference"),f=r.enter("reference");return c+=s.move(r.safe(r.associationId(e),{after:"]",before:c})),f(),u(),c+=s.move("]"),c}function Uv(){return{enter:{gfmFootnoteCallString:Ov,gfmFootnoteCall:Iv,gfmFootnoteDefinitionLabelString:Mv,gfmFootnoteDefinition:Lv},exit:{gfmFootnoteCallString:Dv,gfmFootnoteCall:Pv,gfmFootnoteDefinitionLabelString:zv,gfmFootnoteDefinition:Fv}}}function $v(e){let i=!1;return e&&e.firstLineBlank&&(i=!0),{handlers:{footnoteDefinition:r,footnoteReference:mm},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function r(l,s,c,u){const f=c.createTracker(u);let p=f.move("[^");const m=c.enter("footnoteDefinition"),y=c.enter("label");return p+=f.move(c.safe(c.associationId(l),{before:p,after:"]"})),y(),p+=f.move("]:"),l.children&&l.children.length>0&&(f.shift(4),p+=f.move((i?` +`:" ")+c.indentLines(c.containerFlow(l,f.current()),i?gm:Hv))),m(),p}}function Hv(e,i,r){return i===0?e:gm(e,i,r)}function gm(e,i,r){return(r?"":" ")+e}const jv=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];hm.peek=qv;function Gv(){return{canContainEols:["delete"],enter:{strikethrough:Wv},exit:{strikethrough:Vv}}}function Kv(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:jv}],handlers:{delete:hm}}}function Wv(e){this.enter({type:"delete",children:[]},e)}function Vv(e){this.exit(e)}function hm(e,i,r,l){const s=r.createTracker(l),c=r.enter("strikethrough");let u=s.move("~~");return u+=r.containerPhrasing(e,{...s.current(),before:u,after:"~"}),u+=s.move("~~"),c(),u}function qv(){return"~"}function Yv(e){return e.length}function Qv(e,i){const r=i||{},l=(r.align||[]).concat(),s=r.stringLength||Yv,c=[],u=[],f=[],p=[];let m=0,y=-1;for(;++ym&&(m=e[y].length);++Sp[S])&&(p[S]=P)}N.push(L)}u[y]=N,f[y]=O}let h=-1;if(typeof l=="object"&&"length"in l)for(;++hp[h]&&(p[h]=L),E[h]=L),b[h]=P}u.splice(1,0,b),f.splice(1,0,E),y=-1;const w=[];for(;++y "),c.shift(2);const u=r.indentLines(r.containerFlow(e,c.current()),Jv);return s(),u}function Jv(e,i,r){return">"+(r?"":" ")+e}function ek(e,i){return ap(e,i.inConstruct,!0)&&!ap(e,i.notInConstruct,!1)}function ap(e,i,r){if(typeof i=="string"&&(i=[i]),!i||i.length===0)return r;let l=-1;for(;++lu&&(u=c):c=1,s=l+i.length,l=r.indexOf(i,s);return u}function nk(e,i){return!!(i.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function rk(e){const i=e.options.fence||"`";if(i!=="`"&&i!=="~")throw new Error("Cannot serialize code with `"+i+"` for `options.fence`, expected `` ` `` or `~`");return i}function ik(e,i,r,l){const s=rk(r),c=e.value||"",u=s==="`"?"GraveAccent":"Tilde";if(nk(e,r)){const h=r.enter("codeIndented"),b=r.indentLines(c,ok);return h(),b}const f=r.createTracker(l),p=s.repeat(Math.max(tk(c,s)+1,3)),m=r.enter("codeFenced");let y=f.move(p);if(e.lang){const h=r.enter(`codeFencedLang${u}`);y+=f.move(r.safe(e.lang,{before:y,after:" ",encode:["`"],...f.current()})),h()}if(e.lang&&e.meta){const h=r.enter(`codeFencedMeta${u}`);y+=f.move(" "),y+=f.move(r.safe(e.meta,{before:y,after:` +`,encode:["`"],...f.current()})),h()}return y+=f.move(` +`),c&&(y+=f.move(c+` +`)),y+=f.move(p),m(),y}function ok(e,i,r){return(r?"":" ")+e}function Gu(e){const i=e.options.quote||'"';if(i!=='"'&&i!=="'")throw new Error("Cannot serialize title with `"+i+"` for `options.quote`, expected `\"`, or `'`");return i}function lk(e,i,r,l){const s=Gu(r),c=s==='"'?"Quote":"Apostrophe",u=r.enter("definition");let f=r.enter("label");const p=r.createTracker(l);let m=p.move("[");return m+=p.move(r.safe(r.associationId(e),{before:m,after:"]",...p.current()})),m+=p.move("]: "),f(),!e.url||/[\0- \u007F]/.test(e.url)?(f=r.enter("destinationLiteral"),m+=p.move("<"),m+=p.move(r.safe(e.url,{before:m,after:">",...p.current()})),m+=p.move(">")):(f=r.enter("destinationRaw"),m+=p.move(r.safe(e.url,{before:m,after:e.title?" ":` +`,...p.current()}))),f(),e.title&&(f=r.enter(`title${c}`),m+=p.move(" "+s),m+=p.move(r.safe(e.title,{before:m,after:s,...p.current()})),m+=p.move(s),f()),u(),m}function ak(e){const i=e.options.emphasis||"*";if(i!=="*"&&i!=="_")throw new Error("Cannot serialize emphasis with `"+i+"` for `options.emphasis`, expected `*`, or `_`");return i}function To(e){return"&#x"+e.toString(16).toUpperCase()+";"}function ea(e,i,r){const l=Ii(e),s=Ii(i);return l===void 0?s===void 0?r==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:l===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}ym.peek=sk;function ym(e,i,r,l){const s=ak(r),c=r.enter("emphasis"),u=r.createTracker(l),f=u.move(s);let p=u.move(r.containerPhrasing(e,{after:s,before:f,...u.current()}));const m=p.charCodeAt(0),y=ea(l.before.charCodeAt(l.before.length-1),m,s);y.inside&&(p=To(m)+p.slice(1));const h=p.charCodeAt(p.length-1),b=ea(l.after.charCodeAt(0),h,s);b.inside&&(p=p.slice(0,-1)+To(h));const E=u.move(s);return c(),r.attentionEncodeSurroundingInfo={after:b.outside,before:y.outside},f+p+E}function sk(e,i,r){return r.options.emphasis||"*"}function uk(e,i){let r=!1;return sa(e,function(l){if("value"in l&&/\r?\n|\r/.test(l.value)||l.type==="break")return r=!0,ku}),!!((!e.depth||e.depth<3)&&Pu(e)&&(i.options.setext||r))}function ck(e,i,r,l){const s=Math.max(Math.min(6,e.depth||1),1),c=r.createTracker(l);if(uk(e,r)){const y=r.enter("headingSetext"),h=r.enter("phrasing"),b=r.containerPhrasing(e,{...c.current(),before:` +`,after:` +`});return h(),y(),b+` +`+(s===1?"=":"-").repeat(b.length-(Math.max(b.lastIndexOf("\r"),b.lastIndexOf(` +`))+1))}const u="#".repeat(s),f=r.enter("headingAtx"),p=r.enter("phrasing");c.move(u+" ");let m=r.containerPhrasing(e,{before:"# ",after:` +`,...c.current()});return/^[\t ]/.test(m)&&(m=To(m.charCodeAt(0))+m.slice(1)),m=m?u+" "+m:u,r.options.closeAtx&&(m+=" "+u),p(),f(),m}bm.peek=dk;function bm(e){return e.value||""}function dk(){return"<"}Em.peek=fk;function Em(e,i,r,l){const s=Gu(r),c=s==='"'?"Quote":"Apostrophe",u=r.enter("image");let f=r.enter("label");const p=r.createTracker(l);let m=p.move("![");return m+=p.move(r.safe(e.alt,{before:m,after:"]",...p.current()})),m+=p.move("]("),f(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(f=r.enter("destinationLiteral"),m+=p.move("<"),m+=p.move(r.safe(e.url,{before:m,after:">",...p.current()})),m+=p.move(">")):(f=r.enter("destinationRaw"),m+=p.move(r.safe(e.url,{before:m,after:e.title?" ":")",...p.current()}))),f(),e.title&&(f=r.enter(`title${c}`),m+=p.move(" "+s),m+=p.move(r.safe(e.title,{before:m,after:s,...p.current()})),m+=p.move(s),f()),m+=p.move(")"),u(),m}function fk(){return"!"}_m.peek=pk;function _m(e,i,r,l){const s=e.referenceType,c=r.enter("imageReference");let u=r.enter("label");const f=r.createTracker(l);let p=f.move("![");const m=r.safe(e.alt,{before:p,after:"]",...f.current()});p+=f.move(m+"]["),u();const y=r.stack;r.stack=[],u=r.enter("reference");const h=r.safe(r.associationId(e),{before:p,after:"]",...f.current()});return u(),r.stack=y,c(),s==="full"||!m||m!==h?p+=f.move(h+"]"):s==="shortcut"?p=p.slice(0,-1):p+=f.move("]"),p}function pk(){return"!"}vm.peek=mk;function vm(e,i,r){let l=e.value||"",s="`",c=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(l);)s+="`";for(/[^ \r\n]/.test(l)&&(/^[ \r\n]/.test(l)&&/[ \r\n]$/.test(l)||/^`|`$/.test(l))&&(l=" "+l+" ");++c\u007F]/.test(e.url))}wm.peek=gk;function wm(e,i,r,l){const s=Gu(r),c=s==='"'?"Quote":"Apostrophe",u=r.createTracker(l);let f,p;if(km(e,r)){const y=r.stack;r.stack=[],f=r.enter("autolink");let h=u.move("<");return h+=u.move(r.containerPhrasing(e,{before:h,after:">",...u.current()})),h+=u.move(">"),f(),r.stack=y,h}f=r.enter("link"),p=r.enter("label");let m=u.move("[");return m+=u.move(r.containerPhrasing(e,{before:m,after:"](",...u.current()})),m+=u.move("]("),p(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(p=r.enter("destinationLiteral"),m+=u.move("<"),m+=u.move(r.safe(e.url,{before:m,after:">",...u.current()})),m+=u.move(">")):(p=r.enter("destinationRaw"),m+=u.move(r.safe(e.url,{before:m,after:e.title?" ":")",...u.current()}))),p(),e.title&&(p=r.enter(`title${c}`),m+=u.move(" "+s),m+=u.move(r.safe(e.title,{before:m,after:s,...u.current()})),m+=u.move(s),p()),m+=u.move(")"),f(),m}function gk(e,i,r){return km(e,r)?"<":"["}xm.peek=hk;function xm(e,i,r,l){const s=e.referenceType,c=r.enter("linkReference");let u=r.enter("label");const f=r.createTracker(l);let p=f.move("[");const m=r.containerPhrasing(e,{before:p,after:"]",...f.current()});p+=f.move(m+"]["),u();const y=r.stack;r.stack=[],u=r.enter("reference");const h=r.safe(r.associationId(e),{before:p,after:"]",...f.current()});return u(),r.stack=y,c(),s==="full"||!m||m!==h?p+=f.move(h+"]"):s==="shortcut"?p=p.slice(0,-1):p+=f.move("]"),p}function hk(){return"["}function Ku(e){const i=e.options.bullet||"*";if(i!=="*"&&i!=="+"&&i!=="-")throw new Error("Cannot serialize items with `"+i+"` for `options.bullet`, expected `*`, `+`, or `-`");return i}function yk(e){const i=Ku(e),r=e.options.bulletOther;if(!r)return i==="*"?"-":"*";if(r!=="*"&&r!=="+"&&r!=="-")throw new Error("Cannot serialize items with `"+r+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(r===i)throw new Error("Expected `bullet` (`"+i+"`) and `bulletOther` (`"+r+"`) to be different");return r}function bk(e){const i=e.options.bulletOrdered||".";if(i!=="."&&i!==")")throw new Error("Cannot serialize items with `"+i+"` for `options.bulletOrdered`, expected `.` or `)`");return i}function Sm(e){const i=e.options.rule||"*";if(i!=="*"&&i!=="-"&&i!=="_")throw new Error("Cannot serialize rules with `"+i+"` for `options.rule`, expected `*`, `-`, or `_`");return i}function Ek(e,i,r,l){const s=r.enter("list"),c=r.bulletCurrent;let u=e.ordered?bk(r):Ku(r);const f=e.ordered?u==="."?")":".":yk(r);let p=i&&r.bulletLastUsed?u===r.bulletLastUsed:!1;if(!e.ordered){const y=e.children?e.children[0]:void 0;if((u==="*"||u==="-")&&y&&(!y.children||!y.children[0])&&r.stack[r.stack.length-1]==="list"&&r.stack[r.stack.length-2]==="listItem"&&r.stack[r.stack.length-3]==="list"&&r.stack[r.stack.length-4]==="listItem"&&r.indexStack[r.indexStack.length-1]===0&&r.indexStack[r.indexStack.length-2]===0&&r.indexStack[r.indexStack.length-3]===0&&(p=!0),Sm(r)===u&&y){let h=-1;for(;++h-1?i.start:1)+(r.options.incrementListMarker===!1?0:i.children.indexOf(e))+c);let u=c.length+1;(s==="tab"||s==="mixed"&&(i&&i.type==="list"&&i.spread||e.spread))&&(u=Math.ceil(u/4)*4);const f=r.createTracker(l);f.move(c+" ".repeat(u-c.length)),f.shift(u);const p=r.enter("listItem"),m=r.indentLines(r.containerFlow(e,f.current()),y);return p(),m;function y(h,b,E){return b?(E?"":" ".repeat(u))+h:(E?c:c+" ".repeat(u-c.length))+h}}function kk(e,i,r,l){const s=r.enter("paragraph"),c=r.enter("phrasing"),u=r.containerPhrasing(e,l);return c(),s(),u}const wk=Oo(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function xk(e,i,r,l){return(e.children.some(function(u){return wk(u)})?r.containerPhrasing:r.containerFlow).call(r,e,l)}function Sk(e){const i=e.options.strong||"*";if(i!=="*"&&i!=="_")throw new Error("Cannot serialize strong with `"+i+"` for `options.strong`, expected `*`, or `_`");return i}Nm.peek=Nk;function Nm(e,i,r,l){const s=Sk(r),c=r.enter("strong"),u=r.createTracker(l),f=u.move(s+s);let p=u.move(r.containerPhrasing(e,{after:s,before:f,...u.current()}));const m=p.charCodeAt(0),y=ea(l.before.charCodeAt(l.before.length-1),m,s);y.inside&&(p=To(m)+p.slice(1));const h=p.charCodeAt(p.length-1),b=ea(l.after.charCodeAt(0),h,s);b.inside&&(p=p.slice(0,-1)+To(h));const E=u.move(s+s);return c(),r.attentionEncodeSurroundingInfo={after:b.outside,before:y.outside},f+p+E}function Nk(e,i,r){return r.options.strong||"*"}function Tk(e,i,r,l){return r.safe(e.value,l)}function Ck(e){const i=e.options.ruleRepetition||3;if(i<3)throw new Error("Cannot serialize rules with repetition `"+i+"` for `options.ruleRepetition`, expected `3` or more");return i}function Ak(e,i,r){const l=(Sm(r)+(r.options.ruleSpaces?" ":"")).repeat(Ck(r));return r.options.ruleSpaces?l.slice(0,-1):l}const Tm={blockquote:Zv,break:sp,code:ik,definition:lk,emphasis:ym,hardBreak:sp,heading:ck,html:bm,image:Em,imageReference:_m,inlineCode:vm,link:wm,linkReference:xm,list:Ek,listItem:vk,paragraph:kk,root:xk,strong:Nm,text:Tk,thematicBreak:Ak};function Rk(){return{enter:{table:Ok,tableData:up,tableHeader:up,tableRow:Mk},exit:{codeText:Lk,table:Ik,tableData:cu,tableHeader:cu,tableRow:cu}}}function Ok(e){const i=e._align;this.enter({type:"table",align:i.map(function(r){return r==="none"?null:r}),children:[]},e),this.data.inTable=!0}function Ik(e){this.exit(e),this.data.inTable=void 0}function Mk(e){this.enter({type:"tableRow",children:[]},e)}function cu(e){this.exit(e)}function up(e){this.enter({type:"tableCell",children:[]},e)}function Lk(e){let i=this.resume();this.data.inTable&&(i=i.replace(/\\([\\|])/g,Dk));const r=this.stack[this.stack.length-1];r.type,r.value=i,this.exit(e)}function Dk(e,i){return i==="|"?i:e}function Pk(e){const i=e||{},r=i.tableCellPadding,l=i.tablePipeAlign,s=i.stringLength,c=r?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:b,table:u,tableCell:p,tableRow:f}};function u(E,w,N,O){return m(y(E,N,O),E.align)}function f(E,w,N,O){const S=h(E,N,O),L=m([S]);return L.slice(0,L.indexOf(` +`))}function p(E,w,N,O){const S=N.enter("tableCell"),L=N.enter("phrasing"),P=N.containerPhrasing(E,{...O,before:c,after:c});return L(),S(),P}function m(E,w){return Qv(E,{align:w,alignDelimiters:l,padding:r,stringLength:s})}function y(E,w,N){const O=E.children;let S=-1;const L=[],P=w.enter("table");for(;++S0&&!r&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),r}const ew={tokenize:sw,partial:!0};function tw(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:ow,continuation:{tokenize:lw},exit:aw}},text:{91:{name:"gfmFootnoteCall",tokenize:iw},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:nw,resolveTo:rw}}}}function nw(e,i,r){const l=this;let s=l.events.length;const c=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let u;for(;s--;){const p=l.events[s][1];if(p.type==="labelImage"){u=p;break}if(p.type==="gfmFootnoteCall"||p.type==="labelLink"||p.type==="label"||p.type==="image"||p.type==="link")break}return f;function f(p){if(!u||!u._balanced)return r(p);const m=Cn(l.sliceSerialize({start:u.end,end:l.now()}));return m.codePointAt(0)!==94||!c.includes(m.slice(1))?r(p):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),i(p))}}function rw(e,i){let r=e.length;for(;r--;)if(e[r][1].type==="labelImage"&&e[r][0]==="enter"){e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const l={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const c={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},c.start),end:Object.assign({},c.end)},f=[e[r+1],e[r+2],["enter",l,i],e[r+3],e[r+4],["enter",s,i],["exit",s,i],["enter",c,i],["enter",u,i],["exit",u,i],["exit",c,i],e[e.length-2],e[e.length-1],["exit",l,i]];return e.splice(r,e.length-r+1,...f),e}function iw(e,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c=0,u;return f;function f(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),p}function p(h){return h!==94?r(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",m)}function m(h){if(c>999||h===93&&!u||h===null||h===91||et(h))return r(h);if(h===93){e.exit("chunkString");const b=e.exit("gfmFootnoteCallString");return s.includes(Cn(l.sliceSerialize(b)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),i):r(h)}return et(h)||(u=!0),c++,e.consume(h),h===92?y:m}function y(h){return h===91||h===92||h===93?(e.consume(h),c++,m):m(h)}}function ow(e,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c,u=0,f;return p;function p(w){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionLabelMarker"),m}function m(w){return w===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",y):r(w)}function y(w){if(u>999||w===93&&!f||w===null||w===91||et(w))return r(w);if(w===93){e.exit("chunkString");const N=e.exit("gfmFootnoteDefinitionLabelString");return c=Cn(l.sliceSerialize(N)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),b}return et(w)||(f=!0),u++,e.consume(w),w===92?h:y}function h(w){return w===91||w===92||w===93?(e.consume(w),u++,y):y(w)}function b(w){return w===58?(e.enter("definitionMarker"),e.consume(w),e.exit("definitionMarker"),s.includes(c)||s.push(c),We(e,E,"gfmFootnoteDefinitionWhitespace")):r(w)}function E(w){return i(w)}}function lw(e,i,r){return e.check(Ro,i,e.attempt(ew,i,r))}function aw(e){e.exit("gfmFootnoteDefinition")}function sw(e,i,r){const l=this;return We(e,s,"gfmFootnoteDefinitionIndent",5);function s(c){const u=l.events[l.events.length-1];return u&&u[1].type==="gfmFootnoteDefinitionIndent"&&u[2].sliceSerialize(u[1],!0).length===4?i(c):r(c)}}function uw(e){let r=(e||{}).singleTilde;const l={name:"strikethrough",tokenize:c,resolveAll:s};return r==null&&(r=!0),{text:{126:l},insideSpan:{null:[l]},attentionMarkers:{null:[126]}};function s(u,f){let p=-1;for(;++p1?p(w):(u.consume(w),h++,E);if(h<2&&!r)return p(w);const O=u.exit("strikethroughSequenceTemporary"),S=Ii(w);return O._open=!S||S===2&&!!N,O._close=!N||N===2&&!!S,f(w)}}}class cw{constructor(){this.map=[]}add(i,r,l){dw(this,i,r,l)}consume(i){if(this.map.sort(function(c,u){return c[0]-u[0]}),this.map.length===0)return;let r=this.map.length;const l=[];for(;r>0;)r-=1,l.push(i.slice(this.map[r][0]+this.map[r][1]),this.map[r][2]),i.length=this.map[r][0];l.push(i.slice()),i.length=0;let s=l.pop();for(;s;){for(const c of s)i.push(c);s=l.pop()}this.map.length=0}}function dw(e,i,r,l){let s=0;if(!(r===0&&l.length===0)){for(;s-1;){const Q=l.events[j][1].type;if(Q==="lineEnding"||Q==="linePrefix")j--;else break}const U=j>-1?l.events[j][1].type:null,J=U==="tableHead"||U==="tableRow"?M:p;return J===M&&l.parser.lazy[l.now().line]?r(A):J(A)}function p(A){return e.enter("tableHead"),e.enter("tableRow"),m(A)}function m(A){return A===124||(u=!0,c+=1),y(A)}function y(A){return A===null?r(A):Te(A)?c>1?(c=0,l.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),E):r(A):Ue(A)?We(e,y,"whitespace")(A):(c+=1,u&&(u=!1,s+=1),A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),u=!0,y):(e.enter("data"),h(A)))}function h(A){return A===null||A===124||et(A)?(e.exit("data"),y(A)):(e.consume(A),A===92?b:h)}function b(A){return A===92||A===124?(e.consume(A),h):h(A)}function E(A){return l.interrupt=!1,l.parser.lazy[l.now().line]?r(A):(e.enter("tableDelimiterRow"),u=!1,Ue(A)?We(e,w,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):w(A))}function w(A){return A===45||A===58?O(A):A===124?(u=!0,e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),N):X(A)}function N(A){return Ue(A)?We(e,O,"whitespace")(A):O(A)}function O(A){return A===58?(c+=1,u=!0,e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),S):A===45?(c+=1,S(A)):A===null||Te(A)?q(A):X(A)}function S(A){return A===45?(e.enter("tableDelimiterFiller"),L(A)):X(A)}function L(A){return A===45?(e.consume(A),L):A===58?(u=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),P):(e.exit("tableDelimiterFiller"),P(A))}function P(A){return Ue(A)?We(e,q,"whitespace")(A):q(A)}function q(A){return A===124?w(A):A===null||Te(A)?!u||s!==c?X(A):(e.exit("tableDelimiterRow"),e.exit("tableHead"),i(A)):X(A)}function X(A){return r(A)}function M(A){return e.enter("tableRow"),le(A)}function le(A){return A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),le):A===null||Te(A)?(e.exit("tableRow"),i(A)):Ue(A)?We(e,le,"whitespace")(A):(e.enter("data"),de(A))}function de(A){return A===null||A===124||et(A)?(e.exit("data"),le(A)):(e.consume(A),A===92?K:de)}function K(A){return A===92||A===124?(e.consume(A),de):de(A)}}function gw(e,i){let r=-1,l=!0,s=0,c=[0,0,0,0],u=[0,0,0,0],f=!1,p=0,m,y,h;const b=new cw;for(;++rr[2]+1){const w=r[2]+1,N=r[3]-r[2]-1;e.add(w,N,[])}}e.add(r[3]+1,0,[["exit",h,i]])}return s!==void 0&&(c.end=Object.assign({},Ai(i.events,s)),e.add(s,0,[["exit",c,i]]),c=void 0),c}function dp(e,i,r,l,s){const c=[],u=Ai(i.events,r);s&&(s.end=Object.assign({},u),c.push(["exit",s,i])),l.end=Object.assign({},u),c.push(["exit",l,i]),e.add(r+1,0,c)}function Ai(e,i){const r=e[i],l=r[0]==="enter"?"start":"end";return r[1][l]}const hw={name:"tasklistCheck",tokenize:bw};function yw(){return{text:{91:hw}}}function bw(e,i,r){const l=this;return s;function s(p){return l.previous!==null||!l._gfmTasklistFirstContentOfListItem?r(p):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),c)}function c(p){return et(p)?(e.enter("taskListCheckValueUnchecked"),e.consume(p),e.exit("taskListCheckValueUnchecked"),u):p===88||p===120?(e.enter("taskListCheckValueChecked"),e.consume(p),e.exit("taskListCheckValueChecked"),u):r(p)}function u(p){return p===93?(e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),f):r(p)}function f(p){return Te(p)?i(p):Ue(p)?e.check({tokenize:Ew},i,r)(p):r(p)}}function Ew(e,i,r){return We(e,l,"whitespace");function l(s){return s===null?r(s):i(s)}}function _w(e){return Kp([Kk(),tw(),uw(e),pw(),yw()])}const vw={};function kw(e){const i=this,r=e||vw,l=i.data(),s=l.micromarkExtensions||(l.micromarkExtensions=[]),c=l.fromMarkdownExtensions||(l.fromMarkdownExtensions=[]),u=l.toMarkdownExtensions||(l.toMarkdownExtensions=[]);s.push(_w(r)),c.push($k()),u.push(Hk(r))}const fp=(function(e,i,r){const l=Oo(r);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof i=="number"){if(i<0||i===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(i=e.children.indexOf(i),i<0)throw new Error("Expected child node or index");for(;++im&&(m=y):y&&(m!==void 0&&m>-1&&p.push(` +`.repeat(m)||" "),m=-1,p.push(y))}return p.join("")}function zm(e,i,r){return e.type==="element"?Rw(e,i,r):e.type==="text"?r.whitespace==="normal"?Fm(e,r):Ow(e):[]}function Rw(e,i,r){const l=Bm(e,r),s=e.children||[];let c=-1,u=[];if(Cw(e))return u;let f,p;for(Tu(e)||hp(e)&&fp(i,e,hp)?p=` +`:Tw(e)?(f=2,p=2):Pm(e)&&(f=1,p=1);++c]+>")+")",f={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},m={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(m,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.IDENT_RE+"\\s*\\(",w=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],N=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],O=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],S=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],q={type:N,keyword:w,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:O},X={className:"function.dispatch",relevance:0,keywords:{_hint:S},begin:i.concat(/\b/,`(?!${w.join("|")})`,e.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},M=[X,h,f,r,e.C_BLOCK_COMMENT_MODE,y,m],le={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:q,contains:M.concat([{begin:/\(/,end:/\)/,keywords:q,contains:M.concat(["self"]),relevance:0}]),relevance:0},de={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:q,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:q,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[m,y]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:q,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,m,y,f,{begin:/\(/,end:/\)/,keywords:q,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,m,y,f]}]},f,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:q,illegal:"",keywords:q,contains:["self",f]},{begin:e.IDENT_RE+"::",keywords:q},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function zw(e){const i={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},r=Pw(e),l=r.keywords;return l.type=[...l.type,...i.type],l.literal=[...l.literal,...i.literal],l.built_in=[...l.built_in,...i.built_in],l._hints=i._hints,r.name="Arduino",r.aliases=["ino"],r.supersetOf="cpp",r}function Fw(e){const i=e.regex,r={},l={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[r]}]};Object.assign(r,{className:"variable",variants:[{begin:i.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},l]});const s={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},c=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),u={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},f={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r,s]};s.contains.push(f);const p={match:/\\"/},m={className:"string",begin:/'/,end:/'/},y={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,r]},b=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],E=e.SHEBANG({binary:`(${b.join("|")})`,relevance:10}),w={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},N=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],O=["true","false"],S={match:/(\/[a-z._-]+)+/},L=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],P=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],q=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],X=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:N,literal:O,built_in:[...L,...P,"set","shopt",...q,...X]},contains:[E,e.SHEBANG(),w,h,c,u,S,f,p,m,y,r]}}function Bw(e){const i=e.regex,r=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),l="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",u="("+l+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional("<[^<>]+>")+")",f={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},m={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(m,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.IDENT_RE+"\\s*\\(",O={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},S=[h,f,r,e.C_BLOCK_COMMENT_MODE,y,m],L={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:O,contains:S.concat([{begin:/\(/,end:/\)/,keywords:O,contains:S.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:O,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:O,relevance:0},{begin:E,returnBegin:!0,contains:[e.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,m,y,f,{begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,m,y,f]}]},f,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C",aliases:["h"],keywords:O,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:h,strings:m,keywords:O}}}function Uw(e){const i=e.regex,r=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),l="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",u="(?!struct)("+l+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional("<[^<>]+>")+")",f={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},m={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(m,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.IDENT_RE+"\\s*\\(",w=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],N=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],O=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],S=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],q={type:N,keyword:w,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:O},X={className:"function.dispatch",relevance:0,keywords:{_hint:S},begin:i.concat(/\b/,`(?!${w.join("|")})`,e.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},M=[X,h,f,r,e.C_BLOCK_COMMENT_MODE,y,m],le={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:q,contains:M.concat([{begin:/\(/,end:/\)/,keywords:q,contains:M.concat(["self"]),relevance:0}]),relevance:0},de={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:q,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:q,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[m,y]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:q,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,m,y,f,{begin:/\(/,end:/\)/,keywords:q,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,m,y,f]}]},f,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:q,illegal:"",keywords:q,contains:["self",f]},{begin:e.IDENT_RE+"::",keywords:q},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function $w(e){const i=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],r=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],l=["default","false","null","true"],s=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],c=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],u={keyword:s.concat(c),built_in:i,literal:l},f=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),p={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9'_]+|(\\b[\\d'_]+(\\.[\\d'_]*)?|\\.[\\d'_]+)([eE][-+]?[\\d'_]+)?)"}],relevance:0},m={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},y={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},h=e.inherit(y,{illegal:/\n/}),b={className:"subst",begin:/\{/,end:/\}/,keywords:u},E=e.inherit(b,{illegal:/\n/}),w={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,E]},N={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},b]},O=e.inherit(N,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},E]});b.contains=[N,w,y,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,e.C_BLOCK_COMMENT_MODE],E.contains=[O,w,h,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const S={variants:[m,N,w,y,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},L={begin:"<",end:">",contains:[{beginKeywords:"in out"},f]},P=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",q={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:u,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},S,p,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},f,L,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[f,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[f,L,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+P+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:u,contains:[{beginKeywords:r.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,L],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,relevance:0,contains:[S,p,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},q]}}const Hw=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),jw=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Gw=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Kw=[...jw,...Gw],Ww=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Vw=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),qw=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Yw=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Qw(e){const i=e.regex,r=Hw(e),l={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s="and or not only",c=/@-?\w[\w]*(-\w+)*/,u="[a-zA-Z-][a-zA-Z0-9_-]*",f=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[r.BLOCK_COMMENT,l,r.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+u,relevance:0},r.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Vw.join("|")+")"},{begin:":(:)?("+qw.join("|")+")"}]},r.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Yw.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[r.BLOCK_COMMENT,r.HEXCOLOR,r.IMPORTANT,r.CSS_NUMBER_MODE,r.UNICODE_RANGE,...f,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...f,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},r.FUNCTION_DISPATCH]},{begin:i.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:c},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:Ww.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...f,r.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Kw.join("|")+")\\b"}]}}function Xw(e){const i=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:i.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:i.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function Zw(e){const c={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:c,illegal:"Um(e,i,r-1))}function tx(e){const i=e.regex,r="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",l=r+Um("(?:<"+r+"~~~(?:\\s*,\\s*"+r+"~~~)*>)?",/~~~/g,2),p={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},m={className:"meta",begin:"@"+r,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},y={className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:p,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[i.concat(/(?!else)/,r),/\s+/,r,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,r],className:{1:"keyword",3:"title.class"},contains:[y,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+l+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:p,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[m,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,yp,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},yp,m]}}const bp="[A-Za-z$_][0-9A-Za-z$_]*",nx=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],rx=["true","false","null","undefined","NaN","Infinity"],$m=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Hm=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],jm=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ix=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ox=[].concat(jm,$m,Hm);function lx(e){const i=e.regex,r=(V,{after:ae})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(V,ae)=>{const v=V[0].length+V.index,R=V.input[v];if(R==="<"||R===","){ae.ignoreMatch();return}R===">"&&(r(V,{after:v})||ae.ignoreMatch());let $;const k=V.input.substring(v);if($=k.match(/^\s*=/)){ae.ignoreMatch();return}if(($=k.match(/^\s+extends\s+/))&&$.index===0){ae.ignoreMatch();return}}},f={$pattern:bp,keyword:nx,literal:rx,built_in:ox,"variable.language":ix},p="[0-9](_?[0-9])*",m=`\\.(${p})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${y})((${m})|\\.)?|(${m}))[eE][+-]?(${p})\\b`},{begin:`\\b(${y})\\b((${m})\\b|\\.)?|(${m})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:f,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},w={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},N={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},O={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},L={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},P=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,w,N,O,{match:/\$\d+/},h];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:f,contains:["self"].concat(P)});const q=[].concat(L,b.contains),X=q.concat([{begin:/(\s*)\(/,end:/\)/,keywords:f,contains:["self"].concat(q)}]),M={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:X},le={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,i.concat(l,"(",i.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},de={relevance:0,match:i.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...$m,...Hm]}},K={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[M],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function U(V){return i.concat("(?!",V.join("|"),")")}const J={match:i.concat(/\b/,U([...jm,"super","import","await"].map(V=>`${V}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},Q={begin:i.concat(/\./,i.lookahead(i.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},G={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},M]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",z={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:f,exports:{PARAMS_CONTAINS:X,CLASS_REFERENCE:de},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),K,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,w,N,O,L,{match:/\$\d+/},h,de,{scope:"attr",match:l+i.lookahead(":"),relevance:0},z,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[L,e.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:X}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:c},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},Q,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},J,j,le,G,{match:/\$[(.]/}]}}const ax="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",sx={scope:"number",match:ax,relevance:0};function ux(e){const i={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},r={match:/[{}[\],:]/,className:"punctuation",relevance:0},l=["true","false","null"],s={scope:"literal",beginKeywords:l.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:l},contains:[i,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,sx,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Oi="[0-9](_*[0-9])*",Vl=`\\.(${Oi})`,ql="[0-9a-fA-F](_*[0-9a-fA-F])*",cx={className:"number",variants:[{begin:`(\\b(${Oi})((${Vl})|\\.)?|(${Vl}))[eE][+-]?(${Oi})[fFdD]?\\b`},{begin:`\\b(${Oi})((${Vl})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Vl})[fFdD]?\\b`},{begin:`\\b(${Oi})[fFdD]\\b`},{begin:`\\b0[xX]((${ql})\\.?|(${ql})?\\.(${ql}))[pP][+-]?(${Oi})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ql})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function dx(e){const i={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},l={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},c={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},u={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[c,s]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,c,s]}]};s.contains.push(u);const f={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},p={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(u,{className:"string"}),"self"]}]},m=cx,y=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},b=h;return b.variants[1].contains=[h],h.variants[1].contains=[b],{name:"Kotlin",aliases:["kt","kts"],keywords:i,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,y,r,l,f,p,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:i,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,e.C_LINE_COMMENT_MODE,y],relevance:0},e.C_LINE_COMMENT_MODE,y,f,p,u,e.C_NUMBER_MODE]},y]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},f,p]},u,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},m]}}const fx=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),px=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],mx=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],gx=[...px,...mx],hx=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Gm=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Km=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),yx=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),bx=Gm.concat(Km).sort().reverse();function Ex(e){const i=fx(e),r=bx,l="and or not only",s="[\\w-]+",c="("+s+"|@\\{"+s+"\\})",u=[],f=[],p=function(P){return{className:"string",begin:"~?"+P+".*?"+P}},m=function(P,q,X){return{className:P,begin:q,relevance:X}},y={$pattern:/[a-z-]+/,keyword:l,attribute:hx.join(" ")},h={begin:"\\(",end:"\\)",contains:f,keywords:y,relevance:0};f.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p("'"),p('"'),i.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},i.UNICODE_RANGE,i.HEXCOLOR,h,m("variable","@@?"+s,10),m("variable","@\\{"+s+"\\}"),m("built_in","~?`[^`]*?`"),{className:"attribute",begin:s+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},i.IMPORTANT,{beginKeywords:"and not"},i.FUNCTION_DISPATCH);const b=f.concat({begin:/\{/,end:/\}/,contains:u}),E={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(f)},w={begin:c+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+yx.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:f}}]},N={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:y,returnEnd:!0,contains:f,relevance:0}},O={className:"variable",variants:[{begin:"@"+s+"\\s*:",relevance:15},{begin:"@"+s}],starts:{end:"[;}]",returnEnd:!0,contains:b}},S={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:c,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,E,m("keyword","all\\b"),m("variable","@\\{"+s+"\\}"),{begin:"\\b("+gx.join("|")+")\\b",className:"selector-tag"},i.CSS_NUMBER_MODE,m("selector-tag",c,0),m("selector-id","#"+c),m("selector-class","\\."+c,0),m("selector-tag","&",0),i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Gm.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Km.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:b},{begin:"!important"},i.FUNCTION_DISPATCH]},L={begin:s+`:(:)?(${r.join("|")})`,returnBegin:!0,contains:[S]};return u.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,N,O,L,w,S,E,i.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:u}}function _x(e){const i="\\[=*\\[",r="\\]=*\\]",l={begin:i,end:r,contains:["self"]},s=[e.COMMENT("--(?!"+i+")","$"),e.COMMENT("--"+i,r,{contains:[l],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:s.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:s}].concat(s)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:i,end:r,contains:[l],relevance:5}])}}function vx(e){const i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},l={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},u={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},f=/[A-Za-z][A-Za-z0-9+.-]*/,p={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:i.concat(/\[.+?\]\(/,f,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},m={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},y={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=e.inherit(m,{contains:[]}),b=e.inherit(y,{contains:[]});m.contains.push(b),y.contains.push(h);let E=[r,p];return[m,y,h,b].forEach(S=>{S.contains=S.contains.concat(E)}),E=E.concat(m,y),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:E},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:E}]}]},r,c,m,y,{className:"quote",begin:"^>\\s+",contains:E,end:"$"},s,l,p,u,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function wx(e){const i={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},r=/[a-zA-Z@][a-zA-Z0-9_]*/,f={"variable.language":["this","super"],$pattern:r,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},p={$pattern:r,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:f,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+p.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:p,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function xx(e){const i=e.regex,r=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],l=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,keyword:r.join(" ")},c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},u={begin:/->\{/,end:/\}/},f={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},p={scope:"variable",variants:[{begin:/\$\d/},{begin:i.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[f]},m={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},y=[e.BACKSLASH_ESCAPE,c,p],h=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],b=(N,O,S="\\1")=>{const L=S==="\\1"?S:i.concat(S,O);return i.concat(i.concat("(?:",N,")"),O,/(?:\\.|[^\\\/])*?/,L,/(?:\\.|[^\\\/])*?/,S,l)},E=(N,O,S)=>i.concat(i.concat("(?:",N,")"),O,/(?:\\.|[^\\\/])*?/,S,l),w=[p,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),u,{className:"string",contains:y,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},m,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:b("s|tr|y",i.either(...h,{capture:!0}))},{begin:b("s|tr|y","\\(","\\)")},{begin:b("s|tr|y","\\[","\\]")},{begin:b("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:E("(?:m|qr)?",/\//,/\//)},{begin:E("m|qr",i.either(...h,{capture:!0}),/\1/)},{begin:E("m|qr",/\(/,/\)/)},{begin:E("m|qr",/\[/,/\]/)},{begin:E("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,f]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,f,m]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=w,u.contains=w,{name:"Perl",aliases:["pl","pm"],keywords:s,contains:w}}function Sx(e){const i=e.regex,r=/(?![A-Za-z0-9])(?![$])/,l=i.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,r),s=i.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,r),c=i.concat(/[A-Z]+/,r),u={scope:"variable",match:"\\$+"+l},f={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},p={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},m=e.inherit(e.APOS_STRING_MODE,{illegal:null}),y=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(p)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(p),"on:begin":(Q,G)=>{G.data._beginMatch=Q[1]||Q[2]},"on:end":(Q,G)=>{G.data._beginMatch!==Q[1]&&G.ignoreMatch()}},b=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),E=`[ +]`,w={scope:"string",variants:[y,m,h,b]},N={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},O=["false","null","true"],S=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],L=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],q={keyword:S,literal:(Q=>{const G=[];return Q.forEach(se=>{G.push(se),se.toLowerCase()===se?G.push(se.toUpperCase()):G.push(se.toLowerCase())}),G})(O),built_in:L},X=Q=>Q.map(G=>G.replace(/\|\d+$/,"")),M={variants:[{match:[/new/,i.concat(E,"+"),i.concat("(?!",X(L).join("\\b|"),"\\b)"),s],scope:{1:"keyword",4:"title.class"}}]},le=i.concat(l,"\\b(?!\\()"),de={variants:[{match:[i.concat(/::/,i.lookahead(/(?!class\b)/)),le],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[s,i.concat(/::/,i.lookahead(/(?!class\b)/)),le],scope:{1:"title.class",3:"variable.constant"}},{match:[s,i.concat("::",i.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[s,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},K={scope:"attr",match:i.concat(l,i.lookahead(":"),i.lookahead(/(?!::)/))},A={relevance:0,begin:/\(/,end:/\)/,keywords:q,contains:[K,u,de,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,w,N,M]},j={relevance:0,match:[/\b/,i.concat("(?!fn\\b|function\\b|",X(S).join("\\b|"),"|",X(L).join("\\b|"),"\\b)"),l,i.concat(E,"*"),i.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[A]};A.contains.push(j);const U=[K,de,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,w,N,M],J={begin:i.concat(/#\[\s*\\?/,i.either(s,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:O,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:O,keyword:["new","array"]},contains:["self",...U]},...U,{scope:"meta",variants:[{match:s},{match:c}]}]};return{case_insensitive:!1,keywords:q,contains:[J,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},f,{scope:"variable.language",match:/\$this\b/},u,j,de,{match:[/const/,/\s/,l],scope:{1:"keyword",3:"variable.constant"}},M,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:q,contains:["self",J,u,de,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,w,N]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},w,N]}}function Nx(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function Tx(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function Cx(e){const i=e.regex,r=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),l=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],f={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:l,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},p={className:"meta",begin:/^(>>>|\.\.\.) /},m={className:"subst",begin:/\{/,end:/\}/,keywords:f,illegal:/#/},y={begin:/\{\{/,relevance:0},h={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,p,y,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,p,y,m]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,y,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,y,m]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},b="[0-9](_?[0-9])*",E=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,w=`\\b|${l.join("|")}`,N={className:"number",relevance:0,variants:[{begin:`(\\b(${b})|(${E}))[eE][+-]?(${b})[jJ]?(?=${w})`},{begin:`(${E})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${w})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${w})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${w})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${w})`},{begin:`\\b(${b})[jJ](?=${w})`}]},O={className:"comment",begin:i.lookahead(/# type:/),end:/$/,keywords:f,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},S={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:["self",p,N,h,e.HASH_COMMENT_MODE]}]};return m.contains=[h,N,p],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:f,illegal:/(<\/|\?)|=>/,contains:[p,N,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},h,O,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[S]},{variants:[{match:[/\bclass/,/\s+/,r,/\s*/,/\(\s*/,r,/\s*\)/]},{match:[/\bclass/,/\s+/,r]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[N,S,h]}]}}function Ax(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function Rx(e){const i=e.regex,r=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,l=i.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),s=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,c=i.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:r,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:i.lookahead(i.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:r},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[s,l]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,l]},{scope:{1:"punctuation",2:"number"},match:[c,l]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,l]}]},{scope:{3:"operator"},match:[r,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:s},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function Ox(e){const i=e.regex,r="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",l=i.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),s=i.concat(l,/(::\w+)*/),u={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},f={className:"doctag",begin:"@[A-Za-z]+"},p={begin:"#<",end:">"},m=[e.COMMENT("#","$",{contains:[f]}),e.COMMENT("^=begin","^=end",{contains:[f],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],y={className:"subst",begin:/#\{/,end:/\}/,keywords:u},h={className:"string",contains:[e.BACKSLASH_ESCAPE,y],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:i.concat(/<<[-~]?'?/,i.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,y]})]}]},b="[1-9](_?[0-9])*|0",E="[0-9](_?[0-9])*",w={className:"number",relevance:0,variants:[{begin:`\\b(${b})(\\.(${E}))?([eE][+-]?(${E})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},N={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:u}]},M=[h,{variants:[{match:[/class\s+/,s,/\s+<\s+/,s]},{match:[/\b(class|module)\s+/,s]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:u},{match:[/(include|extend)\s+/,s],scope:{2:"title.class"},keywords:u},{relevance:0,match:[s,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:l,scope:"title.class"},{match:[/def/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[N]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[h,{begin:r}],relevance:0},w,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:u},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,y],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(p,m),relevance:0}].concat(p,m);y.contains=M,N.contains=M;const A=[{begin:/^\s*=>/,starts:{end:"$",contains:M}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:u,contains:M}}];return m.unshift(p),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:u,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(A).concat(m).concat(M)}}function Ix(e){const i=e.regex,r=/(r#)?/,l=i.concat(r,e.UNDERSCORE_IDENT_RE),s=i.concat(r,e.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:i.concat(/\b/,/(?!let|for|while|if|else|match\b)/,s,i.lookahead(/\s*\(/))},u="([ui](8|16|32|64|128|size)|f(32|64))?",f=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],p=["true","false","Some","None","Ok","Err"],m=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],y=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:y,keyword:f,literal:p,built_in:m},illegal:""},c]}}const Mx=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Lx=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Dx=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Px=[...Lx,...Dx],zx=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Fx=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Bx=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Ux=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function $x(e){const i=Mx(e),r=Bx,l=Fx,s="@[a-z-]+",c="and or not only",f={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Px.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+l.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+r.join("|")+")"},f,{begin:/\(/,end:/\)/,contains:[i.CSS_NUMBER_MODE]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Ux.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[i.BLOCK_COMMENT,f,i.HEXCOLOR,i.CSS_NUMBER_MODE,i.UNICODE_RANGE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i.IMPORTANT,i.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:s,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:c,attribute:zx.join(" ")},contains:[{begin:s,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},f,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i.HEXCOLOR,i.CSS_NUMBER_MODE]},i.FUNCTION_DISPATCH]}}function Hx(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function jx(e){const i=e.regex,r=e.COMMENT("--","$"),l={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},s={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],u=["double precision","large object","with timezone","without timezone"],f=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],p=["add","asc","collation","desc","final","first","last","view"],m=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],y=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],h=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],b=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],E=y,w=[...m,...p].filter(X=>!y.includes(X)),N={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},O={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},S={match:i.concat(/\b/,i.either(...E),/\s*\(/),relevance:0,keywords:{built_in:E}};function L(X){return i.concat(/\b/,i.either(...X.map(M=>M.replace(/\s+/,"\\s+"))),/\b/)}const P={scope:"keyword",match:L(b),relevance:0};function q(X,{exceptions:M,when:le}={}){const de=le;return M=M||[],X.map(K=>K.match(/\|\d+$/)||M.includes(K)?K:de(K)?`${K}|0`:K)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:q(w,{when:X=>X.length<3}),literal:c,type:f,built_in:h},contains:[{scope:"type",match:L(u)},P,S,N,l,s,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,r,O]}}function Wm(e){return e?typeof e=="string"?e:e.source:null}function ko(e){return Xe("(?=",e,")")}function Xe(...e){return e.map(r=>Wm(r)).join("")}function Gx(e){const i=e[e.length-1];return typeof i=="object"&&i.constructor===Object?(e.splice(e.length-1,1),i):{}}function $t(...e){return"("+(Gx(e).capture?"":"?:")+e.map(l=>Wm(l)).join("|")+")"}const qu=e=>Xe(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Kx=["Protocol","Type"].map(qu),Ep=["init","self"].map(qu),Wx=["Any","Self"],du=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],_p=["false","nil","true"],Vx=["assignment","associativity","higherThan","left","lowerThan","none","right"],qx=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],vp=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Vm=$t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),qm=$t(Vm,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),fu=Xe(Vm,qm,"*"),Ym=$t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ta=$t(Ym,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Bn=Xe(Ym,ta,"*"),Yl=Xe(/[A-Z]/,ta,"*"),Yx=["attached","autoclosure",Xe(/convention\(/,$t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Xe(/objc\(/,Bn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Qx=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function Xx(e){const i={match:/\s+/,relevance:0},r=e.COMMENT("/\\*","\\*/",{contains:["self"]}),l=[e.C_LINE_COMMENT_MODE,r],s={match:[/\./,$t(...Kx,...Ep)],className:{2:"keyword"}},c={match:Xe(/\./,$t(...du)),relevance:0},u=du.filter(Ke=>typeof Ke=="string").concat(["_|0"]),f=du.filter(Ke=>typeof Ke!="string").concat(Wx).map(qu),p={variants:[{className:"keyword",match:$t(...f,...Ep)}]},m={$pattern:$t(/\b\w+/,/#\w+/),keyword:u.concat(qx),literal:_p},y=[s,c,p],h={match:Xe(/\./,$t(...vp)),relevance:0},b={className:"built_in",match:Xe(/\b/,$t(...vp),/(?=\()/)},E=[h,b],w={match:/->/,relevance:0},N={className:"operator",relevance:0,variants:[{match:fu},{match:`\\.(\\.|${qm})+`}]},O=[w,N],S="([0-9]_*)+",L="([0-9a-fA-F]_*)+",P={className:"number",relevance:0,variants:[{match:`\\b(${S})(\\.(${S}))?([eE][+-]?(${S}))?\\b`},{match:`\\b0x(${L})(\\.(${L}))?([pP][+-]?(${S}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},q=(Ke="")=>({className:"subst",variants:[{match:Xe(/\\/,Ke,/[0\\tnr"']/)},{match:Xe(/\\/,Ke,/u\{[0-9a-fA-F]{1,8}\}/)}]}),X=(Ke="")=>({className:"subst",match:Xe(/\\/,Ke,/[\t ]*(?:[\r\n]|\r\n)/)}),M=(Ke="")=>({className:"subst",label:"interpol",begin:Xe(/\\/,Ke,/\(/),end:/\)/}),le=(Ke="")=>({begin:Xe(Ke,/"""/),end:Xe(/"""/,Ke),contains:[q(Ke),X(Ke),M(Ke)]}),de=(Ke="")=>({begin:Xe(Ke,/"/),end:Xe(/"/,Ke),contains:[q(Ke),M(Ke)]}),K={className:"string",variants:[le(),le("#"),le("##"),le("###"),de(),de("#"),de("##"),de("###")]},A=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],j={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:A},U=Ke=>{const Jt=Xe(Ke,/\//),an=Xe(/\//,Ke);return{begin:Jt,end:an,contains:[...A,{scope:"comment",begin:`#(?!.*${an})`,end:/$/}]}},J={scope:"regexp",variants:[U("###"),U("##"),U("#"),j]},Q={match:Xe(/`/,Bn,/`/)},G={className:"variable",match:/\$\d+/},se={className:"variable",match:`\\$${ta}+`},z=[Q,G,se],V={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:Qx,contains:[...O,P,K]}]}},ae={scope:"keyword",match:Xe(/@/,$t(...Yx),ko($t(/\(/,/\s+/)))},v={scope:"meta",match:Xe(/@/,Bn)},R=[V,ae,v],$={match:ko(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Xe(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ta,"+")},{className:"type",match:Yl,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Xe(/\s+&\s+/,ko(Yl)),relevance:0}]},k={begin://,keywords:m,contains:[...l,...y,...R,w,$]};$.contains.push(k);const ke={match:Xe(Bn,/\s*:/),keywords:"_|0",relevance:0},Me={begin:/\(/,end:/\)/,relevance:0,keywords:m,contains:["self",ke,...l,J,...y,...E,...O,P,K,...z,...R,$]},we={begin://,keywords:"repeat each",contains:[...l,$]},$e={begin:$t(ko(Xe(Bn,/\s*:/)),ko(Xe(Bn,/\s+/,Bn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Bn}]},De={begin:/\(/,end:/\)/,keywords:m,contains:[$e,...l,...y,...O,P,K,...R,$,Me],endsParent:!0,illegal:/["']/},Ge={match:[/(func|macro)/,/\s+/,$t(Q.match,Bn,fu)],className:{1:"keyword",3:"title.function"},contains:[we,De,i],illegal:[/\[/,/%/]},Ze={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[we,De,i],illegal:/\[|%/},Zt={match:[/operator/,/\s+/,fu],className:{1:"keyword",3:"title"}},rr={begin:[/precedencegroup/,/\s+/,Yl],className:{1:"keyword",3:"title"},contains:[$],keywords:[...Vx,..._p],end:/}/},An={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Hn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},jn={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Bn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:m,contains:[we,...y,{begin:/:/,end:/\{/,keywords:m,contains:[{scope:"title.class.inherited",match:Yl},...y],relevance:0}]};for(const Ke of K.variants){const Jt=Ke.contains.find(Rn=>Rn.label==="interpol");Jt.keywords=m;const an=[...y,...E,...O,P,K,...z];Jt.contains=[...an,{begin:/\(/,end:/\)/,contains:["self",...an]}]}return{name:"Swift",keywords:m,contains:[...l,Ge,Ze,An,Hn,jn,Zt,rr,{beginKeywords:"import",end:/$/,contains:[...l],relevance:0},J,...y,...E,...O,P,K,...z,...R,$,Me]}}const na="[A-Za-z$_][0-9A-Za-z$_]*",Qm=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Xm=["true","false","null","undefined","NaN","Infinity"],Zm=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Jm=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],eg=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],tg=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ng=[].concat(eg,Zm,Jm);function Zx(e){const i=e.regex,r=(V,{after:ae})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(V,ae)=>{const v=V[0].length+V.index,R=V.input[v];if(R==="<"||R===","){ae.ignoreMatch();return}R===">"&&(r(V,{after:v})||ae.ignoreMatch());let $;const k=V.input.substring(v);if($=k.match(/^\s*=/)){ae.ignoreMatch();return}if(($=k.match(/^\s+extends\s+/))&&$.index===0){ae.ignoreMatch();return}}},f={$pattern:na,keyword:Qm,literal:Xm,built_in:ng,"variable.language":tg},p="[0-9](_?[0-9])*",m=`\\.(${p})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${y})((${m})|\\.)?|(${m}))[eE][+-]?(${p})\\b`},{begin:`\\b(${y})\\b((${m})\\b|\\.)?|(${m})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:f,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},w={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},N={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},O={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},L={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},P=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,w,N,O,{match:/\$\d+/},h];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:f,contains:["self"].concat(P)});const q=[].concat(L,b.contains),X=q.concat([{begin:/(\s*)\(/,end:/\)/,keywords:f,contains:["self"].concat(q)}]),M={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:X},le={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,i.concat(l,"(",i.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},de={relevance:0,match:i.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Zm,...Jm]}},K={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[M],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function U(V){return i.concat("(?!",V.join("|"),")")}const J={match:i.concat(/\b/,U([...eg,"super","import","await"].map(V=>`${V}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},Q={begin:i.concat(/\./,i.lookahead(i.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},G={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},M]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",z={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:f,exports:{PARAMS_CONTAINS:X,CLASS_REFERENCE:de},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),K,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,w,N,O,L,{match:/\$\d+/},h,de,{scope:"attr",match:l+i.lookahead(":"),relevance:0},z,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[L,e.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:X}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:c},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},Q,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},J,j,le,G,{match:/\$[(.]/}]}}function Jx(e){const i=e.regex,r=Zx(e),l=na,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],c={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},u={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:s},contains:[r.exports.CLASS_REFERENCE]},f={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},p=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],m={$pattern:na,keyword:Qm.concat(p),literal:Xm,built_in:ng.concat(s),"variable.language":tg},y={className:"meta",begin:"@"+l},h=(N,O,S)=>{const L=N.contains.findIndex(P=>P.label===O);if(L===-1)throw new Error("can not find mode to replace");N.contains.splice(L,1,S)};Object.assign(r.keywords,m),r.exports.PARAMS_CONTAINS.push(y);const b=r.contains.find(N=>N.scope==="attr"),E=Object.assign({},b,{match:i.concat(l,i.lookahead(/\s*\?:/))});r.exports.PARAMS_CONTAINS.push([r.exports.CLASS_REFERENCE,b,E]),r.contains=r.contains.concat([y,c,u,E]),h(r,"shebang",e.SHEBANG()),h(r,"use_strict",f);const w=r.contains.find(N=>N.label==="func.def");return w.relevance=0,Object.assign(r,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),r}function eS(e){const i=e.regex,r={className:"string",begin:/"(""|[^/n])"C\b/},l={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s=/\d{1,2}\/\d{1,2}\/\d{4}/,c=/\d{4}-\d{1,2}-\d{1,2}/,u=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,f=/\d{1,2}(:\d{1,2}){1,2}/,p={className:"literal",variants:[{begin:i.concat(/# */,i.either(c,s),/ *#/)},{begin:i.concat(/# */,f,/ *#/)},{begin:i.concat(/# */,u,/ *#/)},{begin:i.concat(/# */,i.either(c,s),/ +/,i.either(u,f),/ *#/)}]},m={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},y={className:"label",begin:/^\w+:/},h=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),b=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[r,l,p,m,y,h,b,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[b]}]}}function tS(e){e.regex;const i=e.COMMENT(/\(;/,/;\)/);i.contains.push("self");const r=e.COMMENT(/;;/,/$/),l=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],s={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},c={className:"variable",begin:/\$[\w_]+/},u={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},f={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},p={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},m={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:l},contains:[r,i,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},c,u,s,e.QUOTE_STRING_MODE,p,m,f]}}function nS(e){const i=e.regex,r=i.concat(/[\p{L}_]/u,i.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),l=/[\p{L}0-9._:-]+/u,s={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},c={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},u=e.inherit(c,{begin:/\(/,end:/\)/}),f=e.inherit(e.APOS_STRING_MODE,{className:"string"}),p=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),m={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[c,p,f,u,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[c,u,p,f]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[p]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:i.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:r,relevance:0,starts:m}]},{className:"tag",begin:i.concat(/<\//,i.lookahead(i.concat(r,/>/))),contains:[{className:"name",begin:r,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function rS(e){const i="true false yes no null",r="[\\w#;/?:@&=+$,.~*'()[\\]]+",l={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},u={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,s]},f=e.inherit(u,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),b={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},E={end:",",endsWithParent:!0,excludeEnd:!0,keywords:i,relevance:0},w={begin:/\{/,end:/\}/,contains:[E],illegal:"\\n",relevance:0},N={begin:"\\[",end:"\\]",contains:[E],illegal:"\\n",relevance:0},O=[l,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+r},{className:"type",begin:"!<"+r+">"},{className:"type",begin:"!"+r},{className:"type",begin:"!!"+r},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:i,keywords:{literal:i}},b,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},w,N,c,u],S=[...O];return S.pop(),S.push(f),E.contains=S,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:O}}const iS={arduino:zw,bash:Fw,c:Bw,cpp:Uw,csharp:$w,css:Qw,diff:Xw,go:Zw,graphql:Jw,ini:ex,java:tx,javascript:lx,json:ux,kotlin:dx,less:Ex,lua:_x,makefile:vx,markdown:kx,objectivec:wx,perl:xx,php:Sx,"php-template":Nx,plaintext:Tx,python:Cx,"python-repl":Ax,r:Rx,ruby:Ox,rust:Ix,scss:$x,shell:Hx,sql:jx,swift:Xx,typescript:Jx,vbnet:eS,wasm:tS,xml:nS,yaml:rS};var pu,kp;function oS(){if(kp)return pu;kp=1;function e(T){return T instanceof Map?T.clear=T.delete=T.set=function(){throw new Error("map is read-only")}:T instanceof Set&&(T.add=T.clear=T.delete=function(){throw new Error("set is read-only")}),Object.freeze(T),Object.getOwnPropertyNames(T).forEach(Y=>{const fe=T[Y],Re=typeof fe;(Re==="object"||Re==="function")&&!Object.isFrozen(fe)&&e(fe)}),T}class i{constructor(Y){Y.data===void 0&&(Y.data={}),this.data=Y.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function r(T){return T.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function l(T,...Y){const fe=Object.create(null);for(const Re in T)fe[Re]=T[Re];return Y.forEach(function(Re){for(const rt in Re)fe[rt]=Re[rt]}),fe}const s="",c=T=>!!T.scope,u=(T,{prefix:Y})=>{if(T.startsWith("language:"))return T.replace("language:","language-");if(T.includes(".")){const fe=T.split(".");return[`${Y}${fe.shift()}`,...fe.map((Re,rt)=>`${Re}${"_".repeat(rt+1)}`)].join(" ")}return`${Y}${T}`};class f{constructor(Y,fe){this.buffer="",this.classPrefix=fe.classPrefix,Y.walk(this)}addText(Y){this.buffer+=r(Y)}openNode(Y){if(!c(Y))return;const fe=u(Y.scope,{prefix:this.classPrefix});this.span(fe)}closeNode(Y){c(Y)&&(this.buffer+=s)}value(){return this.buffer}span(Y){this.buffer+=``}}const p=(T={})=>{const Y={children:[]};return Object.assign(Y,T),Y};class m{constructor(){this.rootNode=p(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Y){this.top.children.push(Y)}openNode(Y){const fe=p({scope:Y});this.add(fe),this.stack.push(fe)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Y){return this.constructor._walk(Y,this.rootNode)}static _walk(Y,fe){return typeof fe=="string"?Y.addText(fe):fe.children&&(Y.openNode(fe),fe.children.forEach(Re=>this._walk(Y,Re)),Y.closeNode(fe)),Y}static _collapse(Y){typeof Y!="string"&&Y.children&&(Y.children.every(fe=>typeof fe=="string")?Y.children=[Y.children.join("")]:Y.children.forEach(fe=>{m._collapse(fe)}))}}class y extends m{constructor(Y){super(),this.options=Y}addText(Y){Y!==""&&this.add(Y)}startScope(Y){this.openNode(Y)}endScope(){this.closeNode()}__addSublanguage(Y,fe){const Re=Y.root;fe&&(Re.scope=`language:${fe}`),this.add(Re)}toHTML(){return new f(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(T){return T?typeof T=="string"?T:T.source:null}function b(T){return N("(?=",T,")")}function E(T){return N("(?:",T,")*")}function w(T){return N("(?:",T,")?")}function N(...T){return T.map(fe=>h(fe)).join("")}function O(T){const Y=T[T.length-1];return typeof Y=="object"&&Y.constructor===Object?(T.splice(T.length-1,1),Y):{}}function S(...T){return"("+(O(T).capture?"":"?:")+T.map(Re=>h(Re)).join("|")+")"}function L(T){return new RegExp(T.toString()+"|").exec("").length-1}function P(T,Y){const fe=T&&T.exec(Y);return fe&&fe.index===0}const q=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function X(T,{joinWith:Y}){let fe=0;return T.map(Re=>{fe+=1;const rt=fe;let lt=h(Re),he="";for(;lt.length>0;){const me=q.exec(lt);if(!me){he+=lt;break}he+=lt.substring(0,me.index),lt=lt.substring(me.index+me[0].length),me[0][0]==="\\"&&me[1]?he+="\\"+String(Number(me[1])+rt):(he+=me[0],me[0]==="("&&fe++)}return he}).map(Re=>`(${Re})`).join(Y)}const M=/\b\B/,le="[a-zA-Z]\\w*",de="[a-zA-Z_]\\w*",K="\\b\\d+(\\.\\d+)?",A="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",j="\\b(0b[01]+)",U="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",J=(T={})=>{const Y=/^#![ ]*\//;return T.binary&&(T.begin=N(Y,/.*\b/,T.binary,/\b.*/)),l({scope:"meta",begin:Y,end:/$/,relevance:0,"on:begin":(fe,Re)=>{fe.index!==0&&Re.ignoreMatch()}},T)},Q={begin:"\\\\[\\s\\S]",relevance:0},G={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Q]},se={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Q]},z={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},V=function(T,Y,fe={}){const Re=l({scope:"comment",begin:T,end:Y,contains:[]},fe);Re.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const rt=S("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return Re.contains.push({begin:N(/[ ]+/,"(",rt,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Re},ae=V("//","$"),v=V("/\\*","\\*/"),R=V("#","$"),$={scope:"number",begin:K,relevance:0},k={scope:"number",begin:A,relevance:0},ke={scope:"number",begin:j,relevance:0},Me={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Q,{begin:/\[/,end:/\]/,relevance:0,contains:[Q]}]},we={scope:"title",begin:le,relevance:0},$e={scope:"title",begin:de,relevance:0},De={begin:"\\.\\s*"+de,relevance:0};var Ze=Object.freeze({__proto__:null,APOS_STRING_MODE:G,BACKSLASH_ESCAPE:Q,BINARY_NUMBER_MODE:ke,BINARY_NUMBER_RE:j,COMMENT:V,C_BLOCK_COMMENT_MODE:v,C_LINE_COMMENT_MODE:ae,C_NUMBER_MODE:k,C_NUMBER_RE:A,END_SAME_AS_BEGIN:function(T){return Object.assign(T,{"on:begin":(Y,fe)=>{fe.data._beginMatch=Y[1]},"on:end":(Y,fe)=>{fe.data._beginMatch!==Y[1]&&fe.ignoreMatch()}})},HASH_COMMENT_MODE:R,IDENT_RE:le,MATCH_NOTHING_RE:M,METHOD_GUARD:De,NUMBER_MODE:$,NUMBER_RE:K,PHRASAL_WORDS_MODE:z,QUOTE_STRING_MODE:se,REGEXP_MODE:Me,RE_STARTERS_RE:U,SHEBANG:J,TITLE_MODE:we,UNDERSCORE_IDENT_RE:de,UNDERSCORE_TITLE_MODE:$e});function Zt(T,Y){T.input[T.index-1]==="."&&Y.ignoreMatch()}function rr(T,Y){T.className!==void 0&&(T.scope=T.className,delete T.className)}function An(T,Y){Y&&T.beginKeywords&&(T.begin="\\b("+T.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",T.__beforeBegin=Zt,T.keywords=T.keywords||T.beginKeywords,delete T.beginKeywords,T.relevance===void 0&&(T.relevance=0))}function Hn(T,Y){Array.isArray(T.illegal)&&(T.illegal=S(...T.illegal))}function jn(T,Y){if(T.match){if(T.begin||T.end)throw new Error("begin & end are not supported with match");T.begin=T.match,delete T.match}}function Ke(T,Y){T.relevance===void 0&&(T.relevance=1)}const Jt=(T,Y)=>{if(!T.beforeMatch)return;if(T.starts)throw new Error("beforeMatch cannot be used with starts");const fe=Object.assign({},T);Object.keys(T).forEach(Re=>{delete T[Re]}),T.keywords=fe.keywords,T.begin=N(fe.beforeMatch,b(fe.begin)),T.starts={relevance:0,contains:[Object.assign(fe,{endsParent:!0})]},T.relevance=0,delete fe.beforeMatch},an=["of","and","for","in","not","or","if","then","parent","list","value"],Rn="keyword";function bn(T,Y,fe=Rn){const Re=Object.create(null);return typeof T=="string"?rt(fe,T.split(" ")):Array.isArray(T)?rt(fe,T):Object.keys(T).forEach(function(lt){Object.assign(Re,bn(T[lt],Y,lt))}),Re;function rt(lt,he){Y&&(he=he.map(me=>me.toLowerCase())),he.forEach(function(me){const xe=me.split("|");Re[xe[0]]=[lt,On(xe[0],xe[1])]})}}function On(T,Y){return Y?Number(Y):Tr(T)?0:1}function Tr(T){return an.includes(T.toLowerCase())}const Cr={},sn=T=>{console.error(T)},Ar=(T,...Y)=>{console.log(`WARN: ${T}`,...Y)},W=(T,Y)=>{Cr[`${T}/${Y}`]||(console.log(`Deprecated as of ${T}. ${Y}`),Cr[`${T}/${Y}`]=!0)},oe=new Error;function Ce(T,Y,{key:fe}){let Re=0;const rt=T[fe],lt={},he={};for(let me=1;me<=Y.length;me++)he[me+Re]=rt[me],lt[me+Re]=!0,Re+=L(Y[me-1]);T[fe]=he,T[fe]._emit=lt,T[fe]._multi=!0}function Pe(T){if(Array.isArray(T.begin)){if(T.skip||T.excludeBegin||T.returnBegin)throw sn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),oe;if(typeof T.beginScope!="object"||T.beginScope===null)throw sn("beginScope must be object"),oe;Ce(T,T.begin,{key:"beginScope"}),T.begin=X(T.begin,{joinWith:""})}}function He(T){if(Array.isArray(T.end)){if(T.skip||T.excludeEnd||T.returnEnd)throw sn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),oe;if(typeof T.endScope!="object"||T.endScope===null)throw sn("endScope must be object"),oe;Ce(T,T.end,{key:"endScope"}),T.end=X(T.end,{joinWith:""})}}function _t(T){T.scope&&typeof T.scope=="object"&&T.scope!==null&&(T.beginScope=T.scope,delete T.scope)}function En(T){_t(T),typeof T.beginScope=="string"&&(T.beginScope={_wrap:T.beginScope}),typeof T.endScope=="string"&&(T.endScope={_wrap:T.endScope}),Pe(T),He(T)}function jt(T){function Y(he,me){return new RegExp(h(he),"m"+(T.case_insensitive?"i":"")+(T.unicodeRegex?"u":"")+(me?"g":""))}class fe{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(me,xe){xe.position=this.position++,this.matchIndexes[this.matchAt]=xe,this.regexes.push([xe,me]),this.matchAt+=L(me)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const me=this.regexes.map(xe=>xe[1]);this.matcherRe=Y(X(me,{joinWith:"|"}),!0),this.lastIndex=0}exec(me){this.matcherRe.lastIndex=this.lastIndex;const xe=this.matcherRe.exec(me);if(!xe)return null;const yt=xe.findIndex((In,or)=>or>0&&In!==void 0),tt=this.matchIndexes[yt];return xe.splice(0,yt),Object.assign(xe,tt)}}class Re{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(me){if(this.multiRegexes[me])return this.multiRegexes[me];const xe=new fe;return this.rules.slice(me).forEach(([yt,tt])=>xe.addRule(yt,tt)),xe.compile(),this.multiRegexes[me]=xe,xe}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(me,xe){this.rules.push([me,xe]),xe.type==="begin"&&this.count++}exec(me){const xe=this.getMatcher(this.regexIndex);xe.lastIndex=this.lastIndex;let yt=xe.exec(me);if(this.resumingScanAtSamePosition()&&!(yt&&yt.index===this.lastIndex)){const tt=this.getMatcher(0);tt.lastIndex=this.lastIndex+1,yt=tt.exec(me)}return yt&&(this.regexIndex+=yt.position+1,this.regexIndex===this.count&&this.considerAll()),yt}}function rt(he){const me=new Re;return he.contains.forEach(xe=>me.addRule(xe.begin,{rule:xe,type:"begin"})),he.terminatorEnd&&me.addRule(he.terminatorEnd,{type:"end"}),he.illegal&&me.addRule(he.illegal,{type:"illegal"}),me}function lt(he,me){const xe=he;if(he.isCompiled)return xe;[rr,jn,En,Jt].forEach(tt=>tt(he,me)),T.compilerExtensions.forEach(tt=>tt(he,me)),he.__beforeBegin=null,[An,Hn,Ke].forEach(tt=>tt(he,me)),he.isCompiled=!0;let yt=null;return typeof he.keywords=="object"&&he.keywords.$pattern&&(he.keywords=Object.assign({},he.keywords),yt=he.keywords.$pattern,delete he.keywords.$pattern),yt=yt||/\w+/,he.keywords&&(he.keywords=bn(he.keywords,T.case_insensitive)),xe.keywordPatternRe=Y(yt,!0),me&&(he.begin||(he.begin=/\B|\b/),xe.beginRe=Y(xe.begin),!he.end&&!he.endsWithParent&&(he.end=/\B|\b/),he.end&&(xe.endRe=Y(xe.end)),xe.terminatorEnd=h(xe.end)||"",he.endsWithParent&&me.terminatorEnd&&(xe.terminatorEnd+=(he.end?"|":"")+me.terminatorEnd)),he.illegal&&(xe.illegalRe=Y(he.illegal)),he.contains||(he.contains=[]),he.contains=[].concat(...he.contains.map(function(tt){return Gn(tt==="self"?he:tt)})),he.contains.forEach(function(tt){lt(tt,xe)}),he.starts&<(he.starts,me),xe.matcher=rt(xe),xe}if(T.compilerExtensions||(T.compilerExtensions=[]),T.contains&&T.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return T.classNameAliases=l(T.classNameAliases||{}),lt(T)}function _n(T){return T?T.endsWithParent||_n(T.starts):!1}function Gn(T){return T.variants&&!T.cachedVariants&&(T.cachedVariants=T.variants.map(function(Y){return l(T,{variants:null},Y)})),T.cachedVariants?T.cachedVariants:_n(T)?l(T,{starts:T.starts?l(T.starts):null}):Object.isFrozen(T)?l(T):T}var vt="11.11.2";class un extends Error{constructor(Y,fe){super(Y),this.name="HTMLInjectionError",this.html=fe}}const Ct=r,ei=l,ti=Symbol("nomatch"),ir=7,Kn=function(T){const Y=Object.create(null),fe=Object.create(null),Re=[];let rt=!0;const lt="Could not find the language '{}', did you forget to load/include a language module?",he={disableAutodetect:!0,name:"Plain text",contains:[]};let me={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:y};function xe(re){return me.noHighlightRe.test(re)}function yt(re){let ve=re.className+" ";ve+=re.parentNode?re.parentNode.className:"";const ze=me.languageDetectRe.exec(ve);if(ze){const Be=vn(ze[1]);return Be||(Ar(lt.replace("{}",ze[1])),Ar("Falling back to no-highlight mode for this block.",re)),Be?ze[1]:"no-highlight"}return ve.split(/\s+/).find(Be=>xe(Be)||vn(Be))}function tt(re,ve,ze){let Be="",mt="";typeof ve=="object"?(Be=re,ze=ve.ignoreIllegals,mt=ve.language):(W("10.7.0","highlight(lang, code, ...args) has been deprecated."),W("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),mt=re,Be=ve),ze===void 0&&(ze=!0);const ut={code:Be,language:mt};Or("before:highlight",ut);const Mn=ut.result?ut.result:In(ut.language,ut.code,ze);return Mn.code=ut.code,Or("after:highlight",Mn),Mn}function In(re,ve,ze,Be){const mt=Object.create(null);function ut(ue,ge){return ue.keywords[ge]}function Mn(){if(!Ie.keywords){gt.addText(Qe);return}let ue=0;Ie.keywordPatternRe.lastIndex=0;let ge=Ie.keywordPatternRe.exec(Qe),Ae="";for(;ge;){Ae+=Qe.substring(ue,ge.index);const je=cn.case_insensitive?ge[0].toLowerCase():ge[0],ft=ut(Ie,je);if(ft){const[xt,ma]=ft;if(gt.addText(Ae),Ae="",mt[je]=(mt[je]||0)+1,mt[je]<=ir&&(Lr+=ma),xt.startsWith("_"))Ae+=ge[0];else{const Uo=cn.classNameAliases[xt]||xt;Ft(ge[0],Uo)}}else Ae+=ge[0];ue=Ie.keywordPatternRe.lastIndex,ge=Ie.keywordPatternRe.exec(Qe)}Ae+=Qe.substring(ue),gt.addText(Ae)}function ii(){if(Qe==="")return;let ue=null;if(typeof Ie.subLanguage=="string"){if(!Y[Ie.subLanguage]){gt.addText(Qe);return}ue=In(Ie.subLanguage,Qe,!0,Ui[Ie.subLanguage]),Ui[Ie.subLanguage]=ue._top}else ue=Rr(Qe,Ie.subLanguage.length?Ie.subLanguage:null);Ie.relevance>0&&(Lr+=ue.relevance),gt.__addSublanguage(ue._emitter,ue.language)}function zt(){Ie.subLanguage!=null?ii():Mn(),Qe=""}function Ft(ue,ge){ue!==""&&(gt.startScope(ge),gt.addText(ue),gt.endScope())}function Ir(ue,ge){let Ae=1;const je=ge.length-1;for(;Ae<=je;){if(!ue._emit[Ae]){Ae++;continue}const ft=cn.classNameAliases[ue[Ae]]||ue[Ae],xt=ge[Ae];ft?Ft(xt,ft):(Qe=xt,Mn(),Qe=""),Ae++}}function lr(ue,ge){return ue.scope&&typeof ue.scope=="string"&>.openNode(cn.classNameAliases[ue.scope]||ue.scope),ue.beginScope&&(ue.beginScope._wrap?(Ft(Qe,cn.classNameAliases[ue.beginScope._wrap]||ue.beginScope._wrap),Qe=""):ue.beginScope._multi&&(Ir(ue.beginScope,ge),Qe="")),Ie=Object.create(ue,{parent:{value:Ie}}),Ie}function Mr(ue,ge,Ae){let je=P(ue.endRe,Ae);if(je){if(ue["on:end"]){const ft=new i(ue);ue["on:end"](ge,ft),ft.isMatchIgnored&&(je=!1)}if(je){for(;ue.endsParent&&ue.parent;)ue=ue.parent;return ue}}if(ue.endsWithParent)return Mr(ue.parent,ge,Ae)}function fa(ue){return Ie.matcher.regexIndex===0?(Qe+=ue[0],1):(ur=!0,0)}function pa(ue){const ge=ue[0],Ae=ue.rule,je=new i(Ae),ft=[Ae.__beforeBegin,Ae["on:begin"]];for(const xt of ft)if(xt&&(xt(ue,je),je.isMatchIgnored))return fa(ge);return Ae.skip?Qe+=ge:(Ae.excludeBegin&&(Qe+=ge),zt(),!Ae.returnBegin&&!Ae.excludeBegin&&(Qe=ge)),lr(Ae,ue),Ae.returnBegin?0:ge.length}function Fi(ue){const ge=ue[0],Ae=ve.substring(ue.index),je=Mr(Ie,ue,Ae);if(!je)return ti;const ft=Ie;Ie.endScope&&Ie.endScope._wrap?(zt(),Ft(ge,Ie.endScope._wrap)):Ie.endScope&&Ie.endScope._multi?(zt(),Ir(Ie.endScope,ue)):ft.skip?Qe+=ge:(ft.returnEnd||ft.excludeEnd||(Qe+=ge),zt(),ft.excludeEnd&&(Qe=ge));do Ie.scope&>.closeNode(),!Ie.skip&&!Ie.subLanguage&&(Lr+=Ie.relevance),Ie=Ie.parent;while(Ie!==je.parent);return je.starts&&lr(je.starts,ue),ft.returnEnd?0:ge.length}function Bo(){const ue=[];for(let ge=Ie;ge!==cn;ge=ge.parent)ge.scope&&ue.unshift(ge.scope);ue.forEach(ge=>gt.openNode(ge))}let ar={};function sr(ue,ge){const Ae=ge&&ge[0];if(Qe+=ue,Ae==null)return zt(),0;if(ar.type==="begin"&&ge.type==="end"&&ar.index===ge.index&&Ae===""){if(Qe+=ve.slice(ge.index,ge.index+1),!rt){const je=new Error(`0 width match regex (${re})`);throw je.languageName=re,je.badRule=ar.rule,je}return 1}if(ar=ge,ge.type==="begin")return pa(ge);if(ge.type==="illegal"&&!ze){const je=new Error('Illegal lexeme "'+Ae+'" for mode "'+(Ie.scope||"")+'"');throw je.mode=Ie,je}else if(ge.type==="end"){const je=Fi(ge);if(je!==ti)return je}if(ge.type==="illegal"&&Ae==="")return ge.index===ve.length||(Qe+=` +`),1;if(Dr>1e5&&Dr>ge.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Qe+=Ae,Ae.length}const cn=vn(re);if(!cn)throw sn(lt.replace("{}",re)),new Error('Unknown language: "'+re+'"');const Bi=jt(cn);let Ve="",Ie=Be||Bi;const Ui={},gt=new me.__emitter(me);Bo();let Qe="",Lr=0,Ln=0,Dr=0,ur=!1;try{if(cn.__emitTokens)cn.__emitTokens(ve,gt);else{for(Ie.matcher.considerAll();;){Dr++,ur?ur=!1:Ie.matcher.considerAll(),Ie.matcher.lastIndex=Ln;const ue=Ie.matcher.exec(ve);if(!ue)break;const ge=ve.substring(Ln,ue.index),Ae=sr(ge,ue);Ln=ue.index+Ae}sr(ve.substring(Ln))}return gt.finalize(),Ve=gt.toHTML(),{language:re,value:Ve,relevance:Lr,illegal:!1,_emitter:gt,_top:Ie}}catch(ue){if(ue.message&&ue.message.includes("Illegal"))return{language:re,value:Ct(ve),illegal:!0,relevance:0,_illegalBy:{message:ue.message,index:Ln,context:ve.slice(Ln-100,Ln+100),mode:ue.mode,resultSoFar:Ve},_emitter:gt};if(rt)return{language:re,value:Ct(ve),illegal:!1,relevance:0,errorRaised:ue,_emitter:gt,_top:Ie};throw ue}}function or(re){const ve={value:Ct(re),illegal:!1,relevance:0,_top:he,_emitter:new me.__emitter(me)};return ve._emitter.addText(re),ve}function Rr(re,ve){ve=ve||me.languages||Object.keys(Y);const ze=or(re),Be=ve.filter(vn).filter(Fo).map(zt=>In(zt,re,!1));Be.unshift(ze);const mt=Be.sort((zt,Ft)=>{if(zt.relevance!==Ft.relevance)return Ft.relevance-zt.relevance;if(zt.language&&Ft.language){if(vn(zt.language).supersetOf===Ft.language)return 1;if(vn(Ft.language).supersetOf===zt.language)return-1}return 0}),[ut,Mn]=mt,ii=ut;return ii.secondBest=Mn,ii}function ua(re,ve,ze){const Be=ve&&fe[ve]||ze;re.classList.add("hljs"),re.classList.add(`language-${Be}`)}function Di(re){let ve=null;const ze=yt(re);if(xe(ze))return;if(Or("before:highlightElement",{el:re,language:ze}),re.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",re);return}if(re.children.length>0&&(me.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(re)),me.throwUnescapedHTML))throw new un("One of your code blocks includes unescaped HTML.",re.innerHTML);ve=re;const Be=ve.textContent,mt=ze?tt(Be,{language:ze,ignoreIllegals:!0}):Rr(Be);re.innerHTML=mt.value,re.dataset.highlighted="yes",ua(re,ze,mt.language),re.result={language:mt.language,re:mt.relevance,relevance:mt.relevance},mt.secondBest&&(re.secondBest={language:mt.secondBest.language,relevance:mt.secondBest.relevance}),Or("after:highlightElement",{el:re,result:mt,text:Be})}function ca(re){me=ei(me,re)}const Vn=()=>{ni(),W("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Mo(){ni(),W("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Pi=!1;function ni(){function re(){ni()}if(document.readyState==="loading"){Pi||window.addEventListener("DOMContentLoaded",re,!1),Pi=!0;return}document.querySelectorAll(me.cssSelector).forEach(Di)}function Lo(re,ve){let ze=null;try{ze=ve(T)}catch(Be){if(sn("Language definition for '{}' could not be registered.".replace("{}",re)),rt)sn(Be);else throw Be;ze=he}ze.name||(ze.name=re),Y[re]=ze,ze.rawDefinition=ve.bind(null,T),ze.aliases&&zo(ze.aliases,{languageName:re})}function Do(re){delete Y[re];for(const ve of Object.keys(fe))fe[ve]===re&&delete fe[ve]}function Po(){return Object.keys(Y)}function vn(re){return re=(re||"").toLowerCase(),Y[re]||Y[fe[re]]}function zo(re,{languageName:ve}){typeof re=="string"&&(re=[re]),re.forEach(ze=>{fe[ze.toLowerCase()]=ve})}function Fo(re){const ve=vn(re);return ve&&!ve.disableAutodetect}function st(re){re["before:highlightBlock"]&&!re["before:highlightElement"]&&(re["before:highlightElement"]=ve=>{re["before:highlightBlock"](Object.assign({block:ve.el},ve))}),re["after:highlightBlock"]&&!re["after:highlightElement"]&&(re["after:highlightElement"]=ve=>{re["after:highlightBlock"](Object.assign({block:ve.el},ve))})}function da(re){st(re),Re.push(re)}function zi(re){const ve=Re.indexOf(re);ve!==-1&&Re.splice(ve,1)}function Or(re,ve){const ze=re;Re.forEach(function(Be){Be[ze]&&Be[ze](ve)})}function ri(re){return W("10.7.0","highlightBlock will be removed entirely in v12.0"),W("10.7.0","Please use highlightElement now."),Di(re)}Object.assign(T,{highlight:tt,highlightAuto:Rr,highlightAll:ni,highlightElement:Di,highlightBlock:ri,configure:ca,initHighlighting:Vn,initHighlightingOnLoad:Mo,registerLanguage:Lo,unregisterLanguage:Do,listLanguages:Po,getLanguage:vn,registerAliases:zo,autoDetection:Fo,inherit:ei,addPlugin:da,removePlugin:zi}),T.debugMode=function(){rt=!1},T.safeMode=function(){rt=!0},T.versionString=vt,T.regex={concat:N,lookahead:b,either:S,optional:w,anyNumberOfTimes:E};for(const re in Ze)typeof Ze[re]=="object"&&e(Ze[re]);return Object.assign(T,Ze),T},Wn=Kn({});return Wn.newInstance=()=>Kn({}),pu=Wn,Wn.HighlightJS=Wn,Wn.default=Wn,pu}var lS=oS();const aS=Co(lS),wp={},sS="hljs-";function uS(e){const i=aS.newInstance();return e&&c(e),{highlight:r,highlightAuto:l,listLanguages:s,register:c,registerAlias:u,registered:f};function r(p,m,y){const h=y||wp,b=typeof h.prefix=="string"?h.prefix:sS;if(!i.getLanguage(p))throw new Error("Unknown language: `"+p+"` is not registered");i.configure({__emitter:cS,classPrefix:b});const E=i.highlight(m,{ignoreIllegals:!0,language:p});if(E.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:E.errorRaised});const w=E._emitter.root,N=w.data;return N.language=E.language,N.relevance=E.relevance,w}function l(p,m){const h=(m||wp).subset||s();let b=-1,E=0,w;for(;++bE&&(E=O.data.relevance,w=O)}return w||{type:"root",children:[],data:{language:void 0,relevance:E}}}function s(){return i.listLanguages()}function c(p,m){if(typeof p=="string")i.registerLanguage(p,m);else{let y;for(y in p)Object.hasOwn(p,y)&&i.registerLanguage(y,p[y])}}function u(p,m){if(typeof p=="string")i.registerAliases(typeof m=="string"?m:[...m],{languageName:p});else{let y;for(y in p)if(Object.hasOwn(p,y)){const h=p[y];i.registerAliases(typeof h=="string"?h:[...h],{languageName:y})}}}function f(p){return!!i.getLanguage(p)}}class cS{constructor(i){this.options=i,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(i){if(i==="")return;const r=this.stack[this.stack.length-1],l=r.children[r.children.length-1];l&&l.type==="text"?l.value+=i:r.children.push({type:"text",value:i})}startScope(i){this.openNode(String(i))}endScope(){this.closeNode()}__addSublanguage(i,r){const l=this.stack[this.stack.length-1],s=i.root.children;r?l.children.push({type:"element",tagName:"span",properties:{className:[r]},children:s}):l.children.push(...s)}openNode(i){const r=this,l=i.split(".").map(function(u,f){return f?u+"_".repeat(f):r.options.classPrefix+u}),s=this.stack[this.stack.length-1],c={type:"element",tagName:"span",properties:{className:l},children:[]};s.children.push(c),this.stack.push(c)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const dS={};function fS(e){const i=e||dS,r=i.aliases,l=i.detect||!1,s=i.languages||iS,c=i.plainText,u=i.prefix,f=i.subset;let p="hljs";const m=uS(s);if(r&&m.registerAlias(r),u){const y=u.indexOf("-");p=y===-1?u:u.slice(0,y)}return function(y,h){sa(y,"element",function(b,E,w){if(b.tagName!=="code"||!w||w.type!=="element"||w.tagName!=="pre")return;const N=pS(b);if(N===!1||!N&&!l||N&&c&&c.includes(N))return;Array.isArray(b.properties.className)||(b.properties.className=[]),b.properties.className.includes(p)||b.properties.className.unshift(p);const O=Aw(b,{whitespace:"pre"});let S;try{S=N?m.highlight(N,O,{prefix:u}):m.highlightAuto(O,{prefix:u,subset:f})}catch(L){const P=L;if(N&&/Unknown language/.test(P.message)){h.message("Cannot highlight as `"+N+"`, it’s not registered",{ancestors:[w,b],cause:P,place:b.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw P}!N&&S.data&&S.data.language&&b.properties.className.push("language-"+S.data.language),S.children.length>0&&(b.children=S.children)})}}function pS(e){const i=e.properties.className;let r=-1;if(!Array.isArray(i))return;let l;for(;++rtypeof r=="string"):[]}catch{return[]}}function hS(e){if(!e.files)return[];try{const i=JSON.parse(e.files);return Array.isArray(i)?i.flatMap(r=>{const l=r;return typeof(l==null?void 0:l.name)!="string"||typeof(l==null?void 0:l.content)!="string"?[]:[{name:l.name,content:l.content}]}):[]}catch{return[]}}function yS({message:e,toolEvents:i=[],modelLabel:r="qwen3"}){const[l,s]=ce.useState(!1),c=e.role==="user",u=gS(e),f=hS(e);return H.jsxs("div",{className:`msg ${c?"msg-user":"msg-assistant"}`,children:[H.jsx("div",{className:"msg-role",children:c?"du":r}),!c&&e.thinking&&e.thinking.length>0&&H.jsxs("div",{className:`thinking ${l?"open":""}`,children:[H.jsxs("button",{className:"thinking-toggle",onClick:()=>s(p=>!p),children:[H.jsx("span",{className:`caret ${l?"rotated":""}`,children:"▸"}),e.content===""&&l===!1?"denkt nach …":`Denkprozess (${e.thinking.length.toLocaleString("de-DE")} Zeichen)`]}),l&&H.jsx("pre",{className:"thinking-body",children:e.thinking})]}),i.length>0&&H.jsx("div",{className:"tool-events",children:i.map((p,m)=>H.jsxs("div",{className:`tool-event ${p.ok===!1?"failed":""}`,children:[H.jsx("span",{className:"tool-icon",children:p.ok===void 0?"⋯":p.ok?"✓":"✗"}),H.jsx("code",{children:p.name}),H.jsx("span",{className:"tool-args",title:p.args,children:p.args}),p.durationMs!==void 0&&H.jsxs("span",{className:"tool-time",children:[p.durationMs," ms"]})]},m))}),u.length>0&&H.jsx("div",{className:"msg-images",children:u.map((p,m)=>H.jsx("img",{src:`data:${mS(p)};base64,${p}`,alt:`Anhang ${m+1}`,loading:"lazy"},m))}),f.length>0&&H.jsx("div",{className:"msg-files",children:f.map(p=>H.jsxs("span",{className:"file-chip",title:`${p.content.length.toLocaleString("de-DE")} Zeichen`,children:["📄 ",p.name," · ",Math.max(1,Math.round(p.content.length/1024))," kB"]},p.name))}),c?e.content?H.jsx("div",{className:"msg-content user-content",children:e.content}):null:H.jsx("div",{className:"msg-content markdown",children:H.jsx(uv,{remarkPlugins:[kw],rehypePlugins:[fS],children:e.content||"▍"})})]})}const xp=4,Sp=6*1024*1024,mu=["image/png","image/jpeg","image/gif","image/webp"],Np=4,ra=1e5,Tp=10*1024*1024,gu=[".txt",".json",".md",".markdown",".csv",".tsv",".log",".xml",".yaml",".yml",".toml",".ini",".cfg",".conf",".sql",".sh",".bash",".zsh",".py",".js",".mjs",".cjs",".jsx",".ts",".tsx",".css",".scss",".html",".htm",".svg",".rs",".go",".java",".kt",".rb",".php",".c",".h",".cpp",".hpp",".cs",".swift",".diff",".patch"],rg=["application/pdf"],Cu=[".pdf"],Cp=["application/json","application/xml","application/yaml","application/x-sh"];function bS(e){return new Promise((i,r)=>{const l=new FileReader;l.onerror=()=>r(new Error(`${e.name} konnte nicht gelesen werden`)),l.onload=()=>{const s=String(l.result),c=s.indexOf(",");i({id:`${e.name}-${e.size}-${Date.now()}-${Math.random()}`,base64:s.slice(c+1),dataUrl:s,name:e.name||"Bild"})},l.readAsDataURL(e)})}async function ES(e){const i="."+(e.name.split(".").pop()??"").toLowerCase();if(rg.includes(e.type)||Cu.includes(i)){if(e.size>Tp)throw new Error(`${e.name}: größer als ${Math.round(Tp/1024/1024)} MB`);const l=await new Promise((c,u)=>{const f=new FileReader;f.onerror=()=>u(new Error(`${e.name} konnte nicht gelesen werden`)),f.onload=()=>c(String(f.result)),f.readAsDataURL(e)}),s=l.indexOf(",");return{id:`${e.name}-${e.size}-${Date.now()}-${Math.random()}`,name:e.name||"PDF",content:l.slice(s+1),bytes:e.size,encoding:"base64"}}const r=await e.text();if(r.length===0)throw new Error(`${e.name} ist leer`);if(r.length>ra)throw new Error(`${e.name}: größer als ${Math.round(ra/1e3)} kB Text`);if(/[\x00-\x08\x0B\x0C\x0E-\x1F]/.test(r.slice(0,2e3)))throw new Error(`${e.name}: wirkt binär — nur Textdateien`);return{id:`${e.name}-${e.size}-${Date.now()}-${Math.random()}`,name:e.name||"Datei",content:r,bytes:e.size,encoding:"text"}}function _S({streaming:e,disabled:i,recording:r,transcribing:l,injectedText:s,modelLabel:c="qwen3",onInjected:u,onSend:f,onAbort:p,onMicToggle:m}){const[y,h]=ce.useState(""),[b,E]=ce.useState([]),[w,N]=ce.useState([]),[O,S]=ce.useState(null),[L,P]=ce.useState(!1),q=ce.useRef(null),X=ce.useRef(null);ce.useEffect(()=>{s!=null&&(h(s),u(),requestAnimationFrame(()=>{var K,A;(K=q.current)==null||K.focus(),(A=q.current)==null||A.setSelectionRange(s.length,s.length)}))},[s,u]);const M=async K=>{S(null);const A=[],j=[];for(const U of K){const J="."+(U.name.split(".").pop()??"").toLowerCase();if(mu.includes(U.type)){if(U.size>Sp){S(`${U.name}: größer als ${Sp/1024/1024} MB`);continue}A.push(U)}else if(U.type.startsWith("text/")||Cp.includes(U.type)||rg.includes(U.type)||gu.includes(J)||Cu.includes(J)){if(U.size>ra*2){S(`${U.name}: größer als ${Math.round(ra*2/1e3)} kB`);continue}j.push(U)}else S(`${U.name||"Datei"}: nur Bilder (PNG, JPEG, GIF, WebP) oder Textdateien`)}try{if(A.length){const U=await Promise.all(A.map(bS));E(J=>{const Q=xp-J.length;return U.length>Q&&S(`Maximal ${xp} Bilder pro Nachricht`),[...J,...U.slice(0,Math.max(Q,0))]})}if(j.length){const U=await Promise.all(j.map(ES));N(J=>{const Q=Np-J.length;return U.length>Q&&S(`Maximal ${Np} Dateien pro Nachricht`),[...J,...U.slice(0,Math.max(Q,0))]})}}catch(U){S(U instanceof Error?U.message:"Datei konnte nicht gelesen werden")}},le=()=>{const K=y.trim();!K&&b.length===0&&w.length===0||e||i||(f(K,b.map(A=>A.base64),w.map(A=>({name:A.name,content:A.content,encoding:A.encoding==="base64"?"base64":void 0}))),h(""),E([]),N([]),S(null),requestAnimationFrame(()=>{var A;return(A=q.current)==null?void 0:A.focus()}))},de=(y.trim().length>0||b.length>0||w.length>0)&&!i;return H.jsxs("div",{className:`composer ${L?"dragging":""}`,onDragOver:K=>{i||(K.preventDefault(),P(!0))},onDragLeave:()=>P(!1),onDrop:K=>{i||(K.preventDefault(),P(!1),M([...K.dataTransfer.files]))},children:[(b.length>0||w.length>0||O)&&H.jsxs("div",{className:"attachments",children:[b.map(K=>H.jsxs("div",{className:"attachment",children:[H.jsx("img",{src:K.dataUrl,alt:K.name}),H.jsx("button",{className:"attachment-remove",onClick:()=>E(A=>A.filter(j=>j.id!==K.id)),title:`${K.name} entfernen`,children:"×"})]},K.id)),w.map(K=>H.jsxs("div",{className:"attachment attachment-file",children:[H.jsxs("span",{className:"attachment-file-name",children:["📄 ",K.name," · ",Math.max(1,Math.round(K.bytes/1024))," kB"]}),H.jsx("button",{className:"attachment-remove",onClick:()=>N(A=>A.filter(j=>j.id!==K.id)),title:`${K.name} entfernen`,children:"×"})]},K.id)),O&&H.jsx("span",{className:"attachment-error",children:O})]}),H.jsxs("div",{className:"composer-row",children:[H.jsx("button",{className:`btn-mic ${r?"recording":""} ${l?"transcribing":""}`,onClick:m,title:r?"Aufnahme stoppen & senden":l?"Transkribiere …":"Sprachnachricht aufnehmen",disabled:l||i,children:r?"●":l?"…":"🎙"}),H.jsx("button",{className:"btn-attach",onClick:()=>{var K;return(K=X.current)==null?void 0:K.click()},disabled:i,title:"Bild oder Textdatei anhängen (auch per Einfügen oder Drag & Drop)",children:"📎"}),H.jsx("input",{ref:X,type:"file",accept:[...mu,...gu,...Cu].join(","),multiple:!0,hidden:!0,onChange:K=>{M([...K.target.files??[]]),K.target.value=""}}),H.jsx("textarea",{ref:q,value:y,placeholder:r?"Ich höre zu … (zum Beenden nochmal auf das Mikro klicken)":i?"Keine Session aktiv — neuen Chat starten":`Nachricht an ${c} … (Enter = senden, Bild einfügen mit ⌘V)`,rows:1,disabled:i,onChange:K=>h(K.target.value),onPaste:K=>{const A=[...K.clipboardData.files].filter(j=>{const U="."+(j.name.split(".").pop()??"").toLowerCase();return mu.includes(j.type)||j.type.startsWith("text/")||Cp.includes(j.type)||gu.includes(U)});A.length&&(K.preventDefault(),M(A))},onKeyDown:K=>{K.key==="Enter"&&!K.shiftKey&&(K.preventDefault(),le())}}),e?H.jsx("button",{className:"btn-send stop",onClick:p,children:"■ Stop"}):H.jsx("button",{className:"btn-send",disabled:!de,onClick:le,children:"Senden ▸"})]})]})}const vS={fact:"Fakt",decision:"Entscheidung",preference:"Präferenz",entity:"Entität",open_question:"Offen"};function kS({sessionId:e,onClose:i}){const[r,l]=ce.useState(null),[s,c]=ce.useState(null),u=ce.useCallback(async()=>{try{const E=await(await fetch(`/api/sessions/${e}/memory`)).json();E.state&&l(E)}catch{l(null)}},[e]);ce.useEffect(()=>{u()},[u]);const f=async()=>{c("dream");try{await fetch(`/api/sessions/${e}/dream`,{method:"POST"}),await u()}finally{c(null)}},p=async()=>{c("rebuild");try{await fetch(`/api/sessions/${e}/memory/rebuild`,{method:"POST"}),await u()}finally{c(null)}},m=async b=>{await fetch(`/api/anchors/${b.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:!b.pinned})}),await u()},y=async b=>{await fetch(`/api/anchors/${b.id}`,{method:"DELETE"}),await u()},h=r?r.state.last_seq-r.state.last_dream_seq:0;return H.jsx("div",{className:"memory-overlay",onClick:i,children:H.jsxs("section",{className:"memory-panel",onClick:b=>b.stopPropagation(),children:[H.jsxs("header",{className:"memory-header",children:[H.jsxs("div",{children:[H.jsx("div",{className:"memory-title",children:"🧠 Gedächtnis"}),H.jsx("div",{className:"memory-stats",children:r?`${r.state.last_seq} Log-Schritte · ${r.state.dream_count}× geträumt · ${h} unkonsolidiert`:"lädt …"})]}),H.jsx("button",{className:"memory-close",onClick:i,title:"Schließen",children:"✕"})]}),H.jsxs("div",{className:"memory-actions",children:[H.jsx("button",{onClick:()=>void f(),disabled:s!==null,children:s==="dream"?"… träumt":"💤 Traumphase jetzt"}),H.jsx("button",{onClick:()=>void p(),disabled:s!==null,children:s==="rebuild"?"… faltet":"↻ Aus Log rekonstruieren"})]}),r&&r.anchors.length===0&&H.jsx("div",{className:"memory-empty",children:"Noch keine Ankerpunkte. Sie entstehen durch die Traumphase (automatisch nach Inaktivität oder Manual oben) oder wenn das Modell sich etwas mit „remember“ merkt."}),r==null?void 0:r.anchors.map(b=>H.jsxs("div",{className:"anchor-row"+(b.pinned?" pinned":""),children:[H.jsxs("div",{className:"anchor-body",children:[H.jsxs("div",{className:"anchor-kind",children:[vS[b.kind]??b.kind," · ",b.origin]}),H.jsx("div",{className:"anchor-text",children:b.text}),H.jsxs("div",{className:"anchor-meta",children:["Wichtigkeit ",(b.importance*100).toFixed(0)," % · ",b.hits,"× bestätigt"]}),H.jsx("div",{className:"anchor-bar",children:H.jsx("div",{className:"anchor-bar-fill",style:{width:`${Math.round(b.importance*100)}%`}})})]}),H.jsxs("div",{className:"anchor-actions",children:[H.jsx("button",{onClick:()=>void m(b),title:b.pinned?"Pin lösen (Decay möglich)":"Pinnen (vor Decay geschützt)",children:b.pinned?"★":"☆"}),H.jsx("button",{onClick:()=>void y(b),title:"Ankerpunkt löschen",children:"✕"})]})]},b.id))]})})}const Ap="oxagenttwo.voiceMode";function wS(){var Q,G,se;const e=Qh(),i=ce.useRef(null),[r,l]=ce.useState(!1),[s,c]=ce.useState(!1),[u,f]=ce.useState(null),[p,m]=ce.useState(()=>localStorage.getItem(Ap)==="1"),[y,h]=ce.useState([]),[b,E]=ce.useState([]);ce.useEffect(()=>{r&&e.options.provider==="openrouter"&&y.length===0&&fetch("/api/openrouter/models").then(z=>z.json()).then(z=>{z.ok&&z.models&&h(z.models)}).catch(()=>{}),r&&e.options.provider==="ollama"&&b.length===0&&fetch("/api/ollama/models").then(z=>z.json()).then(z=>{z.ok&&z.models&&E(z.models)}).catch(()=>{})},[r,e.options.provider,y.length,b.length]);const w=ce.useRef(p),N=ce.useRef(!1),O=ce.useRef(!1);N.current=e.streaming,w.current=p;const S=ce.useCallback(z=>{m(z),localStorage.setItem(Ap,z?"1":"0")},[]),L=Xh({onTranscript:z=>{w.current?(P.current.cancelSpeech(),X.current="",q.current.sendMessage(z)):f(z)},onQueueDrained:()=>{O.current&&(O.current=!1,w.current&&!N.current&&P.current.startRecording())}}),P=ce.useRef(L);P.current=L;const q=ce.useRef(e);q.current=e;const X=ce.useRef(""),M=ce.useRef({id:"",offset:0});ce.useEffect(()=>{const z=i.current;z&&(z.scrollTop=z.scrollHeight)},[e.messages]),ce.useEffect(()=>{if(!p)return;const z=[...e.messages].reverse().find(k=>k.role==="assistant");if(!z)return;M.current.id!==z.id&&(M.current={id:z.id,offset:0},X.current="");const V=z.content;if(V.length=40&&($=v.slice(0,ke))}else if(v.length>300){const k=Math.max(v.lastIndexOf(", "),v.lastIndexOf(" "));$=k>100?v.slice(0,k+1):v}$&&(X.current=v.slice($.length),L.enqueueSpeech($))});const le=ce.useRef(!1);ce.useEffect(()=>{if(le.current&&!e.streaming&&p){const z=X.current.trim();z&&(X.current="",L.enqueueSpeech(z)),(z||M.current.id)&&(O.current=!0)}le.current=e.streaming},[e.streaming,p,L]);const[de,K]=ce.useState([]);ce.useEffect(()=>{fetch("/api/tools").then(z=>z.json()).then(z=>K(z.tools??[])).catch(()=>K([]))},[]);const A=(e.options.provider==="openrouter"?e.options.openrouterModel.split("/").pop():e.options.model.replace(/:latest$/,""))??"qwen3",j=ce.useCallback((z,V=[],ae=[])=>{L.cancelSpeech(),X.current="",e.sendMessage(z,V,ae)},[e,L]),U=ce.useCallback(()=>{L.cancelSpeech(),X.current="",e.abort()},[e,L]),J=ce.useCallback(()=>{L.recording?L.stopRecording():(L.cancelSpeech(),L.startRecording())},[L]);return H.jsxs("div",{className:"app",children:[H.jsx(Zh,{sessions:e.sessions,activeId:e.activeId,onSelect:e.setActiveId,onNew:()=>void e.newSession(),onDelete:z=>void e.deleteSession(z)}),H.jsxs("main",{className:"main",children:[H.jsxs("header",{className:"topbar",children:[H.jsxs("div",{className:"model-badge",title:(Q=e.modelInfo)!=null&&Q.ok||(G=e.modelInfo)==null?void 0:G.error,children:[H.jsx("span",{className:`status-dot ${e.status==="open"?"on":"off"}`}),e.options.provider==="openrouter"?`☁ ${e.options.openrouterModel}`:(se=e.modelInfo)!=null&&se.ok?`${e.modelInfo.model} · ${e.modelInfo.parameterSize} · ${e.modelInfo.quantization}`:"Ollama offline"]}),H.jsxs("div",{className:"topbar-actions",children:[p&&(L.recording||L.transcribing||L.speaking)&&H.jsx("span",{className:"voice-state",children:L.recording?"● hört zu":L.transcribing?"… transkribiert":"🔊 spricht"}),H.jsx("button",{className:`btn-settings ${p?"toggled":""}`,onClick:()=>{p&&(L.cancelSpeech(),L.stopRecording()),S(!p)},title:"Sprachmodus: Antworten werden vorgelesen, danach wird automatisch wieder zugehört",children:p?"🔊 Stimme: an":"🔇 Stimme: aus"}),H.jsx("button",{className:"btn-settings",onClick:()=>c(z=>!z),disabled:!e.activeId,title:"Gedächtnis: Ankerpunkte, Traumphase, Log-Rekonstruktion",children:"🧠 Gedächtnis"}),H.jsx("button",{className:"btn-settings",onClick:()=>l(z=>!z),children:"⚙ Einstellungen"})]})]}),r&&H.jsxs("section",{className:"settings-panel",children:[H.jsxs("label",{className:"setting-row",children:[H.jsx("span",{children:"Modell"}),H.jsxs("select",{className:"provider-select",value:e.options.provider,onChange:z=>e.setOptions({provider:z.target.value}),children:[H.jsx("option",{value:"ollama",children:"Lokal: qwen3.5 (Ollama)"}),H.jsx("option",{value:"openrouter",children:"OpenRouter (Cloud)"})]})]}),e.options.provider==="openrouter"&&H.jsxs("label",{className:"setting-row column",children:[H.jsxs("span",{children:["OpenRouter-Modell (",y.length," verfügbar)"]}),H.jsx("input",{list:"or-models",value:e.options.openrouterModel,placeholder:"z. B. anthropic/claude-sonnet-4.5",onChange:z=>e.setOptions({openrouterModel:z.target.value})}),H.jsx("datalist",{id:"or-models",children:y.map(z=>H.jsxs("option",{value:z.id,children:[z.name," · ",z.promptPrice===0?"gratis":`$${z.promptPrice.toFixed(2)}/M`]},z.id))})]}),e.options.provider==="ollama"&&H.jsxs("label",{className:"setting-row",children:[H.jsx("span",{children:"Lokales Modell (Ollama)"}),H.jsxs("select",{className:"provider-select",value:b.some(z=>z.name===e.options.model)?e.options.model:"",onChange:z=>e.setOptions({model:z.target.value}),children:[!b.some(z=>z.name===e.options.model)&&H.jsxs("option",{value:"",children:[e.options.model," (nicht installiert)"]}),b.map(z=>H.jsxs("option",{value:z.name,children:[z.name,z.parameterSize?` · ${z.parameterSize}`:"",z.sizeGB?` · ${z.sizeGB} GB`:""]},z.name)),b.length===0&&H.jsx("option",{value:e.options.model,children:e.options.model})]})]}),e.options.provider==="ollama"&&H.jsxs("label",{className:"setting-row checkbox",children:[H.jsx("input",{type:"checkbox",checked:e.options.think,onChange:z=>e.setOptions({think:z.target.checked})}),H.jsx("span",{children:"Thinking-Mode (Modell denkt sichtbar vor der Antwort)"})]}),H.jsxs("label",{className:"setting-row checkbox",children:[H.jsx("input",{type:"checkbox",checked:e.options.tools,onChange:z=>e.setOptions({tools:z.target.checked})}),H.jsxs("span",{children:["Werkzeuge (",de.length>0?de.join(", "):"keine geladen",")"]})]}),H.jsxs("label",{className:"setting-row",children:[H.jsxs("span",{children:["Temperature: ",e.options.temperature.toFixed(2)]}),H.jsx("input",{type:"range",min:0,max:1.5,step:.05,value:e.options.temperature,onChange:z=>e.setOptions({temperature:Number(z.target.value)})})]}),H.jsxs("label",{className:"setting-row",children:[H.jsxs("span",{children:["Max. Tokens: ",e.options.numPredict]}),H.jsx("input",{type:"range",min:256,max:8192,step:256,value:e.options.numPredict,onChange:z=>e.setOptions({numPredict:Number(z.target.value)})})]}),H.jsxs("label",{className:"setting-row",children:[H.jsxs("span",{children:["Gedächtnis-Fenster: ",e.options.memorySteps," Schritte"]}),H.jsx("input",{type:"range",min:2,max:50,step:1,value:e.options.memorySteps,onChange:z=>e.setOptions({memorySteps:Number(z.target.value)})})]}),H.jsxs("label",{className:"setting-row checkbox",children:[H.jsx("input",{type:"checkbox",checked:e.options.memoryAnchors,onChange:z=>e.setOptions({memoryAnchors:z.target.checked})}),H.jsx("span",{children:"Ankerpunkte ins Modell einspielen (Gedächtnis als System-Kontext)"})]}),H.jsxs("label",{className:"setting-row checkbox",children:[H.jsx("input",{type:"checkbox",checked:e.options.dreamAuto,onChange:z=>e.setOptions({dreamAuto:z.target.checked})}),H.jsx("span",{children:"Auto-Traumphase (Konsolidierung nach 3 Min Inaktivität oder 10 Schritten)"})]}),H.jsxs("label",{className:"setting-row column",children:[H.jsx("span",{children:"System-Prompt"}),H.jsx("textarea",{rows:3,placeholder:"Optional: Verhalten des Modells steuern …",value:e.systemPrompt,onChange:z=>e.setSystemPrompt(z.target.value)})]})]}),s&&e.activeId&&H.jsx(kS,{sessionId:e.activeId,onClose:()=>c(!1)}),H.jsxs("div",{className:"messages",ref:i,children:[e.messages.length===0&&H.jsxs("div",{className:"welcome",children:[H.jsx("div",{className:"welcome-title",children:"▸ agenttwo-tools"}),H.jsx("p",{children:"Echtzeit-Chat mit lokalem Qwen3 über Ollama — per Tastatur oder Stimme (Whisper STT + Piper TTS, alles lokal)."}),H.jsx("p",{className:"hint",children:"🎙 für Sprachnachricht · 🔊 Stimme an für freihändigen Dialog"})]}),e.messages.map(z=>H.jsx(yS,{message:z,toolEvents:e.toolEvents[z.id],modelLabel:A},z.id))]}),L.error&&H.jsxs("div",{className:"voice-error",children:[L.error,H.jsx("button",{onClick:()=>L.setError(null),children:"✕"})]}),H.jsx(_S,{streaming:e.streaming,disabled:!e.activeId,recording:L.recording,transcribing:L.transcribing,injectedText:u,modelLabel:A,onInjected:()=>f(null),onSend:j,onAbort:U,onMicToggle:J})]})]})}Vh.createRoot(document.getElementById("root")).render(H.jsx(Uh.StrictMode,{children:H.jsx(wS,{})})); diff --git a/web/dist/assets/index-CKaNlN-w.css b/web/dist/assets/index-CXQcDbVB.css similarity index 95% rename from web/dist/assets/index-CKaNlN-w.css rename to web/dist/assets/index-CXQcDbVB.css index 90db837..c89f180 100644 --- a/web/dist/assets/index-CKaNlN-w.css +++ b/web/dist/assets/index-CXQcDbVB.css @@ -7,4 +7,4 @@ pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5p Outdated base version: https://github.com/primer/github-syntax-dark Current colors taken from GitHub's CSS -*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--bg: #0a0f0c;--bg-panel: #0e1511;--bg-elevated: #121b15;--border: #1e2c23;--text: #d4e4d8;--text-dim: #7a9484;--accent: #3ddc84;--accent-dim: #2a9a5f;--accent-warm: #ffb454;--user-bg: #16241c;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.55}.app{display:flex;height:100%}.sidebar{width:250px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:16px 14px;border-bottom:1px solid var(--border)}.brand{font-weight:700;letter-spacing:.04em;color:var(--accent);margin-bottom:12px}.brand-prompt{animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.btn-new,.btn-settings,.btn-send{font-family:inherit;font-size:13px;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:7px 12px;cursor:pointer;transition:background .15s,border-color .15s}.btn-new{width:100%}.btn-new:hover,.btn-settings:hover{background:#3ddc8414;border-color:var(--accent)}.session-list{overflow-y:auto;flex:1;padding:8px}.empty-hint{color:var(--text-dim);padding:10px;font-size:13px}.session-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--text-dim);margin-bottom:2px}.session-item:hover{background:var(--bg-elevated);color:var(--text)}.session-item.active{background:var(--user-bg);color:var(--accent)}.session-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.session-delete{background:none;border:none;color:var(--text-dim);cursor:pointer;opacity:0;font-size:12px}.session-item:hover .session-delete{opacity:1}.session-delete:hover{color:#ff6b6b}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.model-badge{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.status-dot{width:8px;height:8px;border-radius:50%;background:#555}.status-dot.on{background:var(--accent);box-shadow:0 0 6px var(--accent)}.status-dot.off{background:#ff6b6b}.settings-panel{padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;gap:12px}.setting-row{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--text-dim)}.setting-row.column{flex-direction:column;align-items:stretch}.setting-row input[type=range]{flex:1;accent-color:var(--accent)}.setting-row textarea,.provider-select,.settings-panel input[list]{font-family:inherit;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px}.setting-row textarea{resize:vertical}.provider-select{min-width:220px}.messages{flex:1;overflow-y:auto;padding:24px 20px;scroll-behavior:smooth}.welcome{max-width:640px;margin:80px auto;text-align:center;color:var(--text-dim)}.welcome-title{font-size:22px;color:var(--accent);margin-bottom:12px}.welcome .hint{margin-top:8px;font-size:13px}.msg{max-width:760px;margin:0 auto 20px}.msg-role{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:6px}.msg-user .msg-role{color:var(--accent)}.user-content{background:var(--user-bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;white-space:pre-wrap;word-break:break-word}.markdown{word-break:break-word}.markdown p{margin:0 0 10px}.markdown p:last-child{margin-bottom:0}.markdown ul,.markdown ol{margin:0 0 10px 22px}.markdown li{margin-bottom:4px}.markdown h1,.markdown h2,.markdown h3{margin:16px 0 8px;color:var(--accent)}.markdown blockquote{border-left:3px solid var(--accent-dim);padding-left:12px;color:var(--text-dim);margin:0 0 10px}.markdown a{color:var(--accent)}.markdown table{border-collapse:collapse;margin-bottom:10px}.markdown th,.markdown td{border:1px solid var(--border);padding:5px 10px;font-size:13px}.markdown :not(pre)>code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:13px;color:var(--accent-warm)}.markdown pre{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto;margin-bottom:10px;font-size:13px}.thinking{margin-bottom:8px;border:1px dashed var(--border);border-radius:8px}.thinking-toggle{width:100%;text-align:left;background:none;border:none;font-family:inherit;font-size:12px;color:var(--text-dim);padding:8px 10px;cursor:pointer}.thinking-toggle:hover{color:var(--accent-warm)}.caret{display:inline-block;transition:transform .15s}.caret.rotated{transform:rotate(90deg)}.thinking-body{padding:4px 12px 10px;font-size:12.5px;color:var(--text-dim);white-space:pre-wrap;max-height:260px;overflow-y:auto}.composer{display:flex;gap:10px;padding:14px 20px 18px;border-top:1px solid var(--border);background:var(--bg-panel);align-items:stretch}.btn-mic{width:46px;flex-shrink:0;font-size:18px;background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text-dim);transition:border-color .15s,color .15s,box-shadow .15s}.btn-mic:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent)}.btn-mic.recording{border-color:#ff6b6b;color:#ff6b6b;animation:pulse 1.2s ease-in-out infinite}.btn-mic.transcribing{border-color:var(--accent-warm);color:var(--accent-warm)}@keyframes pulse{50%{box-shadow:0 0 0 5px #ff6b6b26}}.voice-state{font-size:12px;color:var(--accent-warm);white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:12px}.btn-settings.toggled{color:var(--accent-warm);border-color:var(--accent-warm)}.voice-error{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 20px 8px;padding:8px 12px;font-size:13px;color:#ffb454;background:#ffb45414;border:1px solid rgba(255,180,84,.3);border-radius:8px}.voice-error button{background:none;border:none;color:inherit;cursor:pointer}.composer textarea{flex:1;resize:none;font-family:inherit;font-size:14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:11px 14px;min-height:44px;max-height:180px}.composer textarea:focus{outline:none;border-color:var(--accent-dim)}.composer textarea::placeholder{color:#4d6355}.btn-send{min-width:96px;align-self:stretch}.btn-send:disabled{opacity:.4;cursor:not-allowed}.btn-send:not(:disabled):hover{background:#3ddc841a}.btn-send.stop{color:var(--accent-warm);border-color:var(--accent-warm)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-track{background:transparent}.composer.dragging{outline:2px dashed var(--accent, #3fb950);outline-offset:-4px}.composer{flex-direction:column;align-items:stretch}.composer-row{display:flex;align-items:flex-end;gap:10px;width:100%}.attachments{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 0 8px}.attachment{position:relative;width:64px;height:64px}.attachment img{width:100%;height:100%;object-fit:cover;border-radius:6px;border:1px solid var(--border, #30363d)}.attachment-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;line-height:18px;padding:0;border-radius:50%;border:1px solid var(--border, #30363d);background:var(--bg, #0d1117);color:var(--fg, #c9d1d9);cursor:pointer}.attachment-error{font-size:.85em;color:#f85149}.btn-attach{flex:0 0 auto;background:transparent;border:1px solid var(--border, #30363d);border-radius:8px;padding:8px 10px;cursor:pointer;color:inherit}.btn-attach:disabled{opacity:.4;cursor:default}.msg-images{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.msg-images img{max-width:min(320px,100%);max-height:320px;border-radius:8px;border:1px solid var(--border, #30363d)}.tool-events{display:flex;flex-direction:column;gap:4px;margin:4px 0 10px}.tool-event{display:flex;align-items:center;gap:8px;font-size:.85em;padding:4px 10px;border-left:2px solid var(--accent, #3fb950);background:#3fb9500f;border-radius:0 4px 4px 0;color:var(--fg-dim, #8b949e)}.tool-event.failed{border-left-color:#f85149;background:#f851490f}.tool-event code{color:var(--fg, #c9d1d9);font-weight:600}.tool-args{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.75}.tool-time{flex:0 0 auto;opacity:.6;font-variant-numeric:tabular-nums}.memory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04080699;display:flex;align-items:center;justify-content:center;z-index:50}.memory-panel{width:min(660px,92vw);max-height:80vh;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:10px}.memory-header{display:flex;justify-content:space-between;align-items:flex-start}.memory-title{color:var(--accent);font-weight:700;letter-spacing:.03em}.memory-stats{color:var(--text-dim);font-size:12px;margin-top:2px}.memory-close{background:transparent;border:none;color:var(--text-dim);font-size:15px;cursor:pointer}.memory-close:hover{color:var(--text)}.memory-actions{display:flex;gap:8px}.memory-actions button{font-family:inherit;font-size:12px;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:5px 10px;cursor:pointer}.memory-actions button:hover:not(:disabled){background:var(--user-bg)}.memory-actions button:disabled{opacity:.5;cursor:default}.memory-empty{color:var(--text-dim);font-size:13px;padding:14px;text-align:center;border:1px dashed var(--border);border-radius:8px}.anchor-row{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px}.anchor-row.pinned{border-color:var(--accent-dim)}.anchor-body{flex:1;min-width:0}.anchor-kind{font-size:11px;color:var(--accent-warm);text-transform:uppercase;letter-spacing:.06em}.anchor-text{font-size:13px;margin-top:3px;overflow-wrap:anywhere}.anchor-meta{font-size:11px;color:var(--text-dim);margin-top:4px}.anchor-bar{height:3px;background:var(--border);border-radius:2px;margin-top:6px;overflow:hidden}.anchor-bar-fill{height:100%;background:var(--accent);border-radius:2px}.anchor-actions{display:flex;gap:2px;flex-shrink:0}.anchor-actions button{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 4px}.anchor-actions button:hover{color:var(--accent)} +*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--bg: #0a0f0c;--bg-panel: #0e1511;--bg-elevated: #121b15;--border: #1e2c23;--text: #d4e4d8;--text-dim: #7a9484;--accent: #3ddc84;--accent-dim: #2a9a5f;--accent-warm: #ffb454;--user-bg: #16241c;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.55}.app{display:flex;height:100%}.sidebar{width:250px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:16px 14px;border-bottom:1px solid var(--border)}.brand{font-weight:700;letter-spacing:.04em;color:var(--accent);margin-bottom:12px}.brand-prompt{animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.btn-new,.btn-settings,.btn-send{font-family:inherit;font-size:13px;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:7px 12px;cursor:pointer;transition:background .15s,border-color .15s}.btn-new{width:100%}.btn-new:hover,.btn-settings:hover{background:#3ddc8414;border-color:var(--accent)}.session-list{overflow-y:auto;flex:1;padding:8px}.empty-hint{color:var(--text-dim);padding:10px;font-size:13px}.session-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--text-dim);margin-bottom:2px}.session-item:hover{background:var(--bg-elevated);color:var(--text)}.session-item.active{background:var(--user-bg);color:var(--accent)}.session-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.session-delete{background:none;border:none;color:var(--text-dim);cursor:pointer;opacity:0;font-size:12px}.session-item:hover .session-delete{opacity:1}.session-delete:hover{color:#ff6b6b}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.model-badge{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.status-dot{width:8px;height:8px;border-radius:50%;background:#555}.status-dot.on{background:var(--accent);box-shadow:0 0 6px var(--accent)}.status-dot.off{background:#ff6b6b}.settings-panel{padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;gap:12px}.setting-row{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--text-dim)}.setting-row.column{flex-direction:column;align-items:stretch}.setting-row input[type=range]{flex:1;accent-color:var(--accent)}.setting-row textarea,.provider-select,.settings-panel input[list]{font-family:inherit;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px}.setting-row textarea{resize:vertical}.provider-select{min-width:220px}.messages{flex:1;overflow-y:auto;padding:24px 20px;scroll-behavior:smooth}.welcome{max-width:640px;margin:80px auto;text-align:center;color:var(--text-dim)}.welcome-title{font-size:22px;color:var(--accent);margin-bottom:12px}.welcome .hint{margin-top:8px;font-size:13px}.msg{max-width:760px;margin:0 auto 20px}.msg-role{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:6px}.msg-user .msg-role{color:var(--accent)}.user-content{background:var(--user-bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;white-space:pre-wrap;word-break:break-word}.markdown{word-break:break-word}.markdown p{margin:0 0 10px}.markdown p:last-child{margin-bottom:0}.markdown ul,.markdown ol{margin:0 0 10px 22px}.markdown li{margin-bottom:4px}.markdown h1,.markdown h2,.markdown h3{margin:16px 0 8px;color:var(--accent)}.markdown blockquote{border-left:3px solid var(--accent-dim);padding-left:12px;color:var(--text-dim);margin:0 0 10px}.markdown a{color:var(--accent)}.markdown table{border-collapse:collapse;margin-bottom:10px}.markdown th,.markdown td{border:1px solid var(--border);padding:5px 10px;font-size:13px}.markdown :not(pre)>code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:13px;color:var(--accent-warm)}.markdown pre{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto;margin-bottom:10px;font-size:13px}.thinking{margin-bottom:8px;border:1px dashed var(--border);border-radius:8px}.thinking-toggle{width:100%;text-align:left;background:none;border:none;font-family:inherit;font-size:12px;color:var(--text-dim);padding:8px 10px;cursor:pointer}.thinking-toggle:hover{color:var(--accent-warm)}.caret{display:inline-block;transition:transform .15s}.caret.rotated{transform:rotate(90deg)}.thinking-body{padding:4px 12px 10px;font-size:12.5px;color:var(--text-dim);white-space:pre-wrap;max-height:260px;overflow-y:auto}.composer{display:flex;gap:10px;padding:14px 20px 18px;border-top:1px solid var(--border);background:var(--bg-panel);align-items:stretch}.btn-mic{width:46px;flex-shrink:0;font-size:18px;background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text-dim);transition:border-color .15s,color .15s,box-shadow .15s}.btn-mic:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent)}.btn-mic.recording{border-color:#ff6b6b;color:#ff6b6b;animation:pulse 1.2s ease-in-out infinite}.btn-mic.transcribing{border-color:var(--accent-warm);color:var(--accent-warm)}@keyframes pulse{50%{box-shadow:0 0 0 5px #ff6b6b26}}.voice-state{font-size:12px;color:var(--accent-warm);white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:12px}.btn-settings.toggled{color:var(--accent-warm);border-color:var(--accent-warm)}.voice-error{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 20px 8px;padding:8px 12px;font-size:13px;color:#ffb454;background:#ffb45414;border:1px solid rgba(255,180,84,.3);border-radius:8px}.voice-error button{background:none;border:none;color:inherit;cursor:pointer}.composer textarea{flex:1;resize:none;font-family:inherit;font-size:14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:11px 14px;min-height:44px;max-height:180px}.composer textarea:focus{outline:none;border-color:var(--accent-dim)}.composer textarea::placeholder{color:#4d6355}.btn-send{min-width:96px;align-self:stretch}.btn-send:disabled{opacity:.4;cursor:not-allowed}.btn-send:not(:disabled):hover{background:#3ddc841a}.btn-send.stop{color:var(--accent-warm);border-color:var(--accent-warm)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-track{background:transparent}.composer.dragging{outline:2px dashed var(--accent, #3fb950);outline-offset:-4px}.composer{flex-direction:column;align-items:stretch}.composer-row{display:flex;align-items:flex-end;gap:10px;width:100%}.attachments{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 0 8px}.attachment{position:relative;width:64px;height:64px}.attachment img{width:100%;height:100%;object-fit:cover;border-radius:6px;border:1px solid var(--border, #30363d)}.attachment-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;line-height:18px;padding:0;border-radius:50%;border:1px solid var(--border, #30363d);background:var(--bg, #0d1117);color:var(--fg, #c9d1d9);cursor:pointer}.attachment-error{font-size:.85em;color:#f85149}.btn-attach{flex:0 0 auto;background:transparent;border:1px solid var(--border, #30363d);border-radius:8px;padding:8px 10px;cursor:pointer;color:inherit}.btn-attach:disabled{opacity:.4;cursor:default}.msg-images{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.msg-images img{max-width:min(320px,100%);max-height:320px;border-radius:8px;border:1px solid var(--border, #30363d)}.tool-events{display:flex;flex-direction:column;gap:4px;margin:4px 0 10px}.tool-event{display:flex;align-items:center;gap:8px;font-size:.85em;padding:4px 10px;border-left:2px solid var(--accent, #3fb950);background:#3fb9500f;border-radius:0 4px 4px 0;color:var(--fg-dim, #8b949e)}.tool-event.failed{border-left-color:#f85149;background:#f851490f}.tool-event code{color:var(--fg, #c9d1d9);font-weight:600}.tool-args{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.75}.tool-time{flex:0 0 auto;opacity:.6;font-variant-numeric:tabular-nums}.memory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04080699;display:flex;align-items:center;justify-content:center;z-index:50}.memory-panel{width:min(660px,92vw);max-height:80vh;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:10px}.memory-header{display:flex;justify-content:space-between;align-items:flex-start}.memory-title{color:var(--accent);font-weight:700;letter-spacing:.03em}.memory-stats{color:var(--text-dim);font-size:12px;margin-top:2px}.memory-close{background:transparent;border:none;color:var(--text-dim);font-size:15px;cursor:pointer}.memory-close:hover{color:var(--text)}.memory-actions{display:flex;gap:8px}.memory-actions button{font-family:inherit;font-size:12px;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:5px 10px;cursor:pointer}.memory-actions button:hover:not(:disabled){background:var(--user-bg)}.memory-actions button:disabled{opacity:.5;cursor:default}.memory-empty{color:var(--text-dim);font-size:13px;padding:14px;text-align:center;border:1px dashed var(--border);border-radius:8px}.anchor-row{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px}.anchor-row.pinned{border-color:var(--accent-dim)}.anchor-body{flex:1;min-width:0}.anchor-kind{font-size:11px;color:var(--accent-warm);text-transform:uppercase;letter-spacing:.06em}.anchor-text{font-size:13px;margin-top:3px;overflow-wrap:anywhere}.anchor-meta{font-size:11px;color:var(--text-dim);margin-top:4px}.anchor-bar{height:3px;background:var(--border);border-radius:2px;margin-top:6px;overflow:hidden}.anchor-bar-fill{height:100%;background:var(--accent);border-radius:2px}.anchor-actions{display:flex;gap:2px;flex-shrink:0}.anchor-actions button{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 4px}.anchor-actions button:hover{color:var(--accent)}.attachment-file{width:auto;min-width:120px;max-width:320px;height:auto;padding:8px 10px;border-radius:8px;background:var(--bg-elevated);border:1px solid var(--border);display:flex;align-items:center;gap:8px}.attachment-file-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-files{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.file-chip{font-size:12px;color:var(--text-dim);background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:3px 8px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} diff --git a/web/dist/assets/index-leRe8gQm.js b/web/dist/assets/index-leRe8gQm.js deleted file mode 100644 index 2636a71..0000000 --- a/web/dist/assets/index-leRe8gQm.js +++ /dev/null @@ -1,74 +0,0 @@ -var Th=Object.defineProperty;var Ah=(e,i,r)=>i in e?Th(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r;var Ci=(e,i,r)=>Ah(e,typeof i!="symbol"?i+"":i,r);(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const c of s)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function r(s){const c={};return s.integrity&&(c.integrity=s.integrity),s.referrerPolicy&&(c.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?c.credentials="include":s.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function l(s){if(s.ep)return;s.ep=!0;const c=r(s);fetch(s.href,c)}})();function Ao(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var js={exports:{}},yo={},Gs={exports:{}},Fe={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ud;function Rh(){if(ud)return Fe;ud=1;var e=Symbol.for("react.element"),i=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),h=Symbol.iterator;function b(A){return A===null||typeof A!="object"?null:(A=h&&A[h]||A["@@iterator"],typeof A=="function"?A:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,S={};function R(A,U,k){this.props=A,this.context=U,this.refs=S,this.updater=k||E}R.prototype.isReactComponent={},R.prototype.setState=function(A,U){if(typeof A!="object"&&typeof A!="function"&&A!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,A,U,"setState")},R.prototype.forceUpdate=function(A){this.updater.enqueueForceUpdate(this,A,"forceUpdate")};function N(){}N.prototype=R.prototype;function L(A,U,k){this.props=A,this.context=U,this.refs=S,this.updater=k||E}var z=L.prototype=new N;z.constructor=L,w(z,R.prototype),z.isPureReactComponent=!0;var W=Array.isArray,Q=Object.prototype.hasOwnProperty,M={current:null},q={key:!0,ref:!0,__self:!0,__source:!0};function ne(A,U,k){var ke,Me={},we=null,$e=null;if(U!=null)for(ke in U.ref!==void 0&&($e=U.ref),U.key!==void 0&&(we=""+U.key),U)Q.call(U,ke)&&!q.hasOwnProperty(ke)&&(Me[ke]=U[ke]);var De=arguments.length-2;if(De===1)Me.children=k;else if(1>>1,U=G[A];if(0>>1;As(Me,v))wes($e,Me)?(G[A]=$e,G[we]=v,A=we):(G[A]=Me,G[ke]=v,A=ke);else if(wes($e,v))G[A]=$e,G[we]=v,A=we;else break e}}return ue}function s(G,ue){var v=G.sortIndex-ue.sortIndex;return v!==0?v:G.id-ue.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,d=u.now();e.unstable_now=function(){return u.now()-d}}var p=[],m=[],y=1,h=null,b=3,E=!1,w=!1,S=!1,R=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,L=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function z(G){for(var ue=r(m);ue!==null;){if(ue.callback===null)l(m);else if(ue.startTime<=G)l(m),ue.sortIndex=ue.expirationTime,i(p,ue);else break;ue=r(m)}}function W(G){if(S=!1,z(G),!w)if(r(p)!==null)w=!0,se(Q);else{var ue=r(m);ue!==null&&P(W,ue.startTime-G)}}function Q(G,ue){w=!1,S&&(S=!1,N(ne),ne=-1),E=!0;var v=b;try{for(z(ue),h=r(p);h!==null&&(!(h.expirationTime>ue)||G&&!K());){var A=h.callback;if(typeof A=="function"){h.callback=null,b=h.priorityLevel;var U=A(h.expirationTime<=ue);ue=e.unstable_now(),typeof U=="function"?h.callback=U:h===r(p)&&l(p),z(ue)}else l(p);h=r(p)}if(h!==null)var k=!0;else{var ke=r(m);ke!==null&&P(W,ke.startTime-ue),k=!1}return k}finally{h=null,b=v,E=!1}}var M=!1,q=null,ne=-1,X=5,I=-1;function K(){return!(e.unstable_now()-IG||125A?(G.sortIndex=v,i(m,G),r(p)===null&&G===r(m)&&(S?(N(ne),ne=-1):S=!0,P(W,v-A))):(G.sortIndex=U,i(p,G),w||E||(w=!0,se(Q))),G},e.unstable_shouldYield=K,e.unstable_wrapCallback=function(G){var ue=b;return function(){var v=b;b=ue;try{return G.apply(this,arguments)}finally{b=v}}}})(Vs)),Vs}var md;function Dh(){return md||(md=1,Ws.exports=Lh()),Ws.exports}/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var gd;function Ph(){if(gd)return Yt;gd=1;var e=Nu(),i=Dh();function r(t){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+t,o=1;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),p=Object.prototype.hasOwnProperty,m=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,y={},h={};function b(t){return p.call(h,t)?!0:p.call(y,t)?!1:m.test(t)?h[t]=!0:(y[t]=!0,!1)}function E(t,n,o,a){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return a?!1:o!==null?!o.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function w(t,n,o,a){if(n===null||typeof n>"u"||E(t,n,o,a))return!0;if(a)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function S(t,n,o,a,f,g,_){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=a,this.attributeNamespace=f,this.mustUseProperty=o,this.propertyName=t,this.type=n,this.sanitizeURL=g,this.removeEmptyString=_}var R={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){R[t]=new S(t,0,!1,t,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var n=t[0];R[n]=new S(n,1,!1,t[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(t){R[t]=new S(t,2,!1,t.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){R[t]=new S(t,2,!1,t,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){R[t]=new S(t,3,!1,t.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(t){R[t]=new S(t,3,!0,t,null,!1,!1)}),["capture","download"].forEach(function(t){R[t]=new S(t,4,!1,t,null,!1,!1)}),["cols","rows","size","span"].forEach(function(t){R[t]=new S(t,6,!1,t,null,!1,!1)}),["rowSpan","start"].forEach(function(t){R[t]=new S(t,5,!1,t.toLowerCase(),null,!1,!1)});var N=/[\-:]([a-z])/g;function L(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var n=t.replace(N,L);R[n]=new S(n,1,!1,t,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var n=t.replace(N,L);R[n]=new S(n,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(t){var n=t.replace(N,L);R[n]=new S(n,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(t){R[t]=new S(t,1,!1,t.toLowerCase(),null,!1,!1)}),R.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(t){R[t]=new S(t,1,!1,t.toLowerCase(),null,!0,!0)});function z(t,n,o,a){var f=R.hasOwnProperty(n)?R[n]:null;(f!==null?f.type!==0:a||!(2x||f[_]!==g[x]){var T=` -`+f[_].replace(" at new "," at ");return t.displayName&&T.includes("")&&(T=T.replace("",t.displayName)),T}while(1<=_&&0<=x);break}}}finally{k=!1,Error.prepareStackTrace=o}return(t=t?t.displayName||t.name:"")?U(t):""}function Me(t){switch(t.tag){case 5:return U(t.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return t=ke(t.type,!1),t;case 11:return t=ke(t.type.render,!1),t;case 1:return t=ke(t.type,!0),t;default:return""}}function we(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case q:return"Fragment";case M:return"Portal";case X:return"Profiler";case ne:return"StrictMode";case re:return"Suspense";case Z:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case K:return(t.displayName||"Context")+".Consumer";case I:return(t._context.displayName||"Context")+".Provider";case Y:var n=t.render;return t=t.displayName,t||(t=n.displayName||n.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case $:return n=t.displayName||null,n!==null?n:we(t.type)||"Memo";case se:n=t._payload,t=t._init;try{return we(t(n))}catch{}}return null}function $e(t){var n=t.type;switch(t.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=n.render,t=t.displayName||t.name||"",n.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return we(n);case 8:return n===ne?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function De(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Ge(t){var n=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Xe(t){var n=Ge(t)?"checked":"value",o=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),a=""+t[n];if(!t.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var f=o.get,g=o.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return f.call(this)},set:function(_){a=""+_,g.call(this,_)}}),Object.defineProperty(t,n,{enumerable:o.enumerable}),{getValue:function(){return a},setValue:function(_){a=""+_},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function Xt(t){t._valueTracker||(t._valueTracker=Xe(t))}function rr(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var o=n.getValue(),a="";return t&&(a=Ge(t)?t.checked?"true":"false":t.value),t=a,t!==o?(n.setValue(t),!0):!1}function An(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Hn(t,n){var o=n.checked;return v({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??t._wrapperState.initialChecked})}function jn(t,n){var o=n.defaultValue==null?"":n.defaultValue,a=n.checked!=null?n.checked:n.defaultChecked;o=De(n.value!=null?n.value:o),t._wrapperState={initialChecked:a,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Ke(t,n){n=n.checked,n!=null&&z(t,"checked",n,!1)}function Jt(t,n){Ke(t,n);var o=De(n.value),a=n.type;if(o!=null)a==="number"?(o===0&&t.value===""||t.value!=o)&&(t.value=""+o):t.value!==""+o&&(t.value=""+o);else if(a==="submit"||a==="reset"){t.removeAttribute("value");return}n.hasOwnProperty("value")?Rn(t,n.type,o):n.hasOwnProperty("defaultValue")&&Rn(t,n.type,De(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(t.defaultChecked=!!n.defaultChecked)}function an(t,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var a=n.type;if(!(a!=="submit"&&a!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+t._wrapperState.initialValue,o||n===t.value||(t.value=n),t.defaultValue=n}o=t.name,o!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,o!==""&&(t.name=o)}function Rn(t,n,o){(n!=="number"||An(t.ownerDocument)!==t)&&(o==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+o&&(t.defaultValue=""+o))}var bn=Array.isArray;function On(t,n,o,a){if(t=t.options,n){n={};for(var f=0;f"+n.valueOf().toString()+"",n=Te.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;n.firstChild;)t.appendChild(n.firstChild)}});function He(t,n){if(n){var o=t.firstChild;if(o&&o===t.lastChild&&o.nodeType===3){o.nodeValue=n;return}}t.textContent=n}var _t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},En=["Webkit","ms","Moz","O"];Object.keys(_t).forEach(function(t){En.forEach(function(n){n=n+t.charAt(0).toUpperCase()+t.substring(1),_t[n]=_t[t]})});function jt(t,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||_t.hasOwnProperty(t)&&_t[t]?(""+n).trim():n+"px"}function _n(t,n){t=t.style;for(var o in n)if(n.hasOwnProperty(o)){var a=o.indexOf("--")===0,f=jt(o,n[o],a);o==="float"&&(o="cssFloat"),a?t.setProperty(o,f):t[o]=f}}var Gn=v({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vt(t,n){if(n){if(Gn[t]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(r(137,t));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(r(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(r(61))}if(n.style!=null&&typeof n.style!="object")throw Error(r(62))}}function un(t,n){if(t.indexOf("-")===-1)return typeof n.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Tt=null;function ei(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var ti=null,ir=null,Kn=null;function Wn(t){if(t=to(t)){if(typeof ti!="function")throw Error(r(280));var n=t.stateNode;n&&(n=nl(n),ti(t.stateNode,t.type,n))}}function C(t){ir?Kn?Kn.push(t):Kn=[t]:ir=t}function V(){if(ir){var t=ir,n=Kn;if(Kn=ir=null,Wn(t),n)for(t=0;t>>=0,t===0?32:31-(Mn(t)/ii|0)|0}var Ft=64,Ir=4194304;function lr(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Mr(t,n){var o=t.pendingLanes;if(o===0)return 0;var a=0,f=t.suspendedLanes,g=t.pingedLanes,_=o&268435455;if(_!==0){var x=_&~f;x!==0?a=lr(x):(g&=_,g!==0&&(a=lr(g)))}else _=o&~f,_!==0?a=lr(_):g!==0&&(a=lr(g));if(a===0)return 0;if(n!==0&&n!==a&&(n&f)===0&&(f=a&-a,g=n&-n,f>=g||f===16&&(g&4194240)!==0))return n;if((a&4)!==0&&(a|=o&16),n=t.entangledLanes,n!==0)for(t=t.entanglements,n&=a;0o;o++)n.push(t);return n}function sr(t,n,o){t.pendingLanes|=n,n!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,n=31-ut(n),t[n]=o}function cn(t,n){var o=t.pendingLanes&~n;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=n,t.mutableReadLanes&=n,t.entangledLanes&=n,n=t.entanglements;var a=t.eventTimes;for(t=t.expirationTimes;0=Wi),tc=" ",nc=!1;function rc(t,n){switch(t){case"keyup":return wg.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ic(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ai=!1;function Sg(t,n){switch(t){case"compositionend":return ic(n);case"keypress":return n.which!==32?null:(nc=!0,tc);case"textInput":return t=n.data,t===tc&&nc?null:t;default:return null}}function Ng(t,n){if(ai)return t==="compositionend"||!wa&&rc(t,n)?(t=Yu(),Ko=ya=cr=null,ai=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:o,offset:n-t};t=a}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=fc(o)}}function pc(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?pc(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function mc(){for(var t=window,n=An();n instanceof t.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)t=n.contentWindow;else break;n=An(t.document)}return n}function Na(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}function Dg(t){var n=mc(),o=t.focusedElem,a=t.selectionRange;if(n!==o&&o&&o.ownerDocument&&pc(o.ownerDocument.documentElement,o)){if(a!==null&&Na(o)){if(n=a.start,t=a.end,t===void 0&&(t=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(t,o.value.length);else if(t=(n=o.ownerDocument||document)&&n.defaultView||window,t.getSelection){t=t.getSelection();var f=o.textContent.length,g=Math.min(a.start,f);a=a.end===void 0?g:Math.min(a.end,f),!t.extend&&g>a&&(f=a,a=g,g=f),f=dc(o,g);var _=dc(o,a);f&&_&&(t.rangeCount!==1||t.anchorNode!==f.node||t.anchorOffset!==f.offset||t.focusNode!==_.node||t.focusOffset!==_.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),t.removeAllRanges(),g>a?(t.addRange(n),t.extend(_.node,_.offset)):(n.setEnd(_.node,_.offset),t.addRange(n)))}}for(n=[],t=o;t=t.parentNode;)t.nodeType===1&&n.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o=document.documentMode,si=null,Ca=null,Qi=null,Ta=!1;function gc(t,n,o){var a=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;Ta||si==null||si!==An(a)||(a=si,"selectionStart"in a&&Na(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qi&&Yi(Qi,a)||(Qi=a,a=Jo(Ca,"onSelect"),0pi||(t.current=Ua[pi],Ua[pi]=null,pi--)}function nt(t,n){pi++,Ua[pi]=t.current,t.current=n}var mr={},Ot=pr(mr),Gt=pr(!1),zr=mr;function mi(t,n){var o=t.type.contextTypes;if(!o)return mr;var a=t.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===n)return a.__reactInternalMemoizedMaskedChildContext;var f={},g;for(g in o)f[g]=n[g];return a&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=n,t.__reactInternalMemoizedMaskedChildContext=f),f}function Kt(t){return t=t.childContextTypes,t!=null}function rl(){ot(Gt),ot(Ot)}function Rc(t,n,o){if(Ot.current!==mr)throw Error(r(168));nt(Ot,n),nt(Gt,o)}function Oc(t,n,o){var a=t.stateNode;if(n=n.childContextTypes,typeof a.getChildContext!="function")return o;a=a.getChildContext();for(var f in a)if(!(f in n))throw Error(r(108,$e(t)||"Unknown",f));return v({},o,a)}function il(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||mr,zr=Ot.current,nt(Ot,t),nt(Gt,Gt.current),!0}function Ic(t,n,o){var a=t.stateNode;if(!a)throw Error(r(169));o?(t=Oc(t,n,zr),a.__reactInternalMemoizedMergedChildContext=t,ot(Gt),ot(Ot),nt(Ot,t)):ot(Gt),nt(Gt,o)}var Yn=null,ol=!1,$a=!1;function Mc(t){Yn===null?Yn=[t]:Yn.push(t)}function Vg(t){ol=!0,Mc(t)}function gr(){if(!$a&&Yn!==null){$a=!0;var t=0,n=Ve;try{var o=Yn;for(Ve=1;t>=_,f-=_,Qn=1<<32-ut(n)+f|o<Oe?(Ct=Ne,Ne=null):Ct=Ne.sibling;var Ye=J(D,Ne,F[Oe],le);if(Ye===null){Ne===null&&(Ne=Ct);break}t&&Ne&&Ye.alternate===null&&n(D,Ne),O=g(Ye,O,Oe),Se===null?_e=Ye:Se.sibling=Ye,Se=Ye,Ne=Ct}if(Oe===F.length)return o(D,Ne),at&&Br(D,Oe),_e;if(Ne===null){for(;OeOe?(Ct=Ne,Ne=null):Ct=Ne.sibling;var xr=J(D,Ne,Ye.value,le);if(xr===null){Ne===null&&(Ne=Ct);break}t&&Ne&&xr.alternate===null&&n(D,Ne),O=g(xr,O,Oe),Se===null?_e=xr:Se.sibling=xr,Se=xr,Ne=Ct}if(Ye.done)return o(D,Ne),at&&Br(D,Oe),_e;if(Ne===null){for(;!Ye.done;Oe++,Ye=F.next())Ye=te(D,Ye.value,le),Ye!==null&&(O=g(Ye,O,Oe),Se===null?_e=Ye:Se.sibling=Ye,Se=Ye);return at&&Br(D,Oe),_e}for(Ne=a(D,Ne);!Ye.done;Oe++,Ye=F.next())Ye=pe(Ne,D,Oe,Ye.value,le),Ye!==null&&(t&&Ye.alternate!==null&&Ne.delete(Ye.key===null?Oe:Ye.key),O=g(Ye,O,Oe),Se===null?_e=Ye:Se.sibling=Ye,Se=Ye);return t&&Ne.forEach(function(Ch){return n(D,Ch)}),at&&Br(D,Oe),_e}function ht(D,O,F,le){if(typeof F=="object"&&F!==null&&F.type===q&&F.key===null&&(F=F.props.children),typeof F=="object"&&F!==null){switch(F.$$typeof){case Q:e:{for(var _e=F.key,Se=O;Se!==null;){if(Se.key===_e){if(_e=F.type,_e===q){if(Se.tag===7){o(D,Se.sibling),O=f(Se,F.props.children),O.return=D,D=O;break e}}else if(Se.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===se&&Bc(_e)===Se.type){o(D,Se.sibling),O=f(Se,F.props),O.ref=no(D,Se,F),O.return=D,D=O;break e}o(D,Se);break}else n(D,Se);Se=Se.sibling}F.type===q?(O=Vr(F.props.children,D.mode,le,F.key),O.return=D,D=O):(le=Ml(F.type,F.key,F.props,null,D.mode,le),le.ref=no(D,O,F),le.return=D,D=le)}return _(D);case M:e:{for(Se=F.key;O!==null;){if(O.key===Se)if(O.tag===4&&O.stateNode.containerInfo===F.containerInfo&&O.stateNode.implementation===F.implementation){o(D,O.sibling),O=f(O,F.children||[]),O.return=D,D=O;break e}else{o(D,O);break}else n(D,O);O=O.sibling}O=Fs(F,D.mode,le),O.return=D,D=O}return _(D);case se:return Se=F._init,ht(D,O,Se(F._payload),le)}if(bn(F))return be(D,O,F,le);if(ue(F))return Ee(D,O,F,le);ul(D,F)}return typeof F=="string"&&F!==""||typeof F=="number"?(F=""+F,O!==null&&O.tag===6?(o(D,O.sibling),O=f(O,F),O.return=D,D=O):(o(D,O),O=zs(F,D.mode,le),O.return=D,D=O),_(D)):o(D,O)}return ht}var bi=Uc(!0),$c=Uc(!1),cl=pr(null),fl=null,Ei=null,Va=null;function qa(){Va=Ei=fl=null}function Ya(t){var n=cl.current;ot(cl),t._currentValue=n}function Qa(t,n,o){for(;t!==null;){var a=t.alternate;if((t.childLanes&n)!==n?(t.childLanes|=n,a!==null&&(a.childLanes|=n)):a!==null&&(a.childLanes&n)!==n&&(a.childLanes|=n),t===o)break;t=t.return}}function _i(t,n){fl=t,Va=Ei=null,t=t.dependencies,t!==null&&t.firstContext!==null&&((t.lanes&n)!==0&&(Wt=!0),t.firstContext=null)}function pn(t){var n=t._currentValue;if(Va!==t)if(t={context:t,memoizedValue:n,next:null},Ei===null){if(fl===null)throw Error(r(308));Ei=t,fl.dependencies={lanes:0,firstContext:t}}else Ei=Ei.next=t;return n}var Ur=null;function Za(t){Ur===null?Ur=[t]:Ur.push(t)}function Hc(t,n,o,a){var f=n.interleaved;return f===null?(o.next=o,Za(n)):(o.next=f.next,f.next=o),n.interleaved=o,Xn(t,a)}function Xn(t,n){t.lanes|=n;var o=t.alternate;for(o!==null&&(o.lanes|=n),o=t,t=t.return;t!==null;)t.childLanes|=n,o=t.alternate,o!==null&&(o.childLanes|=n),o=t,t=t.return;return o.tag===3?o.stateNode:null}var hr=!1;function Xa(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function jc(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Jn(t,n){return{eventTime:t,lane:n,tag:0,payload:null,callback:null,next:null}}function yr(t,n,o){var a=t.updateQueue;if(a===null)return null;if(a=a.shared,(qe&2)!==0){var f=a.pending;return f===null?n.next=n:(n.next=f.next,f.next=n),a.pending=n,Xn(t,o)}return f=a.interleaved,f===null?(n.next=n,Za(a)):(n.next=f.next,f.next=n),a.interleaved=n,Xn(t,o)}function dl(t,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var a=n.lanes;a&=t.pendingLanes,o|=a,n.lanes=o,Bi(t,o)}}function Gc(t,n){var o=t.updateQueue,a=t.alternate;if(a!==null&&(a=a.updateQueue,o===a)){var f=null,g=null;if(o=o.firstBaseUpdate,o!==null){do{var _={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};g===null?f=g=_:g=g.next=_,o=o.next}while(o!==null);g===null?f=g=n:g=g.next=n}else f=g=n;o={baseState:a.baseState,firstBaseUpdate:f,lastBaseUpdate:g,shared:a.shared,effects:a.effects},t.updateQueue=o;return}t=o.lastBaseUpdate,t===null?o.firstBaseUpdate=n:t.next=n,o.lastBaseUpdate=n}function pl(t,n,o,a){var f=t.updateQueue;hr=!1;var g=f.firstBaseUpdate,_=f.lastBaseUpdate,x=f.shared.pending;if(x!==null){f.shared.pending=null;var T=x,B=T.next;T.next=null,_===null?g=B:_.next=B,_=T;var ee=t.alternate;ee!==null&&(ee=ee.updateQueue,x=ee.lastBaseUpdate,x!==_&&(x===null?ee.firstBaseUpdate=B:x.next=B,ee.lastBaseUpdate=T))}if(g!==null){var te=f.baseState;_=0,ee=B=T=null,x=g;do{var J=x.lane,pe=x.eventTime;if((a&J)===J){ee!==null&&(ee=ee.next={eventTime:pe,lane:0,tag:x.tag,payload:x.payload,callback:x.callback,next:null});e:{var be=t,Ee=x;switch(J=n,pe=o,Ee.tag){case 1:if(be=Ee.payload,typeof be=="function"){te=be.call(pe,te,J);break e}te=be;break e;case 3:be.flags=be.flags&-65537|128;case 0:if(be=Ee.payload,J=typeof be=="function"?be.call(pe,te,J):be,J==null)break e;te=v({},te,J);break e;case 2:hr=!0}}x.callback!==null&&x.lane!==0&&(t.flags|=64,J=f.effects,J===null?f.effects=[x]:J.push(x))}else pe={eventTime:pe,lane:J,tag:x.tag,payload:x.payload,callback:x.callback,next:null},ee===null?(B=ee=pe,T=te):ee=ee.next=pe,_|=J;if(x=x.next,x===null){if(x=f.shared.pending,x===null)break;J=x,x=J.next,J.next=null,f.lastBaseUpdate=J,f.shared.pending=null}}while(!0);if(ee===null&&(T=te),f.baseState=T,f.firstBaseUpdate=B,f.lastBaseUpdate=ee,n=f.shared.interleaved,n!==null){f=n;do _|=f.lane,f=f.next;while(f!==n)}else g===null&&(f.shared.lanes=0);jr|=_,t.lanes=_,t.memoizedState=te}}function Kc(t,n,o){if(t=n.effects,n.effects=null,t!==null)for(n=0;no?o:4,t(!0);var a=rs.transition;rs.transition={};try{t(!1),n()}finally{Ve=o,rs.transition=a}}function ff(){return mn().memoizedState}function Zg(t,n,o){var a=vr(t);if(o={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null},df(t))pf(n,o);else if(o=Hc(t,n,o,a),o!==null){var f=Ut();Cn(o,t,a,f),mf(o,n,a)}}function Xg(t,n,o){var a=vr(t),f={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null};if(df(t))pf(n,f);else{var g=t.alternate;if(t.lanes===0&&(g===null||g.lanes===0)&&(g=n.lastRenderedReducer,g!==null))try{var _=n.lastRenderedState,x=g(_,o);if(f.hasEagerState=!0,f.eagerState=x,kn(x,_)){var T=n.interleaved;T===null?(f.next=f,Za(n)):(f.next=T.next,T.next=f),n.interleaved=f;return}}catch{}finally{}o=Hc(t,n,f,a),o!==null&&(f=Ut(),Cn(o,t,a,f),mf(o,n,a))}}function df(t){var n=t.alternate;return t===ft||n!==null&&n===ft}function pf(t,n){lo=hl=!0;var o=t.pending;o===null?n.next=n:(n.next=o.next,o.next=n),t.pending=n}function mf(t,n,o){if((o&4194240)!==0){var a=n.lanes;a&=t.pendingLanes,o|=a,n.lanes=o,Bi(t,o)}}var El={readContext:pn,useCallback:It,useContext:It,useEffect:It,useImperativeHandle:It,useInsertionEffect:It,useLayoutEffect:It,useMemo:It,useReducer:It,useRef:It,useState:It,useDebugValue:It,useDeferredValue:It,useTransition:It,useMutableSource:It,useSyncExternalStore:It,useId:It,unstable_isNewReconciler:!1},Jg={readContext:pn,useCallback:function(t,n){return zn().memoizedState=[t,n===void 0?null:n],t},useContext:pn,useEffect:nf,useImperativeHandle:function(t,n,o){return o=o!=null?o.concat([t]):null,yl(4194308,4,lf.bind(null,n,t),o)},useLayoutEffect:function(t,n){return yl(4194308,4,t,n)},useInsertionEffect:function(t,n){return yl(4,2,t,n)},useMemo:function(t,n){var o=zn();return n=n===void 0?null:n,t=t(),o.memoizedState=[t,n],t},useReducer:function(t,n,o){var a=zn();return n=o!==void 0?o(n):n,a.memoizedState=a.baseState=n,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:n},a.queue=t,t=t.dispatch=Zg.bind(null,ft,t),[a.memoizedState,t]},useRef:function(t){var n=zn();return t={current:t},n.memoizedState=t},useState:ef,useDebugValue:cs,useDeferredValue:function(t){return zn().memoizedState=t},useTransition:function(){var t=ef(!1),n=t[0];return t=Qg.bind(null,t[1]),zn().memoizedState=t,[n,t]},useMutableSource:function(){},useSyncExternalStore:function(t,n,o){var a=ft,f=zn();if(at){if(o===void 0)throw Error(r(407));o=o()}else{if(o=n(),Nt===null)throw Error(r(349));(Hr&30)!==0||Yc(a,n,o)}f.memoizedState=o;var g={value:o,getSnapshot:n};return f.queue=g,nf(Zc.bind(null,a,g,t),[t]),a.flags|=2048,uo(9,Qc.bind(null,a,g,o,n),void 0,null),o},useId:function(){var t=zn(),n=Nt.identifierPrefix;if(at){var o=Zn,a=Qn;o=(a&~(1<<32-ut(a)-1)).toString(32)+o,n=":"+n+"R"+o,o=ao++,0<\/script>",t=t.removeChild(t.firstChild)):typeof a.is=="string"?t=_.createElement(o,{is:a.is}):(t=_.createElement(o),o==="select"&&(_=t,a.multiple?_.multiple=!0:a.size&&(_.size=a.size))):t=_.createElementNS(t,o),t[Dn]=n,t[eo]=a,Lf(t,n,!1,!1),n.stateNode=t;e:{switch(_=un(o,a),o){case"dialog":it("cancel",t),it("close",t),f=a;break;case"iframe":case"object":case"embed":it("load",t),f=a;break;case"video":case"audio":for(f=0;fSi&&(n.flags|=128,a=!0,co(g,!1),n.lanes=4194304)}else{if(!a)if(t=ml(_),t!==null){if(n.flags|=128,a=!0,o=t.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),co(g,!0),g.tail===null&&g.tailMode==="hidden"&&!_.alternate&&!at)return Mt(n),null}else 2*st()-g.renderingStartTime>Si&&o!==1073741824&&(n.flags|=128,a=!0,co(g,!1),n.lanes=4194304);g.isBackwards?(_.sibling=n.child,n.child=_):(o=g.last,o!==null?o.sibling=_:n.child=_,g.last=_)}return g.tail!==null?(n=g.tail,g.rendering=n,g.tail=n.sibling,g.renderingStartTime=st(),n.sibling=null,o=ct.current,nt(ct,a?o&1|2:o&1),n):(Mt(n),null);case 22:case 23:return Ls(),a=n.memoizedState!==null,t!==null&&t.memoizedState!==null!==a&&(n.flags|=8192),a&&(n.mode&1)!==0?(rn&1073741824)!==0&&(Mt(n),n.subtreeFlags&6&&(n.flags|=8192)):Mt(n),null;case 24:return null;case 25:return null}throw Error(r(156,n.tag))}function ah(t,n){switch(ja(n),n.tag){case 1:return Kt(n.type)&&rl(),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return vi(),ot(Gt),ot(Ot),ns(),t=n.flags,(t&65536)!==0&&(t&128)===0?(n.flags=t&-65537|128,n):null;case 5:return es(n),null;case 13:if(ot(ct),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(r(340));yi()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return ot(ct),null;case 4:return vi(),null;case 10:return Ya(n.type._context),null;case 22:case 23:return Ls(),null;case 24:return null;default:return null}}var wl=!1,Lt=!1,sh=typeof WeakSet=="function"?WeakSet:Set,ye=null;function wi(t,n){var o=t.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(a){pt(t,n,a)}else o.current=null}function ks(t,n,o){try{o()}catch(a){pt(t,n,a)}}var zf=!1;function uh(t,n){if(La=jo,t=mc(),Na(t)){if("selectionStart"in t)var o={start:t.selectionStart,end:t.selectionEnd};else e:{o=(o=t.ownerDocument)&&o.defaultView||window;var a=o.getSelection&&o.getSelection();if(a&&a.rangeCount!==0){o=a.anchorNode;var f=a.anchorOffset,g=a.focusNode;a=a.focusOffset;try{o.nodeType,g.nodeType}catch{o=null;break e}var _=0,x=-1,T=-1,B=0,ee=0,te=t,J=null;t:for(;;){for(var pe;te!==o||f!==0&&te.nodeType!==3||(x=_+f),te!==g||a!==0&&te.nodeType!==3||(T=_+a),te.nodeType===3&&(_+=te.nodeValue.length),(pe=te.firstChild)!==null;)J=te,te=pe;for(;;){if(te===t)break t;if(J===o&&++B===f&&(x=_),J===g&&++ee===a&&(T=_),(pe=te.nextSibling)!==null)break;te=J,J=te.parentNode}te=pe}o=x===-1||T===-1?null:{start:x,end:T}}else o=null}o=o||{start:0,end:0}}else o=null;for(Da={focusedElem:t,selectionRange:o},jo=!1,ye=n;ye!==null;)if(n=ye,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,ye=t;else for(;ye!==null;){n=ye;try{var be=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(be!==null){var Ee=be.memoizedProps,ht=be.memoizedState,D=n.stateNode,O=D.getSnapshotBeforeUpdate(n.elementType===n.type?Ee:xn(n.type,Ee),ht);D.__reactInternalSnapshotBeforeUpdate=O}break;case 3:var F=n.stateNode.containerInfo;F.nodeType===1?F.textContent="":F.nodeType===9&&F.documentElement&&F.removeChild(F.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(le){pt(n,n.return,le)}if(t=n.sibling,t!==null){t.return=n.return,ye=t;break}ye=n.return}return be=zf,zf=!1,be}function fo(t,n,o){var a=n.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var f=a=a.next;do{if((f.tag&t)===t){var g=f.destroy;f.destroy=void 0,g!==void 0&&ks(n,o,g)}f=f.next}while(f!==a)}}function xl(t,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&t)===t){var a=o.create;o.destroy=a()}o=o.next}while(o!==n)}}function ws(t){var n=t.ref;if(n!==null){var o=t.stateNode;switch(t.tag){case 5:t=o;break;default:t=o}typeof n=="function"?n(t):n.current=t}}function Ff(t){var n=t.alternate;n!==null&&(t.alternate=null,Ff(n)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(n=t.stateNode,n!==null&&(delete n[Dn],delete n[eo],delete n[Ba],delete n[Kg],delete n[Wg])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Bf(t){return t.tag===5||t.tag===3||t.tag===4}function Uf(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Bf(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function xs(t,n,o){var a=t.tag;if(a===5||a===6)t=t.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(t,n):o.insertBefore(t,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(t,o)):(n=o,n.appendChild(t)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=tl));else if(a!==4&&(t=t.child,t!==null))for(xs(t,n,o),t=t.sibling;t!==null;)xs(t,n,o),t=t.sibling}function Ss(t,n,o){var a=t.tag;if(a===5||a===6)t=t.stateNode,n?o.insertBefore(t,n):o.appendChild(t);else if(a!==4&&(t=t.child,t!==null))for(Ss(t,n,o),t=t.sibling;t!==null;)Ss(t,n,o),t=t.sibling}var At=null,Sn=!1;function br(t,n,o){for(o=o.child;o!==null;)$f(t,n,o),o=o.sibling}function $f(t,n,o){if(Be&&typeof Be.onCommitFiberUnmount=="function")try{Be.onCommitFiberUnmount(ze,o)}catch{}switch(o.tag){case 5:Lt||wi(o,n);case 6:var a=At,f=Sn;At=null,br(t,n,o),At=a,Sn=f,At!==null&&(Sn?(t=At,o=o.stateNode,t.nodeType===8?t.parentNode.removeChild(o):t.removeChild(o)):At.removeChild(o.stateNode));break;case 18:At!==null&&(Sn?(t=At,o=o.stateNode,t.nodeType===8?Fa(t.parentNode,o):t.nodeType===1&&Fa(t,o),ji(t)):Fa(At,o.stateNode));break;case 4:a=At,f=Sn,At=o.stateNode.containerInfo,Sn=!0,br(t,n,o),At=a,Sn=f;break;case 0:case 11:case 14:case 15:if(!Lt&&(a=o.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){f=a=a.next;do{var g=f,_=g.destroy;g=g.tag,_!==void 0&&((g&2)!==0||(g&4)!==0)&&ks(o,n,_),f=f.next}while(f!==a)}br(t,n,o);break;case 1:if(!Lt&&(wi(o,n),a=o.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=o.memoizedProps,a.state=o.memoizedState,a.componentWillUnmount()}catch(x){pt(o,n,x)}br(t,n,o);break;case 21:br(t,n,o);break;case 22:o.mode&1?(Lt=(a=Lt)||o.memoizedState!==null,br(t,n,o),Lt=a):br(t,n,o);break;default:br(t,n,o)}}function Hf(t){var n=t.updateQueue;if(n!==null){t.updateQueue=null;var o=t.stateNode;o===null&&(o=t.stateNode=new sh),n.forEach(function(a){var f=bh.bind(null,t,a);o.has(a)||(o.add(a),a.then(f,f))})}}function Nn(t,n){var o=n.deletions;if(o!==null)for(var a=0;af&&(f=_),a&=~g}if(a=f,a=st()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*fh(a/1960))-a,10t?16:t,_r===null)var a=!1;else{if(t=_r,_r=null,Al=0,(qe&6)!==0)throw Error(r(331));var f=qe;for(qe|=4,ye=t.current;ye!==null;){var g=ye,_=g.child;if((ye.flags&16)!==0){var x=g.deletions;if(x!==null){for(var T=0;Tst()-Ts?Kr(t,0):Cs|=o),qt(t,n)}function td(t,n){n===0&&((t.mode&1)===0?n=1:(n=Ir,Ir<<=1,(Ir&130023424)===0&&(Ir=4194304)));var o=Ut();t=Xn(t,n),t!==null&&(sr(t,n,o),qt(t,o))}function yh(t){var n=t.memoizedState,o=0;n!==null&&(o=n.retryLane),td(t,o)}function bh(t,n){var o=0;switch(t.tag){case 13:var a=t.stateNode,f=t.memoizedState;f!==null&&(o=f.retryLane);break;case 19:a=t.stateNode;break;default:throw Error(r(314))}a!==null&&a.delete(n),td(t,o)}var nd;nd=function(t,n,o){if(t!==null)if(t.memoizedProps!==n.pendingProps||Gt.current)Wt=!0;else{if((t.lanes&o)===0&&(n.flags&128)===0)return Wt=!1,oh(t,n,o);Wt=(t.flags&131072)!==0}else Wt=!1,at&&(n.flags&1048576)!==0&&Lc(n,al,n.index);switch(n.lanes=0,n.tag){case 2:var a=n.type;kl(t,n),t=n.pendingProps;var f=mi(n,Ot.current);_i(n,o),f=os(null,n,a,t,f,o);var g=ls();return n.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Kt(a)?(g=!0,il(n)):g=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,Xa(n),f.updater=_l,n.stateNode=f,f._reactInternals=n,ds(n,a,t,o),n=hs(null,n,a,!0,g,o)):(n.tag=0,at&&g&&Ha(n),Bt(null,n,f,o),n=n.child),n;case 16:a=n.elementType;e:{switch(kl(t,n),t=n.pendingProps,f=a._init,a=f(a._payload),n.type=a,f=n.tag=_h(a),t=xn(a,t),f){case 0:n=gs(null,n,a,t,o);break e;case 1:n=Tf(null,n,a,t,o);break e;case 11:n=wf(null,n,a,t,o);break e;case 14:n=xf(null,n,a,xn(a.type,t),o);break e}throw Error(r(306,a,""))}return n;case 0:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:xn(a,f),gs(t,n,a,f,o);case 1:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:xn(a,f),Tf(t,n,a,f,o);case 3:e:{if(Af(n),t===null)throw Error(r(387));a=n.pendingProps,g=n.memoizedState,f=g.element,jc(t,n),pl(n,a,null,o);var _=n.memoizedState;if(a=_.element,g.isDehydrated)if(g={element:a,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},n.updateQueue.baseState=g,n.memoizedState=g,n.flags&256){f=ki(Error(r(423)),n),n=Rf(t,n,a,o,f);break e}else if(a!==f){f=ki(Error(r(424)),n),n=Rf(t,n,a,o,f);break e}else for(nn=dr(n.stateNode.containerInfo.firstChild),tn=n,at=!0,wn=null,o=$c(n,null,a,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(yi(),a===f){n=er(t,n,o);break e}Bt(t,n,a,o)}n=n.child}return n;case 5:return Wc(n),t===null&&Ka(n),a=n.type,f=n.pendingProps,g=t!==null?t.memoizedProps:null,_=f.children,Pa(a,f)?_=null:g!==null&&Pa(a,g)&&(n.flags|=32),Cf(t,n),Bt(t,n,_,o),n.child;case 6:return t===null&&Ka(n),null;case 13:return Of(t,n,o);case 4:return Ja(n,n.stateNode.containerInfo),a=n.pendingProps,t===null?n.child=bi(n,null,a,o):Bt(t,n,a,o),n.child;case 11:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:xn(a,f),wf(t,n,a,f,o);case 7:return Bt(t,n,n.pendingProps,o),n.child;case 8:return Bt(t,n,n.pendingProps.children,o),n.child;case 12:return Bt(t,n,n.pendingProps.children,o),n.child;case 10:e:{if(a=n.type._context,f=n.pendingProps,g=n.memoizedProps,_=f.value,nt(cl,a._currentValue),a._currentValue=_,g!==null)if(kn(g.value,_)){if(g.children===f.children&&!Gt.current){n=er(t,n,o);break e}}else for(g=n.child,g!==null&&(g.return=n);g!==null;){var x=g.dependencies;if(x!==null){_=g.child;for(var T=x.firstContext;T!==null;){if(T.context===a){if(g.tag===1){T=Jn(-1,o&-o),T.tag=2;var B=g.updateQueue;if(B!==null){B=B.shared;var ee=B.pending;ee===null?T.next=T:(T.next=ee.next,ee.next=T),B.pending=T}}g.lanes|=o,T=g.alternate,T!==null&&(T.lanes|=o),Qa(g.return,o,n),x.lanes|=o;break}T=T.next}}else if(g.tag===10)_=g.type===n.type?null:g.child;else if(g.tag===18){if(_=g.return,_===null)throw Error(r(341));_.lanes|=o,x=_.alternate,x!==null&&(x.lanes|=o),Qa(_,o,n),_=g.sibling}else _=g.child;if(_!==null)_.return=g;else for(_=g;_!==null;){if(_===n){_=null;break}if(g=_.sibling,g!==null){g.return=_.return,_=g;break}_=_.return}g=_}Bt(t,n,f.children,o),n=n.child}return n;case 9:return f=n.type,a=n.pendingProps.children,_i(n,o),f=pn(f),a=a(f),n.flags|=1,Bt(t,n,a,o),n.child;case 14:return a=n.type,f=xn(a,n.pendingProps),f=xn(a.type,f),xf(t,n,a,f,o);case 15:return Sf(t,n,n.type,n.pendingProps,o);case 17:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:xn(a,f),kl(t,n),n.tag=1,Kt(a)?(t=!0,il(n)):t=!1,_i(n,o),hf(n,a,f),ds(n,a,f,o),hs(null,n,a,!0,t,o);case 19:return Mf(t,n,o);case 22:return Nf(t,n,o)}throw Error(r(156,n.tag))};function rd(t,n){return zo(t,n)}function Eh(t,n,o,a){this.tag=t,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function hn(t,n,o,a){return new Eh(t,n,o,a)}function Ps(t){return t=t.prototype,!(!t||!t.isReactComponent)}function _h(t){if(typeof t=="function")return Ps(t)?1:0;if(t!=null){if(t=t.$$typeof,t===Y)return 11;if(t===$)return 14}return 2}function wr(t,n){var o=t.alternate;return o===null?(o=hn(t.tag,n,t.key,t.mode),o.elementType=t.elementType,o.type=t.type,o.stateNode=t.stateNode,o.alternate=t,t.alternate=o):(o.pendingProps=n,o.type=t.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=t.flags&14680064,o.childLanes=t.childLanes,o.lanes=t.lanes,o.child=t.child,o.memoizedProps=t.memoizedProps,o.memoizedState=t.memoizedState,o.updateQueue=t.updateQueue,n=t.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=t.sibling,o.index=t.index,o.ref=t.ref,o}function Ml(t,n,o,a,f,g){var _=2;if(a=t,typeof t=="function")Ps(t)&&(_=1);else if(typeof t=="string")_=5;else e:switch(t){case q:return Vr(o.children,f,g,n);case ne:_=8,f|=8;break;case X:return t=hn(12,o,n,f|2),t.elementType=X,t.lanes=g,t;case re:return t=hn(13,o,n,f),t.elementType=re,t.lanes=g,t;case Z:return t=hn(19,o,n,f),t.elementType=Z,t.lanes=g,t;case P:return Ll(o,f,g,n);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case I:_=10;break e;case K:_=9;break e;case Y:_=11;break e;case $:_=14;break e;case se:_=16,a=null;break e}throw Error(r(130,t==null?t:typeof t,""))}return n=hn(_,o,n,f),n.elementType=t,n.type=a,n.lanes=g,n}function Vr(t,n,o,a){return t=hn(7,t,a,n),t.lanes=o,t}function Ll(t,n,o,a){return t=hn(22,t,a,n),t.elementType=P,t.lanes=o,t.stateNode={isHidden:!1},t}function zs(t,n,o){return t=hn(6,t,null,n),t.lanes=o,t}function Fs(t,n,o){return n=hn(4,t.children!==null?t.children:[],t.key,n),n.lanes=o,n.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},n}function vh(t,n,o,a,f){this.tag=n,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ar(0),this.expirationTimes=ar(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ar(0),this.identifierPrefix=a,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function Bs(t,n,o,a,f,g,_,x,T){return t=new vh(t,n,o,x,T),n===1?(n=1,g===!0&&(n|=8)):n=0,g=hn(3,null,null,n),t.current=g,g.stateNode=t,g.memoizedState={element:a,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Xa(g),t}function kh(t,n,o){var a=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(i){console.error(i)}}return e(),Ks.exports=Ph(),Ks.exports}var yd;function Fh(){if(yd)return $l;yd=1;var e=zh();return $l.createRoot=e.createRoot,$l.hydrateRoot=e.hydrateRoot,$l}var Bh=Fh();const Uh=Ao(Bh);class $h{constructor(){Ci(this,"ws",null);Ci(this,"handlers",new Set);Ci(this,"queue",[]);Ci(this,"closedByUser",!1);Ci(this,"onStatus")}connect(){var l;this.closedByUser=!1,(l=this.onStatus)==null||l.call(this,"connecting");const i=location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${i}//${location.host}/ws`);r.onopen=()=>{var s;(s=this.onStatus)==null||s.call(this,"open");for(const c of this.queue)r.send(c);this.queue=[]},r.onmessage=s=>{try{const c=JSON.parse(s.data);for(const u of this.handlers)u(c)}catch{}},r.onclose=()=>{var s;(s=this.onStatus)==null||s.call(this,"closed"),this.closedByUser||setTimeout(()=>this.connect(),1500)},this.ws=r}send(i){var l;const r=JSON.stringify(i);((l=this.ws)==null?void 0:l.readyState)===WebSocket.OPEN?this.ws.send(r):this.queue.push(r)}close(){var i;this.closedByUser=!0,(i=this.ws)==null||i.close()}subscribe(i){return this.handlers.add(i),()=>this.handlers.delete(i)}}const xp="oxagenttwo.options",bd="oxagenttwo.session",Ed="oxagenttwo.systemPrompt";function Hh(){const e={model:"qwen3.5:latest",think:!0,tools:!0,temperature:.7,numPredict:2048,provider:"ollama",openrouterModel:"anthropic/claude-sonnet-4.5",memorySteps:10,memoryAnchors:!0,dreamAuto:!0};try{const i=localStorage.getItem(xp);if(i)return{...e,...JSON.parse(i)}}catch{}return e}function jh(){const e=fe.useRef(null),[i,r]=fe.useState("connecting"),[l,s]=fe.useState([]),[c,u]=fe.useState(()=>localStorage.getItem(bd)),[d,p]=fe.useState([]),[m,y]=fe.useState(!1),[h,b]=fe.useState({}),[E,w]=fe.useState(Hh),[S,R]=fe.useState(()=>localStorage.getItem(Ed)??""),[N,L]=fe.useState(null),z=fe.useRef(!1);fe.useEffect(()=>{const K=new $h;e.current=K,K.onStatus=r;const Y=K.subscribe(re=>{const Z=re.type;if(Z==="user-message"){const $=re.message;p(se=>se.some(P=>P.id===$.id)?se:[...se,$]),u(se=>se===$.session_id?se:$.session_id)}else if(Z==="assistant-start"){const $=re.message;p(se=>[...se,{...$,content:"",thinking:""}])}else if(Z==="thinking"){const $=re.text;p(se=>se.map(P=>P.id===re.messageId?{...P,thinking:(P.thinking??"")+$}:P))}else if(Z==="token"){const $=re.text;p(se=>se.map(P=>P.id===re.messageId?{...P,content:P.content+$}:P))}else Z==="tool-call"?b($=>({...$,[re.messageId]:[...$[re.messageId]??[],{name:re.name,args:re.args}]})):Z==="tool-result"?b($=>{const se=$[re.messageId]??[],P=[...se].reverse().findIndex(v=>v.name===re.name&&v.ok===void 0);if(P===-1)return $;const G=se.length-1-P,ue=se.map((v,A)=>A===G?{...v,ok:re.ok,durationMs:re.durationMs}:v);return{...$,[re.messageId]:ue}}):Z==="done"||Z==="error"?(z.current=!1,y(!1)):(Z==="sessions-changed"||Z==="session-deleted")&&W()});return K.connect(),()=>{Y(),K.close()}},[]);const W=fe.useCallback(async()=>{const Y=await(await fetch("/api/sessions")).json();s(Y),u(re=>{var Z;return re&&Y.some($=>$.id===re)?re:((Z=Y[0])==null?void 0:Z.id)??null})},[]);fe.useEffect(()=>{W()},[W]),fe.useEffect(()=>{fetch(`/api/model?name=${encodeURIComponent(E.model)}`).then(K=>K.json()).then(L).catch(()=>L({ok:!1,error:"Ollama nicht erreichbar"}))},[E.model]),fe.useEffect(()=>{if(!c){p([]);return}localStorage.setItem(bd,c),z.current=!1,y(!1),fetch(`/api/sessions/${c}/messages`).then(K=>K.json()).then(K=>p(Array.isArray(K)?K:[])).catch(()=>p([]))},[c]);const Q=fe.useCallback(K=>{w(Y=>{const re={...Y,...K};return localStorage.setItem(xp,JSON.stringify(re)),re})},[]),M=fe.useCallback(K=>{R(K),localStorage.setItem(Ed,K)},[]),q=fe.useCallback((K,Y=[])=>{var re;!K.trim()&&Y.length===0||z.current||!c||(z.current=!0,y(!0),(re=e.current)==null||re.send({type:"chat",sessionId:c,content:K,images:Y,options:E,systemPrompt:S}))},[c,E,S]),ne=fe.useCallback(()=>{var K;(K=e.current)==null||K.send({type:"abort"})},[]),X=fe.useCallback(async()=>{const Y=await(await fetch("/api/sessions",{method:"POST"})).json();await W(),u(Y.id)},[W]),I=fe.useCallback(async K=>{await fetch(`/api/sessions/${K}`,{method:"DELETE"}),s(Y=>Y.filter(re=>re.id!==K)),u(Y=>Y===K?null:Y),await W()},[W]);return{status:i,sessions:l,activeId:c,setActiveId:u,messages:d,streaming:m,toolEvents:h,sendMessage:q,abort:ne,newSession:X,deleteSession:I,options:E,setOptions:Q,systemPrompt:S,setSystemPrompt:M,modelInfo:N}}function Gh({onTranscript:e,onQueueDrained:i}){const[r,l]=fe.useState(!1),[s,c]=fe.useState(!1),[u,d]=fe.useState(!1),[p,m]=fe.useState(null),y=fe.useRef(null),h=fe.useRef([]),b=fe.useRef(null),E=fe.useRef(null),w=fe.useRef([]),S=fe.useRef(null),R=fe.useRef(!1),N=fe.useRef(null),L=fe.useRef(i);L.current=i;const z=fe.useRef(e);z.current=e;const W=fe.useCallback(async()=>{if(R.current)return;const X=w.current.shift();if(X===void 0){d(!1),L.current();return}R.current=!0,d(!0);try{N.current=new AbortController;const I=await fetch("/api/tts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:X}),signal:N.current.signal});if(!I.ok)throw new Error(`TTS HTTP ${I.status}`);const K=await I.blob(),Y=new Audio(URL.createObjectURL(K));S.current=Y,await new Promise(re=>{Y.onended=()=>re(),Y.onerror=()=>re(),Y.play().catch(()=>re())}),URL.revokeObjectURL(Y.src)}catch(I){I instanceof DOMException&&I.name==="AbortError"||m(I instanceof Error?I.message:String(I))}finally{R.current=!1,N.current=null,W()}},[]),Q=fe.useCallback(X=>{const I=X.trim();I&&(w.current.push(I),W())},[W]),M=fe.useCallback(()=>{var X;w.current=[],(X=N.current)==null||X.abort(),S.current&&(S.current.pause(),S.current.src=""),R.current=!1,d(!1)},[]),q=fe.useCallback(()=>{var X;E.current&&clearTimeout(E.current),E.current=null,((X=y.current)==null?void 0:X.state)==="recording"&&y.current.stop()},[]),ne=fe.useCallback(async()=>{var X;if(((X=y.current)==null?void 0:X.state)!=="recording"){m(null);try{const I=await navigator.mediaDevices.getUserMedia({audio:!0});b.current=I;const K=new MediaRecorder(I);h.current=[],K.ondataavailable=Y=>{Y.data.size>0&&h.current.push(Y.data)},K.onstop=async()=>{var re,Z;(re=b.current)==null||re.getTracks().forEach($=>$.stop()),b.current=null,l(!1);const Y=new Blob(h.current);if(h.current=[],!(Y.size<2e3)){c(!0);try{const se=await(await fetch("/api/stt",{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:Y})).json();if(!se.ok)throw new Error(se.error??"STT fehlgeschlagen");const P=(Z=se.text)==null?void 0:Z.trim();P?z.current(P):m("Nichts verstanden — bitte nochmal sprechen.")}catch($){m($ instanceof Error?$.message:String($))}finally{c(!1)}}},y.current=K,K.start(),l(!0),E.current=setTimeout(()=>q(),3e4)}catch(I){m(I instanceof Error?I.message:String(I))}}},[e,q]);return fe.useEffect(()=>()=>{var X,I;((X=y.current)==null?void 0:X.state)==="recording"&&y.current.stop(),(I=b.current)==null||I.getTracks().forEach(K=>K.stop()),M()},[]),{recording:r,transcribing:s,speaking:u,error:p,setError:m,startRecording:ne,stopRecording:q,enqueueSpeech:Q,cancelSpeech:M}}function Kh({sessions:e,activeId:i,onSelect:r,onNew:l,onDelete:s}){return H.jsxs("aside",{className:"sidebar",children:[H.jsxs("div",{className:"sidebar-header",children:[H.jsxs("div",{className:"brand",children:[H.jsx("span",{className:"brand-prompt",children:"▸"})," agenttwo-tools"]}),H.jsx("button",{className:"btn-new",onClick:l,children:"+ Neuer Chat"})]}),H.jsxs("nav",{className:"session-list",children:[e.length===0&&H.jsx("div",{className:"empty-hint",children:"Noch keine Sessions."}),e.map(c=>H.jsxs("div",{className:`session-item ${c.id===i?"active":""}`,onClick:()=>r(c.id),children:[H.jsx("span",{className:"session-title",children:c.title}),H.jsx("button",{className:"session-delete",title:"Session löschen",onClick:u=>{u.stopPropagation(),s(c.id)},children:"✕"})]},c.id))]})]})}function Wh(e,i){const r={};return(e[e.length-1]===""?[...e,""]:e).join((r.padRight?" ":"")+","+(r.padLeft===!1?"":" ")).trim()}const Vh=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,qh=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Yh={};function _d(e,i){return(Yh.jsx?qh:Vh).test(e)}const Qh=/[ \t\n\f\r]/g;function Zh(e){return typeof e=="object"?e.type==="text"?vd(e.value):!1:vd(e)}function vd(e){return e.replace(Qh,"")===""}class Ro{constructor(i,r,l){this.normal=r,this.property=i,l&&(this.space=l)}}Ro.prototype.normal={};Ro.prototype.property={};Ro.prototype.space=void 0;function Sp(e,i){const r={},l={};for(const s of e)Object.assign(r,s.property),Object.assign(l,s.normal);return new Ro(r,l,i)}function mu(e){return e.toLowerCase()}class Zt{constructor(i,r){this.attribute=r,this.property=i}}Zt.prototype.attribute="";Zt.prototype.booleanish=!1;Zt.prototype.boolean=!1;Zt.prototype.commaOrSpaceSeparated=!1;Zt.prototype.commaSeparated=!1;Zt.prototype.defined=!1;Zt.prototype.mustUseProperty=!1;Zt.prototype.number=!1;Zt.prototype.overloadedBoolean=!1;Zt.prototype.property="";Zt.prototype.spaceSeparated=!1;Zt.prototype.space=void 0;let Xh=0;const Le=Xr(),Et=Xr(),gu=Xr(),ie=Xr(),Je=Xr(),Qr=Xr(),on=Xr();function Xr(){return 2**++Xh}const hu=Object.freeze(Object.defineProperty({__proto__:null,boolean:Le,booleanish:Et,commaOrSpaceSeparated:on,commaSeparated:Qr,number:ie,overloadedBoolean:gu,spaceSeparated:Je},Symbol.toStringTag,{value:"Module"})),qs=Object.keys(hu);class Cu extends Zt{constructor(i,r,l,s){let c=-1;if(super(i,r),kd(this,"space",s),typeof l=="number")for(;++c4&&r.slice(0,4)==="data"&&ry.test(i)){if(i.charAt(4)==="-"){const c=i.slice(5).replace(wd,ly);l="data"+c.charAt(0).toUpperCase()+c.slice(1)}else{const c=i.slice(4);if(!wd.test(c)){let u=c.replace(ny,oy);u.charAt(0)!=="-"&&(u="-"+u),i="data"+u}}s=Cu}return new s(l,i)}function oy(e){return"-"+e.toLowerCase()}function ly(e){return e.charAt(1).toUpperCase()}const ay=Sp([Np,Jh,Ap,Rp,Op],"html"),Tu=Sp([Np,ey,Ap,Rp,Op],"svg");function sy(e){return e.join(" ").trim()}var Ti={},Ys,xd;function uy(){if(xd)return Ys;xd=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,i=/\n/g,r=/^\s*/,l=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,c=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,d=/^\s+|\s+$/g,p=` -`,m="/",y="*",h="",b="comment",E="declaration";function w(R,N){if(typeof R!="string")throw new TypeError("First argument must be a string");if(!R)return[];N=N||{};var L=1,z=1;function W(Z){var $=Z.match(i);$&&(L+=$.length);var se=Z.lastIndexOf(p);z=~se?Z.length-se:z+Z.length}function Q(){var Z={line:L,column:z};return function($){return $.position=new M(Z),X(),$}}function M(Z){this.start=Z,this.end={line:L,column:z},this.source=N.source}M.prototype.content=R;function q(Z){var $=new Error(N.source+":"+L+":"+z+": "+Z);if($.reason=Z,$.filename=N.source,$.line=L,$.column=z,$.source=R,!N.silent)throw $}function ne(Z){var $=Z.exec(R);if($){var se=$[0];return W(se),R=R.slice(se.length),$}}function X(){ne(r)}function I(Z){var $;for(Z=Z||[];$=K();)$!==!1&&Z.push($);return Z}function K(){var Z=Q();if(!(m!=R.charAt(0)||y!=R.charAt(1))){for(var $=2;h!=R.charAt($)&&(y!=R.charAt($)||m!=R.charAt($+1));)++$;if($+=2,h===R.charAt($-1))return q("End of comment missing");var se=R.slice(2,$-2);return z+=2,W(se),R=R.slice($),z+=2,Z({type:b,comment:se})}}function Y(){var Z=Q(),$=ne(l);if($){if(K(),!ne(s))return q("property missing ':'");var se=ne(c),P=Z({type:E,property:S($[0].replace(e,h)),value:se?S(se[0].replace(e,h)):h});return ne(u),P}}function re(){var Z=[];I(Z);for(var $;$=Y();)$!==!1&&(Z.push($),I(Z));return Z}return X(),re()}function S(R){return R?R.replace(d,h):h}return Ys=w,Ys}var Sd;function cy(){if(Sd)return Ti;Sd=1;var e=Ti&&Ti.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.default=r;const i=e(uy());function r(l,s){let c=null;if(!l||typeof l!="string")return c;const u=(0,i.default)(l),d=typeof s=="function";return u.forEach(p=>{if(p.type!=="declaration")return;const{property:m,value:y}=p;d?s(m,y,p):y&&(c=c||{},c[m]=y)}),c}return Ti}var bo={},Nd;function fy(){if(Nd)return bo;Nd=1,Object.defineProperty(bo,"__esModule",{value:!0}),bo.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,i=/-([a-z])/g,r=/^[^-]+$/,l=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,c=function(m){return!m||r.test(m)||e.test(m)},u=function(m,y){return y.toUpperCase()},d=function(m,y){return"".concat(y,"-")},p=function(m,y){return y===void 0&&(y={}),c(m)?m:(m=m.toLowerCase(),y.reactCompat?m=m.replace(s,d):m=m.replace(l,d),m.replace(i,u))};return bo.camelCase=p,bo}var Eo,Cd;function dy(){if(Cd)return Eo;Cd=1;var e=Eo&&Eo.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},i=e(cy()),r=fy();function l(s,c){var u={};return!s||typeof s!="string"||(0,i.default)(s,function(d,p){d&&p&&(u[(0,r.camelCase)(d,c)]=p)}),u}return l.default=l,Eo=l,Eo}var py=dy();const my=Ao(py),Ip=Mp("end"),Au=Mp("start");function Mp(e){return i;function i(r){const l=r&&r.position&&r.position[e]||{};if(typeof l.line=="number"&&l.line>0&&typeof l.column=="number"&&l.column>0)return{line:l.line,column:l.column,offset:typeof l.offset=="number"&&l.offset>-1?l.offset:void 0}}}function gy(e){const i=Au(e),r=Ip(e);if(i&&r)return{start:i,end:r}}function xo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Td(e.position):"start"in e||"end"in e?Td(e):"line"in e||"column"in e?yu(e):""}function yu(e){return Ad(e&&e.line)+":"+Ad(e&&e.column)}function Td(e){return yu(e&&e.start)+"-"+yu(e&&e.end)}function Ad(e){return e&&typeof e=="number"?e:1}class Pt extends Error{constructor(i,r,l){super(),typeof r=="string"&&(l=r,r=void 0);let s="",c={},u=!1;if(r&&("line"in r&&"column"in r?c={place:r}:"start"in r&&"end"in r?c={place:r}:"type"in r?c={ancestors:[r],place:r.position}:c={...r}),typeof i=="string"?s=i:!c.cause&&i&&(u=!0,s=i.message,c.cause=i),!c.ruleId&&!c.source&&typeof l=="string"){const p=l.indexOf(":");p===-1?c.ruleId=l:(c.source=l.slice(0,p),c.ruleId=l.slice(p+1))}if(!c.place&&c.ancestors&&c.ancestors){const p=c.ancestors[c.ancestors.length-1];p&&(c.place=p.position)}const d=c.place&&"start"in c.place?c.place.start:c.place;this.ancestors=c.ancestors||void 0,this.cause=c.cause||void 0,this.column=d?d.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=d?d.line:void 0,this.name=xo(c.place)||"1:1",this.place=c.place||void 0,this.reason=this.message,this.ruleId=c.ruleId||void 0,this.source=c.source||void 0,this.stack=u&&c.cause&&typeof c.cause.stack=="string"?c.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Pt.prototype.file="";Pt.prototype.name="";Pt.prototype.reason="";Pt.prototype.message="";Pt.prototype.stack="";Pt.prototype.column=void 0;Pt.prototype.line=void 0;Pt.prototype.ancestors=void 0;Pt.prototype.cause=void 0;Pt.prototype.fatal=void 0;Pt.prototype.place=void 0;Pt.prototype.ruleId=void 0;Pt.prototype.source=void 0;const Ru={}.hasOwnProperty,hy=new Map,yy=/[A-Z]/g,by=new Set(["table","tbody","thead","tfoot","tr"]),Ey=new Set(["td","th"]),Lp="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function _y(e,i){if(!i||i.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const r=i.filePath||void 0;let l;if(i.development){if(typeof i.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");l=Ty(r,i.jsxDEV)}else{if(typeof i.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof i.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");l=Cy(r,i.jsx,i.jsxs)}const s={Fragment:i.Fragment,ancestors:[],components:i.components||{},create:l,elementAttributeNameCase:i.elementAttributeNameCase||"react",evaluater:i.createEvaluater?i.createEvaluater():void 0,filePath:r,ignoreInvalidStyle:i.ignoreInvalidStyle||!1,passKeys:i.passKeys!==!1,passNode:i.passNode||!1,schema:i.space==="svg"?Tu:ay,stylePropertyNameCase:i.stylePropertyNameCase||"dom",tableCellAlignToStyle:i.tableCellAlignToStyle!==!1},c=Dp(s,e,void 0);return c&&typeof c!="string"?c:s.create(e,s.Fragment,{children:c||void 0},void 0)}function Dp(e,i,r){if(i.type==="element")return vy(e,i,r);if(i.type==="mdxFlowExpression"||i.type==="mdxTextExpression")return ky(e,i);if(i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement")return xy(e,i,r);if(i.type==="mdxjsEsm")return wy(e,i);if(i.type==="root")return Sy(e,i,r);if(i.type==="text")return Ny(e,i)}function vy(e,i,r){const l=e.schema;let s=l;i.tagName.toLowerCase()==="svg"&&l.space==="html"&&(s=Tu,e.schema=s),e.ancestors.push(i);const c=zp(e,i.tagName,!1),u=Ay(e,i);let d=Iu(e,i);return by.has(i.tagName)&&(d=d.filter(function(p){return typeof p=="string"?!Zh(p):!0})),Pp(e,u,c,i),Ou(u,d),e.ancestors.pop(),e.schema=l,e.create(i,c,u,r)}function ky(e,i){if(i.data&&i.data.estree&&e.evaluater){const l=i.data.estree.body[0];return l.type,e.evaluater.evaluateExpression(l.expression)}Co(e,i.position)}function wy(e,i){if(i.data&&i.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(i.data.estree);Co(e,i.position)}function xy(e,i,r){const l=e.schema;let s=l;i.name==="svg"&&l.space==="html"&&(s=Tu,e.schema=s),e.ancestors.push(i);const c=i.name===null?e.Fragment:zp(e,i.name,!0),u=Ry(e,i),d=Iu(e,i);return Pp(e,u,c,i),Ou(u,d),e.ancestors.pop(),e.schema=l,e.create(i,c,u,r)}function Sy(e,i,r){const l={};return Ou(l,Iu(e,i)),e.create(i,e.Fragment,l,r)}function Ny(e,i){return i.value}function Pp(e,i,r,l){typeof r!="string"&&r!==e.Fragment&&e.passNode&&(i.node=l)}function Ou(e,i){if(i.length>0){const r=i.length>1?i:i[0];r&&(e.children=r)}}function Cy(e,i,r){return l;function l(s,c,u,d){const m=Array.isArray(u.children)?r:i;return d?m(c,u,d):m(c,u)}}function Ty(e,i){return r;function r(l,s,c,u){const d=Array.isArray(c.children),p=Au(l);return i(s,c,u,d,{columnNumber:p?p.column-1:void 0,fileName:e,lineNumber:p?p.line:void 0},void 0)}}function Ay(e,i){const r={};let l,s;for(s in i.properties)if(s!=="children"&&Ru.call(i.properties,s)){const c=Oy(e,s,i.properties[s]);if(c){const[u,d]=c;e.tableCellAlignToStyle&&u==="align"&&typeof d=="string"&&Ey.has(i.tagName)?l=d:r[u]=d}}if(l){const c=r.style||(r.style={});c[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=l}return r}function Ry(e,i){const r={};for(const l of i.attributes)if(l.type==="mdxJsxExpressionAttribute")if(l.data&&l.data.estree&&e.evaluater){const c=l.data.estree.body[0];c.type;const u=c.expression;u.type;const d=u.properties[0];d.type,Object.assign(r,e.evaluater.evaluateExpression(d.argument))}else Co(e,i.position);else{const s=l.name;let c;if(l.value&&typeof l.value=="object")if(l.value.data&&l.value.data.estree&&e.evaluater){const d=l.value.data.estree.body[0];d.type,c=e.evaluater.evaluateExpression(d.expression)}else Co(e,i.position);else c=l.value===null?!0:l.value;r[s]=c}return r}function Iu(e,i){const r=[];let l=-1;const s=e.passKeys?new Map:hy;for(;++ls?0:s+i:i=i>s?s:i,r=r>0?r:0,l.length<1e4)u=Array.from(l),u.unshift(i,r),e.splice(...u);else for(r&&e.splice(i,r);c0?(ln(e,e.length,0,i),e):i}const Id={}.hasOwnProperty;function Bp(e){const i={};let r=-1;for(;++r13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)===65535||(r&65535)===65534||r>1114111?"�":String.fromCodePoint(r)}function Tn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ht=Nr(/[A-Za-z]/),Dt=Nr(/[\dA-Za-z]/),Uy=Nr(/[#-'*+\--9=?A-Z^-~]/);function Xl(e){return e!==null&&(e<32||e===127)}const bu=Nr(/\d/),$y=Nr(/[\dA-Fa-f]/),Hy=Nr(/[!-/:-@[-`{-~]/);function Ce(e){return e!==null&&e<-2}function et(e){return e!==null&&(e<0||e===32)}function Ue(e){return e===-2||e===-1||e===32}const ia=Nr(new RegExp("\\p{P}|\\p{S}","u")),Zr=Nr(/\s/);function Nr(e){return i;function i(r){return r!==null&&r>-1&&e.test(String.fromCharCode(r))}}function Li(e){const i=[];let r=-1,l=0,s=0;for(;++r55295&&c<57344){const d=e.charCodeAt(r+1);c<56320&&d>56319&&d<57344?(u=String.fromCharCode(c,d),s=1):u="�"}else u=String.fromCharCode(c);u&&(i.push(e.slice(l,r),encodeURIComponent(u)),l=r+s+1,u=""),s&&(r+=s,s=0)}return i.join("")+e.slice(l)}function We(e,i,r,l){const s=l?l-1:Number.POSITIVE_INFINITY;let c=0;return u;function u(p){return Ue(p)?(e.enter(r),d(p)):i(p)}function d(p){return Ue(p)&&c++u))return;const q=i.events.length;let ne=q,X,I;for(;ne--;)if(i.events[ne][0]==="exit"&&i.events[ne][1].type==="chunkFlow"){if(X){I=i.events[ne][1].end;break}X=!0}for(N(l),M=q;Mz;){const Q=r[W];i.containerState=Q[1],Q[0].exit.call(i,e)}r.length=z}function L(){s.write([null]),c=void 0,s=void 0,i.containerState._closeFlow=void 0}}function Vy(e,i,r){return We(e,e.attempt(this.parser.constructs.document,i,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ii(e){if(e===null||et(e)||Zr(e))return 1;if(ia(e))return 2}function oa(e,i,r){const l=[];let s=-1;for(;++s1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;const h={...e[l][1].end},b={...e[r][1].start};Ld(h,-p),Ld(b,p),u={type:p>1?"strongSequence":"emphasisSequence",start:h,end:{...e[l][1].end}},d={type:p>1?"strongSequence":"emphasisSequence",start:{...e[r][1].start},end:b},c={type:p>1?"strongText":"emphasisText",start:{...e[l][1].end},end:{...e[r][1].start}},s={type:p>1?"strong":"emphasis",start:{...u.start},end:{...d.end}},e[l][1].end={...u.start},e[r][1].start={...d.end},m=[],e[l][1].end.offset-e[l][1].start.offset&&(m=yn(m,[["enter",e[l][1],i],["exit",e[l][1],i]])),m=yn(m,[["enter",s,i],["enter",u,i],["exit",u,i],["enter",c,i]]),m=yn(m,oa(i.parser.constructs.insideSpan.null,e.slice(l+1,r),i)),m=yn(m,[["exit",c,i],["enter",d,i],["exit",d,i],["exit",s,i]]),e[r][1].end.offset-e[r][1].start.offset?(y=2,m=yn(m,[["enter",e[r][1],i],["exit",e[r][1],i]])):y=0,ln(e,l-1,r-l+3,m),r=l+m.length-y-2;break}}for(r=-1;++r0&&Ue(M)?We(e,L,"linePrefix",c+1)(M):L(M)}function L(M){return M===null||Ce(M)?e.check(Dd,S,W)(M):(e.enter("codeFlowValue"),z(M))}function z(M){return M===null||Ce(M)?(e.exit("codeFlowValue"),L(M)):(e.consume(M),z)}function W(M){return e.exit("codeFenced"),i(M)}function Q(M,q,ne){let X=0;return I;function I($){return M.enter("lineEnding"),M.consume($),M.exit("lineEnding"),K}function K($){return M.enter("codeFencedFence"),Ue($)?We(M,Y,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)($):Y($)}function Y($){return $===d?(M.enter("codeFencedFenceSequence"),re($)):ne($)}function re($){return $===d?(X++,M.consume($),re):X>=u?(M.exit("codeFencedFenceSequence"),Ue($)?We(M,Z,"whitespace")($):Z($)):ne($)}function Z($){return $===null||Ce($)?(M.exit("codeFencedFence"),q($)):ne($)}}}function ob(e,i,r){const l=this;return s;function s(u){return u===null?r(u):(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),c)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}const Zs={name:"codeIndented",tokenize:ab},lb={partial:!0,tokenize:sb};function ab(e,i,r){const l=this;return s;function s(m){return e.enter("codeIndented"),We(e,c,"linePrefix",5)(m)}function c(m){const y=l.events[l.events.length-1];return y&&y[1].type==="linePrefix"&&y[2].sliceSerialize(y[1],!0).length>=4?u(m):r(m)}function u(m){return m===null?p(m):Ce(m)?e.attempt(lb,u,p)(m):(e.enter("codeFlowValue"),d(m))}function d(m){return m===null||Ce(m)?(e.exit("codeFlowValue"),u(m)):(e.consume(m),d)}function p(m){return e.exit("codeIndented"),i(m)}}function sb(e,i,r){const l=this;return s;function s(u){return l.parser.lazy[l.now().line]?r(u):Ce(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),s):We(e,c,"linePrefix",5)(u)}function c(u){const d=l.events[l.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?i(u):Ce(u)?s(u):r(u)}}const ub={name:"codeText",previous:fb,resolve:cb,tokenize:db};function cb(e){let i=e.length-4,r=3,l,s;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[i][1].type==="lineEnding"||e[i][1].type==="space")){for(l=r;++l=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+i+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ithis.left.length?this.right.slice(this.right.length-l+this.left.length,this.right.length-i+this.left.length).reverse():this.left.slice(i).concat(this.right.slice(this.right.length-l+this.left.length).reverse())}splice(i,r,l){const s=r||0;this.setCursor(Math.trunc(i));const c=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return l&&_o(this.left,l),c.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(i){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(i)}pushMany(i){this.setCursor(Number.POSITIVE_INFINITY),_o(this.left,i)}unshift(i){this.setCursor(0),this.right.push(i)}unshiftMany(i){this.setCursor(0),_o(this.right,i.reverse())}setCursor(i){if(!(i===this.left.length||i>this.left.length&&this.right.length===0||i<0&&this.left.length===0))if(i=4?i(u):e.interrupt(l.parser.constructs.flow,r,i)(u)}}function Kp(e,i,r,l,s,c,u,d,p){const m=p||Number.POSITIVE_INFINITY;let y=0;return h;function h(N){return N===60?(e.enter(l),e.enter(s),e.enter(c),e.consume(N),e.exit(c),b):N===null||N===32||N===41||Xl(N)?r(N):(e.enter(l),e.enter(u),e.enter(d),e.enter("chunkString",{contentType:"string"}),S(N))}function b(N){return N===62?(e.enter(c),e.consume(N),e.exit(c),e.exit(s),e.exit(l),i):(e.enter(d),e.enter("chunkString",{contentType:"string"}),E(N))}function E(N){return N===62?(e.exit("chunkString"),e.exit(d),b(N)):N===null||N===60||Ce(N)?r(N):(e.consume(N),N===92?w:E)}function w(N){return N===60||N===62||N===92?(e.consume(N),E):E(N)}function S(N){return!y&&(N===null||N===41||et(N))?(e.exit("chunkString"),e.exit(d),e.exit(u),e.exit(l),i(N)):y999||E===null||E===91||E===93&&!p||E===94&&!d&&"_hiddenFootnoteSupport"in u.parser.constructs?r(E):E===93?(e.exit(c),e.enter(s),e.consume(E),e.exit(s),e.exit(l),i):Ce(E)?(e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),y):(e.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||E===91||E===93||Ce(E)||d++>999?(e.exit("chunkString"),y(E)):(e.consume(E),p||(p=!Ue(E)),E===92?b:h)}function b(E){return E===91||E===92||E===93?(e.consume(E),d++,h):h(E)}}function Vp(e,i,r,l,s,c){let u;return d;function d(b){return b===34||b===39||b===40?(e.enter(l),e.enter(s),e.consume(b),e.exit(s),u=b===40?41:b,p):r(b)}function p(b){return b===u?(e.enter(s),e.consume(b),e.exit(s),e.exit(l),i):(e.enter(c),m(b))}function m(b){return b===u?(e.exit(c),p(u)):b===null?r(b):Ce(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),We(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),y(b))}function y(b){return b===u||b===null||Ce(b)?(e.exit("chunkString"),m(b)):(e.consume(b),b===92?h:y)}function h(b){return b===u||b===92?(e.consume(b),y):y(b)}}function So(e,i){let r;return l;function l(s){return Ce(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),r=!0,l):Ue(s)?We(e,l,r?"linePrefix":"lineSuffix")(s):i(s)}}const _b={name:"definition",tokenize:kb},vb={partial:!0,tokenize:wb};function kb(e,i,r){const l=this;let s;return c;function c(E){return e.enter("definition"),u(E)}function u(E){return Wp.call(l,e,d,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(E)}function d(E){return s=Tn(l.sliceSerialize(l.events[l.events.length-1][1]).slice(1,-1)),E===58?(e.enter("definitionMarker"),e.consume(E),e.exit("definitionMarker"),p):r(E)}function p(E){return et(E)?So(e,m)(E):m(E)}function m(E){return Kp(e,y,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(E)}function y(E){return e.attempt(vb,h,h)(E)}function h(E){return Ue(E)?We(e,b,"whitespace")(E):b(E)}function b(E){return E===null||Ce(E)?(e.exit("definition"),l.parser.defined.push(s),i(E)):r(E)}}function wb(e,i,r){return l;function l(d){return et(d)?So(e,s)(d):r(d)}function s(d){return Vp(e,c,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(d)}function c(d){return Ue(d)?We(e,u,"whitespace")(d):u(d)}function u(d){return d===null||Ce(d)?i(d):r(d)}}const xb={name:"hardBreakEscape",tokenize:Sb};function Sb(e,i,r){return l;function l(c){return e.enter("hardBreakEscape"),e.consume(c),s}function s(c){return Ce(c)?(e.exit("hardBreakEscape"),i(c)):r(c)}}const Nb={name:"headingAtx",resolve:Cb,tokenize:Tb};function Cb(e,i){let r=e.length-2,l=3,s,c;return e[l][1].type==="whitespace"&&(l+=2),r-2>l&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(l===r-1||r-4>l&&e[r-2][1].type==="whitespace")&&(r-=l+1===r?2:4),r>l&&(s={type:"atxHeadingText",start:e[l][1].start,end:e[r][1].end},c={type:"chunkText",start:e[l][1].start,end:e[r][1].end,contentType:"text"},ln(e,l,r-l+1,[["enter",s,i],["enter",c,i],["exit",c,i],["exit",s,i]])),e}function Tb(e,i,r){let l=0;return s;function s(y){return e.enter("atxHeading"),c(y)}function c(y){return e.enter("atxHeadingSequence"),u(y)}function u(y){return y===35&&l++<6?(e.consume(y),u):y===null||et(y)?(e.exit("atxHeadingSequence"),d(y)):r(y)}function d(y){return y===35?(e.enter("atxHeadingSequence"),p(y)):y===null||Ce(y)?(e.exit("atxHeading"),i(y)):Ue(y)?We(e,d,"whitespace")(y):(e.enter("atxHeadingText"),m(y))}function p(y){return y===35?(e.consume(y),p):(e.exit("atxHeadingSequence"),d(y))}function m(y){return y===null||y===35||et(y)?(e.exit("atxHeadingText"),d(y)):(e.consume(y),m)}}const Ab=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],zd=["pre","script","style","textarea"],Rb={concrete:!0,name:"htmlFlow",resolveTo:Mb,tokenize:Lb},Ob={partial:!0,tokenize:Pb},Ib={partial:!0,tokenize:Db};function Mb(e){let i=e.length;for(;i--&&!(e[i][0]==="enter"&&e[i][1].type==="htmlFlow"););return i>1&&e[i-2][1].type==="linePrefix"&&(e[i][1].start=e[i-2][1].start,e[i+1][1].start=e[i-2][1].start,e.splice(i-2,2)),e}function Lb(e,i,r){const l=this;let s,c,u,d,p;return m;function m(k){return y(k)}function y(k){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(k),h}function h(k){return k===33?(e.consume(k),b):k===47?(e.consume(k),c=!0,S):k===63?(e.consume(k),s=3,l.interrupt?i:v):Ht(k)?(e.consume(k),u=String.fromCharCode(k),R):r(k)}function b(k){return k===45?(e.consume(k),s=2,E):k===91?(e.consume(k),s=5,d=0,w):Ht(k)?(e.consume(k),s=4,l.interrupt?i:v):r(k)}function E(k){return k===45?(e.consume(k),l.interrupt?i:v):r(k)}function w(k){const ke="CDATA[";return k===ke.charCodeAt(d++)?(e.consume(k),d===ke.length?l.interrupt?i:Y:w):r(k)}function S(k){return Ht(k)?(e.consume(k),u=String.fromCharCode(k),R):r(k)}function R(k){if(k===null||k===47||k===62||et(k)){const ke=k===47,Me=u.toLowerCase();return!ke&&!c&&zd.includes(Me)?(s=1,l.interrupt?i(k):Y(k)):Ab.includes(u.toLowerCase())?(s=6,ke?(e.consume(k),N):l.interrupt?i(k):Y(k)):(s=7,l.interrupt&&!l.parser.lazy[l.now().line]?r(k):c?L(k):z(k))}return k===45||Dt(k)?(e.consume(k),u+=String.fromCharCode(k),R):r(k)}function N(k){return k===62?(e.consume(k),l.interrupt?i:Y):r(k)}function L(k){return Ue(k)?(e.consume(k),L):I(k)}function z(k){return k===47?(e.consume(k),I):k===58||k===95||Ht(k)?(e.consume(k),W):Ue(k)?(e.consume(k),z):I(k)}function W(k){return k===45||k===46||k===58||k===95||Dt(k)?(e.consume(k),W):Q(k)}function Q(k){return k===61?(e.consume(k),M):Ue(k)?(e.consume(k),Q):z(k)}function M(k){return k===null||k===60||k===61||k===62||k===96?r(k):k===34||k===39?(e.consume(k),p=k,q):Ue(k)?(e.consume(k),M):ne(k)}function q(k){return k===p?(e.consume(k),p=null,X):k===null||Ce(k)?r(k):(e.consume(k),q)}function ne(k){return k===null||k===34||k===39||k===47||k===60||k===61||k===62||k===96||et(k)?Q(k):(e.consume(k),ne)}function X(k){return k===47||k===62||Ue(k)?z(k):r(k)}function I(k){return k===62?(e.consume(k),K):r(k)}function K(k){return k===null||Ce(k)?Y(k):Ue(k)?(e.consume(k),K):r(k)}function Y(k){return k===45&&s===2?(e.consume(k),se):k===60&&s===1?(e.consume(k),P):k===62&&s===4?(e.consume(k),A):k===63&&s===3?(e.consume(k),v):k===93&&s===5?(e.consume(k),ue):Ce(k)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(Ob,U,re)(k)):k===null||Ce(k)?(e.exit("htmlFlowData"),re(k)):(e.consume(k),Y)}function re(k){return e.check(Ib,Z,U)(k)}function Z(k){return e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),$}function $(k){return k===null||Ce(k)?re(k):(e.enter("htmlFlowData"),Y(k))}function se(k){return k===45?(e.consume(k),v):Y(k)}function P(k){return k===47?(e.consume(k),u="",G):Y(k)}function G(k){if(k===62){const ke=u.toLowerCase();return zd.includes(ke)?(e.consume(k),A):Y(k)}return Ht(k)&&u.length<8?(e.consume(k),u+=String.fromCharCode(k),G):Y(k)}function ue(k){return k===93?(e.consume(k),v):Y(k)}function v(k){return k===62?(e.consume(k),A):k===45&&s===2?(e.consume(k),v):Y(k)}function A(k){return k===null||Ce(k)?(e.exit("htmlFlowData"),U(k)):(e.consume(k),A)}function U(k){return e.exit("htmlFlow"),i(k)}}function Db(e,i,r){const l=this;return s;function s(u){return Ce(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),c):r(u)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}function Pb(e,i,r){return l;function l(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Oo,i,r)}}const zb={name:"htmlText",tokenize:Fb};function Fb(e,i,r){const l=this;let s,c,u;return d;function d(v){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(v),p}function p(v){return v===33?(e.consume(v),m):v===47?(e.consume(v),Q):v===63?(e.consume(v),z):Ht(v)?(e.consume(v),ne):r(v)}function m(v){return v===45?(e.consume(v),y):v===91?(e.consume(v),c=0,w):Ht(v)?(e.consume(v),L):r(v)}function y(v){return v===45?(e.consume(v),E):r(v)}function h(v){return v===null?r(v):v===45?(e.consume(v),b):Ce(v)?(u=h,P(v)):(e.consume(v),h)}function b(v){return v===45?(e.consume(v),E):h(v)}function E(v){return v===62?se(v):v===45?b(v):h(v)}function w(v){const A="CDATA[";return v===A.charCodeAt(c++)?(e.consume(v),c===A.length?S:w):r(v)}function S(v){return v===null?r(v):v===93?(e.consume(v),R):Ce(v)?(u=S,P(v)):(e.consume(v),S)}function R(v){return v===93?(e.consume(v),N):S(v)}function N(v){return v===62?se(v):v===93?(e.consume(v),N):S(v)}function L(v){return v===null||v===62?se(v):Ce(v)?(u=L,P(v)):(e.consume(v),L)}function z(v){return v===null?r(v):v===63?(e.consume(v),W):Ce(v)?(u=z,P(v)):(e.consume(v),z)}function W(v){return v===62?se(v):z(v)}function Q(v){return Ht(v)?(e.consume(v),M):r(v)}function M(v){return v===45||Dt(v)?(e.consume(v),M):q(v)}function q(v){return Ce(v)?(u=q,P(v)):Ue(v)?(e.consume(v),q):se(v)}function ne(v){return v===45||Dt(v)?(e.consume(v),ne):v===47||v===62||et(v)?X(v):r(v)}function X(v){return v===47?(e.consume(v),se):v===58||v===95||Ht(v)?(e.consume(v),I):Ce(v)?(u=X,P(v)):Ue(v)?(e.consume(v),X):se(v)}function I(v){return v===45||v===46||v===58||v===95||Dt(v)?(e.consume(v),I):K(v)}function K(v){return v===61?(e.consume(v),Y):Ce(v)?(u=K,P(v)):Ue(v)?(e.consume(v),K):X(v)}function Y(v){return v===null||v===60||v===61||v===62||v===96?r(v):v===34||v===39?(e.consume(v),s=v,re):Ce(v)?(u=Y,P(v)):Ue(v)?(e.consume(v),Y):(e.consume(v),Z)}function re(v){return v===s?(e.consume(v),s=void 0,$):v===null?r(v):Ce(v)?(u=re,P(v)):(e.consume(v),re)}function Z(v){return v===null||v===34||v===39||v===60||v===61||v===96?r(v):v===47||v===62||et(v)?X(v):(e.consume(v),Z)}function $(v){return v===47||v===62||et(v)?X(v):r(v)}function se(v){return v===62?(e.consume(v),e.exit("htmlTextData"),e.exit("htmlText"),i):r(v)}function P(v){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(v),e.exit("lineEnding"),G}function G(v){return Ue(v)?We(e,ue,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):ue(v)}function ue(v){return e.enter("htmlTextData"),u(v)}}const Du={name:"labelEnd",resolveAll:Hb,resolveTo:jb,tokenize:Gb},Bb={tokenize:Kb},Ub={tokenize:Wb},$b={tokenize:Vb};function Hb(e){let i=-1;const r=[];for(;++i=3&&(m===null||Ce(m))?(e.exit("thematicBreak"),i(m)):r(m)}function p(m){return m===s?(e.consume(m),l++,p):(e.exit("thematicBreakSequence"),Ue(m)?We(e,d,"whitespace")(m):d(m))}}const Qt={continuation:{tokenize:rE},exit:oE,name:"list",tokenize:nE},eE={partial:!0,tokenize:lE},tE={partial:!0,tokenize:iE};function nE(e,i,r){const l=this,s=l.events[l.events.length-1];let c=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,u=0;return d;function d(E){const w=l.containerState.type||(E===42||E===43||E===45?"listUnordered":"listOrdered");if(w==="listUnordered"?!l.containerState.marker||E===l.containerState.marker:bu(E)){if(l.containerState.type||(l.containerState.type=w,e.enter(w,{_container:!0})),w==="listUnordered")return e.enter("listItemPrefix"),E===42||E===45?e.check(Zl,r,m)(E):m(E);if(!l.interrupt||E===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),p(E)}return r(E)}function p(E){return bu(E)&&++u<10?(e.consume(E),p):(!l.interrupt||u<2)&&(l.containerState.marker?E===l.containerState.marker:E===41||E===46)?(e.exit("listItemValue"),m(E)):r(E)}function m(E){return e.enter("listItemMarker"),e.consume(E),e.exit("listItemMarker"),l.containerState.marker=l.containerState.marker||E,e.check(Oo,l.interrupt?r:y,e.attempt(eE,b,h))}function y(E){return l.containerState.initialBlankLine=!0,c++,b(E)}function h(E){return Ue(E)?(e.enter("listItemPrefixWhitespace"),e.consume(E),e.exit("listItemPrefixWhitespace"),b):r(E)}function b(E){return l.containerState.size=c+l.sliceSerialize(e.exit("listItemPrefix"),!0).length,i(E)}}function rE(e,i,r){const l=this;return l.containerState._closeFlow=void 0,e.check(Oo,s,c);function s(d){return l.containerState.furtherBlankLines=l.containerState.furtherBlankLines||l.containerState.initialBlankLine,We(e,i,"listItemIndent",l.containerState.size+1)(d)}function c(d){return l.containerState.furtherBlankLines||!Ue(d)?(l.containerState.furtherBlankLines=void 0,l.containerState.initialBlankLine=void 0,u(d)):(l.containerState.furtherBlankLines=void 0,l.containerState.initialBlankLine=void 0,e.attempt(tE,i,u)(d))}function u(d){return l.containerState._closeFlow=!0,l.interrupt=void 0,We(e,e.attempt(Qt,i,r),"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(d)}}function iE(e,i,r){const l=this;return We(e,s,"listItemIndent",l.containerState.size+1);function s(c){const u=l.events[l.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===l.containerState.size?i(c):r(c)}}function oE(e){e.exit(this.containerState.type)}function lE(e,i,r){const l=this;return We(e,s,"listItemPrefixWhitespace",l.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(c){const u=l.events[l.events.length-1];return!Ue(c)&&u&&u[1].type==="listItemPrefixWhitespace"?i(c):r(c)}}const Fd={name:"setextUnderline",resolveTo:aE,tokenize:sE};function aE(e,i){let r=e.length,l,s,c;for(;r--;)if(e[r][0]==="enter"){if(e[r][1].type==="content"){l=r;break}e[r][1].type==="paragraph"&&(s=r)}else e[r][1].type==="content"&&e.splice(r,1),!c&&e[r][1].type==="definition"&&(c=r);const u={type:"setextHeading",start:{...e[l][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",c?(e.splice(s,0,["enter",u,i]),e.splice(c+1,0,["exit",e[l][1],i]),e[l][1].end={...e[c][1].end}):e[l][1]=u,e.push(["exit",u,i]),e}function sE(e,i,r){const l=this;let s;return c;function c(m){let y=l.events.length,h;for(;y--;)if(l.events[y][1].type!=="lineEnding"&&l.events[y][1].type!=="linePrefix"&&l.events[y][1].type!=="content"){h=l.events[y][1].type==="paragraph";break}return!l.parser.lazy[l.now().line]&&(l.interrupt||h)?(e.enter("setextHeadingLine"),s=m,u(m)):r(m)}function u(m){return e.enter("setextHeadingLineSequence"),d(m)}function d(m){return m===s?(e.consume(m),d):(e.exit("setextHeadingLineSequence"),Ue(m)?We(e,p,"lineSuffix")(m):p(m))}function p(m){return m===null||Ce(m)?(e.exit("setextHeadingLine"),i(m)):r(m)}}const uE={tokenize:cE};function cE(e){const i=this,r=e.attempt(Oo,l,e.attempt(this.parser.constructs.flowInitial,s,We(e,e.attempt(this.parser.constructs.flow,s,e.attempt(gb,s)),"linePrefix")));return r;function l(c){if(c===null){e.consume(c);return}return e.enter("lineEndingBlank"),e.consume(c),e.exit("lineEndingBlank"),i.currentConstruct=void 0,r}function s(c){if(c===null){e.consume(c);return}return e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i.currentConstruct=void 0,r}}const fE={resolveAll:Yp()},dE=qp("string"),pE=qp("text");function qp(e){return{resolveAll:Yp(e==="text"?mE:void 0),tokenize:i};function i(r){const l=this,s=this.parser.constructs[e],c=r.attempt(s,u,d);return u;function u(y){return m(y)?c(y):d(y)}function d(y){if(y===null){r.consume(y);return}return r.enter("data"),r.consume(y),p}function p(y){return m(y)?(r.exit("data"),c(y)):(r.consume(y),p)}function m(y){if(y===null)return!0;const h=s[y];let b=-1;if(h)for(;++b-1){const d=u[0];typeof d=="string"?u[0]=d.slice(l):u.shift()}c>0&&u.push(e[s].slice(0,c))}return u}function CE(e,i){let r=-1;const l=[];let s;for(;++r0){const _t=Te.tokenStack[Te.tokenStack.length-1];(_t[1]||Ud).call(Te,void 0,_t[0])}for(ae.position={start:Sr(j.length>0?j[0][1].start:{line:1,column:1,offset:0}),end:Sr(j.length>0?j[j.length-2][1].end:{line:1,column:1,offset:0})},He=-1;++He0&&(l.className=["language-"+s[0]]);let c={type:"element",tagName:"code",properties:l,children:[{type:"text",value:r}]};return i.meta&&(c.data={meta:i.meta}),e.patch(i,c),c=e.applyData(i,c),c={type:"element",tagName:"pre",properties:{},children:[c]},e.patch(i,c),c}function $E(e,i){const r={type:"element",tagName:"del",properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function HE(e,i){const r={type:"element",tagName:"em",properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function jE(e,i){const r=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",l=String(i.identifier).toUpperCase(),s=Li(l.toLowerCase()),c=e.footnoteOrder.indexOf(l);let u,d=e.footnoteCounts.get(l);d===void 0?(d=0,e.footnoteOrder.push(l),u=e.footnoteOrder.length):u=c+1,d+=1,e.footnoteCounts.set(l,d);const p={type:"element",tagName:"a",properties:{href:"#"+r+"fn-"+s,id:r+"fnref-"+s+(d>1?"-"+d:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(u)}]};e.patch(i,p);const m={type:"element",tagName:"sup",properties:{},children:[p]};return e.patch(i,m),e.applyData(i,m)}function GE(e,i){const r={type:"element",tagName:"h"+i.depth,properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function KE(e,i){if(e.options.allowDangerousHtml){const r={type:"raw",value:i.value};return e.patch(i,r),e.applyData(i,r)}}function Xp(e,i){const r=i.referenceType;let l="]";if(r==="collapsed"?l+="[]":r==="full"&&(l+="["+(i.label||i.identifier)+"]"),i.type==="imageReference")return[{type:"text",value:"!["+i.alt+l}];const s=e.all(i),c=s[0];c&&c.type==="text"?c.value="["+c.value:s.unshift({type:"text",value:"["});const u=s[s.length-1];return u&&u.type==="text"?u.value+=l:s.push({type:"text",value:l}),s}function WE(e,i){const r=String(i.identifier).toUpperCase(),l=e.definitionById.get(r);if(!l)return Xp(e,i);const s={src:Li(l.url||""),alt:i.alt};l.title!==null&&l.title!==void 0&&(s.title=l.title);const c={type:"element",tagName:"img",properties:s,children:[]};return e.patch(i,c),e.applyData(i,c)}function VE(e,i){const r={src:Li(i.url)};i.alt!==null&&i.alt!==void 0&&(r.alt=i.alt),i.title!==null&&i.title!==void 0&&(r.title=i.title);const l={type:"element",tagName:"img",properties:r,children:[]};return e.patch(i,l),e.applyData(i,l)}function qE(e,i){const r={type:"text",value:i.value.replace(/\r?\n|\r/g," ")};e.patch(i,r);const l={type:"element",tagName:"code",properties:{},children:[r]};return e.patch(i,l),e.applyData(i,l)}function YE(e,i){const r=String(i.identifier).toUpperCase(),l=e.definitionById.get(r);if(!l)return Xp(e,i);const s={href:Li(l.url||"")};l.title!==null&&l.title!==void 0&&(s.title=l.title);const c={type:"element",tagName:"a",properties:s,children:e.all(i)};return e.patch(i,c),e.applyData(i,c)}function QE(e,i){const r={href:Li(i.url)};i.title!==null&&i.title!==void 0&&(r.title=i.title);const l={type:"element",tagName:"a",properties:r,children:e.all(i)};return e.patch(i,l),e.applyData(i,l)}function ZE(e,i,r){const l=e.all(i),s=r?XE(r):Jp(i),c={},u=[];if(typeof i.checked=="boolean"){const y=l[0];let h;y&&y.type==="element"&&y.tagName==="p"?h=y:(h={type:"element",tagName:"p",properties:{},children:[]},l.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:i.checked,disabled:!0},children:[]}),c.className=["task-list-item"]}let d=-1;for(;++d1}function JE(e,i){const r={},l=e.all(i);let s=-1;for(typeof i.start=="number"&&i.start!==1&&(r.start=i.start);++s0){const u={type:"element",tagName:"tbody",properties:{},children:e.wrap(r,!0)},d=Au(i.children[1]),p=Ip(i.children[i.children.length-1]);d&&p&&(u.position={start:d,end:p}),s.push(u)}const c={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(i,c),e.applyData(i,c)}function i_(e,i,r){const l=r?r.children:void 0,c=(l?l.indexOf(i):1)===0?"th":"td",u=r&&r.type==="table"?r.align:void 0,d=u?u.length:i.children.length;let p=-1;const m=[];for(;++p0,!0),l[0]),s=l.index+l[0].length,l=r.exec(i);return c.push(jd(i.slice(s),s>0,!1)),c.join("")}function jd(e,i,r){let l=0,s=e.length;if(i){let c=e.codePointAt(l);for(;c===$d||c===Hd;)l++,c=e.codePointAt(l)}if(r){let c=e.codePointAt(s-1);for(;c===$d||c===Hd;)s--,c=e.codePointAt(s-1)}return s>l?e.slice(l,s):""}function a_(e,i){const r={type:"text",value:l_(String(i.value))};return e.patch(i,r),e.applyData(i,r)}function s_(e,i){const r={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(i,r),e.applyData(i,r)}const u_={blockquote:FE,break:BE,code:UE,delete:$E,emphasis:HE,footnoteReference:jE,heading:GE,html:KE,imageReference:WE,image:VE,inlineCode:qE,linkReference:YE,link:QE,listItem:ZE,list:JE,paragraph:e_,root:t_,strong:n_,table:r_,tableCell:o_,tableRow:i_,text:a_,thematicBreak:s_,toml:Hl,yaml:Hl,definition:Hl,footnoteDefinition:Hl};function Hl(){}const em=-1,la=0,No=1,Jl=2,Pu=3,zu=4,Fu=5,Bu=6,tm=7,nm=8,rm=typeof self=="object"?self:globalThis,Gd=(e,i)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new rm[e](i)},c_=(e,i)=>{const r=(s,c)=>(e.set(c,s),s),l=s=>{if(e.has(s))return e.get(s);const[c,u]=i[s];switch(c){case la:case em:return r(u,s);case No:{const d=r([],s);for(const p of u)d.push(l(p));return d}case Jl:{const d=r({},s);for(const[p,m]of u)d[l(p)]=l(m);return d}case Pu:return r(new Date(u),s);case zu:{const{source:d,flags:p}=u;return r(new RegExp(d,p),s)}case Fu:{const d=r(new Map,s);for(const[p,m]of u)d.set(l(p),l(m));return d}case Bu:{const d=r(new Set,s);for(const p of u)d.add(l(p));return d}case tm:{const{name:d,message:p}=u;return r(typeof rm[d]=="function"?Gd(d,p):new Error(p),s)}case nm:return r(BigInt(u),s);case"BigInt":return r(Object(BigInt(u)),s);case"ArrayBuffer":return r(new Uint8Array(u).buffer,u);case"DataView":{const{buffer:d}=new Uint8Array(u);return r(new DataView(d),u)}}return r(Gd(c,u),s)};return l},Kd=e=>c_(new Map,e)(0),Yr="",{toString:f_}={},{keys:d_}=Object,vo=e=>{const i=typeof e;if(i!=="object"||!e)return[la,i];const r=f_.call(e).slice(8,-1);switch(r){case"Array":return[No,Yr];case"Object":return[Jl,Yr];case"Date":return[Pu,Yr];case"RegExp":return[zu,Yr];case"Map":return[Fu,Yr];case"Set":return[Bu,Yr];case"DataView":return[No,r]}return r.includes("Array")?[No,r]:e instanceof Error?[tm,e.name||"Error"]:[Jl,r]},jl=([e,i])=>e===la&&(i==="function"||i==="symbol"),p_=(e,i,r,l)=>{const s=(u,d)=>{const p=l.push(u)-1;return r.set(d,p),p},c=u=>{if(r.has(u))return r.get(u);let[d,p]=vo(u);switch(d){case la:{let y=u;switch(p){case"bigint":d=nm,y=u.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+p);y=null;break;case"undefined":return s([em],u)}return s([d,y],u)}case No:{if(p){let b=u;return p==="DataView"?b=new Uint8Array(u.buffer):p==="ArrayBuffer"&&(b=new Uint8Array(u)),s([p,[...b]],u)}const y=[],h=s([d,y],u);for(const b of u)y.push(c(b));return h}case Jl:{if(p)switch(p){case"BigInt":return s([p,u.toString()],u);case"Boolean":case"Number":case"String":return s([p,u.valueOf()],u)}if(i&&"toJSON"in u)return c(u.toJSON());const y=[],h=s([d,y],u);for(const b of d_(u))(e||!jl(vo(u[b])))&&y.push([c(b),c(u[b])]);return h}case Pu:return s([d,isNaN(u.getTime())?Yr:u.toISOString()],u);case zu:{const{source:y,flags:h}=u;return s([d,{source:y,flags:h}],u)}case Fu:{const y=[],h=s([d,y],u);for(const[b,E]of u)(e||!(jl(vo(b))||jl(vo(E))))&&y.push([c(b),c(E)]);return h}case Bu:{const y=[],h=s([d,y],u);for(const b of u)(e||!jl(vo(b)))&&y.push(c(b));return h}}const{message:m}=u;return s([d,{name:p,message:m}],u)};return c},Wd=(e,{json:i,lossy:r}={})=>{const l=[];return p_(!(i||r),!!i,new Map,l)(e),l},ea=typeof structuredClone=="function"?(e,i)=>i&&("json"in i||"lossy"in i)?Kd(Wd(e,i)):structuredClone(e):(e,i)=>Kd(Wd(e,i));function m_(e,i){const r=[{type:"text",value:"↩"}];return i>1&&r.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(i)}]}),r}function g_(e,i){return"Back to reference "+(e+1)+(i>1?"-"+i:"")}function h_(e){const i=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=e.options.footnoteBackContent||m_,l=e.options.footnoteBackLabel||g_,s=e.options.footnoteLabel||"Footnotes",c=e.options.footnoteLabelTagName||"h2",u=e.options.footnoteLabelProperties||{className:["sr-only"]},d=[];let p=-1;for(;++p0&&w.push({type:"text",value:" "});let L=typeof r=="string"?r:r(p,E);typeof L=="string"&&(L={type:"text",value:L}),w.push({type:"element",tagName:"a",properties:{href:"#"+i+"fnref-"+b+(E>1?"-"+E:""),dataFootnoteBackref:"",ariaLabel:typeof l=="string"?l:l(p,E),className:["data-footnote-backref"]},children:Array.isArray(L)?L:[L]})}const R=y[y.length-1];if(R&&R.type==="element"&&R.tagName==="p"){const L=R.children[R.children.length-1];L&&L.type==="text"?L.value+=" ":R.children.push({type:"text",value:" "}),R.children.push(...w)}else y.push(...w);const N={type:"element",tagName:"li",properties:{id:i+"fn-"+b},children:e.wrap(y,!0)};e.patch(m,N),d.push(N)}if(d.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:c,properties:{...ea(u),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(d,!0)},{type:"text",value:` -`}]}}const Io=(function(e){if(e==null)return __;if(typeof e=="function")return aa(e);if(typeof e=="object")return Array.isArray(e)?y_(e):b_(e);if(typeof e=="string")return E_(e);throw new Error("Expected function, string, or object as test")});function y_(e){const i=[];let r=-1;for(;++r":""))+")"})}return b;function b(){let E=im,w,S,R;if((!i||c(p,m,y[y.length-1]||void 0))&&(E=x_(r(p,y)),E[0]===_u))return E;if("children"in p&&p.children){const N=p;if(N.children&&E[0]!==w_)for(S=(l?N.children.length:-1)+u,R=y.concat(N);S>-1&&S0&&r.push({type:"text",value:` -`}),r}function Vd(e){let i=0,r=e.charCodeAt(i);for(;r===9||r===32;)i++,r=e.charCodeAt(i);return e.slice(i)}function qd(e,i){const r=N_(e,i),l=r.one(e,void 0),s=h_(r),c=Array.isArray(l)?{type:"root",children:l}:l||{type:"root",children:[]};return s&&c.children.push({type:"text",value:` -`},s),c}function O_(e,i){return e&&"run"in e?async function(r,l){const s=qd(r,{file:l,...i});await e.run(s,l)}:function(r,l){return qd(r,{file:l,...e||i})}}function Yd(e){if(e)throw e}var Js,Qd;function I_(){if(Qd)return Js;Qd=1;var e=Object.prototype.hasOwnProperty,i=Object.prototype.toString,r=Object.defineProperty,l=Object.getOwnPropertyDescriptor,s=function(m){return typeof Array.isArray=="function"?Array.isArray(m):i.call(m)==="[object Array]"},c=function(m){if(!m||i.call(m)!=="[object Object]")return!1;var y=e.call(m,"constructor"),h=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!y&&!h)return!1;var b;for(b in m);return typeof b>"u"||e.call(m,b)},u=function(m,y){r&&y.name==="__proto__"?r(m,y.name,{enumerable:!0,configurable:!0,value:y.newValue,writable:!0}):m[y.name]=y.newValue},d=function(m,y){if(y==="__proto__")if(e.call(m,y)){if(l)return l(m,y).value}else return;return m[y]};return Js=function p(){var m,y,h,b,E,w,S=arguments[0],R=1,N=arguments.length,L=!1;for(typeof S=="boolean"&&(L=S,S=arguments[1]||{},R=2),(S==null||typeof S!="object"&&typeof S!="function")&&(S={});Ru.length;let p;d&&u.push(s);try{p=e.apply(this,u)}catch(m){const y=m;if(d&&r)throw y;return s(y)}d||(p&&p.then&&typeof p.then=="function"?p.then(c,s):p instanceof Error?s(p):c(p))}function s(u,...d){r||(r=!0,i(u,...d))}function c(u){s(null,u)}}const Un={basename:P_,dirname:z_,extname:F_,join:B_,sep:"/"};function P_(e,i){if(i!==void 0&&typeof i!="string")throw new TypeError('"ext" argument must be a string');Mo(e);let r=0,l=-1,s=e.length,c;if(i===void 0||i.length===0||i.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(c){r=s+1;break}}else l<0&&(c=!0,l=s+1);return l<0?"":e.slice(r,l)}if(i===e)return"";let u=-1,d=i.length-1;for(;s--;)if(e.codePointAt(s)===47){if(c){r=s+1;break}}else u<0&&(c=!0,u=s+1),d>-1&&(e.codePointAt(s)===i.codePointAt(d--)?d<0&&(l=s):(d=-1,l=u));return r===l?l=u:l<0&&(l=e.length),e.slice(r,l)}function z_(e){if(Mo(e),e.length===0)return".";let i=-1,r=e.length,l;for(;--r;)if(e.codePointAt(r)===47){if(l){i=r;break}}else l||(l=!0);return i<0?e.codePointAt(0)===47?"/":".":i===1&&e.codePointAt(0)===47?"//":e.slice(0,i)}function F_(e){Mo(e);let i=e.length,r=-1,l=0,s=-1,c=0,u;for(;i--;){const d=e.codePointAt(i);if(d===47){if(u){l=i+1;break}continue}r<0&&(u=!0,r=i+1),d===46?s<0?s=i:c!==1&&(c=1):s>-1&&(c=-1)}return s<0||r<0||c===0||c===1&&s===r-1&&s===l+1?"":e.slice(s,r)}function B_(...e){let i=-1,r;for(;++i0&&e.codePointAt(e.length-1)===47&&(r+="/"),i?"/"+r:r}function $_(e,i){let r="",l=0,s=-1,c=0,u=-1,d,p;for(;++u<=e.length;){if(u2){if(p=r.lastIndexOf("/"),p!==r.length-1){p<0?(r="",l=0):(r=r.slice(0,p),l=r.length-1-r.lastIndexOf("/")),s=u,c=0;continue}}else if(r.length>0){r="",l=0,s=u,c=0;continue}}i&&(r=r.length>0?r+"/..":"..",l=2)}else r.length>0?r+="/"+e.slice(s+1,u):r=e.slice(s+1,u),l=u-s-1;s=u,c=0}else d===46&&c>-1?c++:c=-1}return r}function Mo(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const H_={cwd:j_};function j_(){return"/"}function wu(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function G_(e){if(typeof e=="string")e=new URL(e);else if(!wu(e)){const i=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw i.code="ERR_INVALID_ARG_TYPE",i}if(e.protocol!=="file:"){const i=new TypeError("The URL must be of scheme file");throw i.code="ERR_INVALID_URL_SCHEME",i}return K_(e)}function K_(e){if(e.hostname!==""){const l=new TypeError('File URL host must be "localhost" or empty on darwin');throw l.code="ERR_INVALID_FILE_URL_HOST",l}const i=e.pathname;let r=-1;for(;++r0){let[E,...w]=y;const S=l[b][1];ku(S)&&ku(E)&&(E=eu(!0,S,E)),l[b]=[m,E,...w]}}}}const Y_=new Uu().freeze();function iu(e,i){if(typeof i!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function ou(e,i){if(typeof i!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function lu(e,i){if(i)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Xd(e){if(!ku(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Jd(e,i,r){if(!r)throw new Error("`"+e+"` finished async. Use `"+i+"` instead")}function Gl(e){return Q_(e)?e:new lm(e)}function Q_(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Z_(e){return typeof e=="string"||X_(e)}function X_(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const J_="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",ep=[],tp={allowDangerousHtml:!0},ev=/^(https?|ircs?|mailto|xmpp)$/i,tv=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function nv(e){const i=rv(e),r=iv(e);return ov(i.runSync(i.parse(r),r),e)}function rv(e){const i=e.rehypePlugins||ep,r=e.remarkPlugins||ep,l=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...tp}:tp;return Y_().use(zE).use(r).use(O_,l).use(i)}function iv(e){const i=e.children||"",r=new lm;return typeof i=="string"&&(r.value=i),r}function ov(e,i){const r=i.allowedElements,l=i.allowElement,s=i.components,c=i.disallowedElements,u=i.skipHtml,d=i.unwrapDisallowed,p=i.urlTransform||lv;for(const y of tv)Object.hasOwn(i,y.from)&&(""+y.from+(y.to?"use `"+y.to+"` instead":"remove it")+J_+y.id,void 0);return i.className&&(e={type:"element",tagName:"div",properties:{className:i.className},children:e.type==="root"?e.children:[e]}),sa(e,m),_y(e,{Fragment:H.Fragment,components:s,ignoreInvalidStyle:!0,jsx:H.jsx,jsxs:H.jsxs,passKeys:!0,passNode:!0});function m(y,h,b){if(y.type==="raw"&&b&&typeof h=="number")return u?b.children.splice(h,1):b.children[h]={type:"text",value:y.value},h;if(y.type==="element"){let E;for(E in Qs)if(Object.hasOwn(Qs,E)&&Object.hasOwn(y.properties,E)){const w=y.properties[E],S=Qs[E];(S===null||S.includes(y.tagName))&&(y.properties[E]=p(String(w||""),E,y))}}if(y.type==="element"){let E=r?!r.includes(y.tagName):c?c.includes(y.tagName):!1;if(!E&&l&&typeof h=="number"&&(E=!l(y,h,b)),E&&b&&typeof h=="number")return d&&y.children?b.children.splice(h,1,...y.children):b.children.splice(h,1),h}}}function lv(e){const i=e.indexOf(":"),r=e.indexOf("?"),l=e.indexOf("#"),s=e.indexOf("/");return i===-1||s!==-1&&i>s||r!==-1&&i>r||l!==-1&&i>l||ev.test(e.slice(0,i))?e:""}function np(e,i){const r=String(e);if(typeof i!="string")throw new TypeError("Expected character");let l=0,s=r.indexOf(i);for(;s!==-1;)l++,s=r.indexOf(i,s+i.length);return l}function av(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function sv(e,i,r){const s=Io((r||{}).ignore||[]),c=uv(i);let u=-1;for(;++u0?{type:"text",value:M}:void 0),M===!1?b.lastIndex=W+1:(w!==W&&L.push({type:"text",value:m.value.slice(w,W)}),Array.isArray(M)?L.push(...M):M&&L.push(M),w=W+z[0].length,N=!0),!b.global)break;z=b.exec(m.value)}return N?(w?\]}]+$/.exec(e);if(!i)return[e,void 0];e=e.slice(0,i.index);let r=i[0],l=r.indexOf(")");const s=np(e,"(");let c=np(e,")");for(;l!==-1&&s>c;)e+=r.slice(0,l+1),r=r.slice(l+1),l=r.indexOf(")"),c++;return[e,r]}function am(e,i){const r=e.input.charCodeAt(e.index-1);return(e.index===0||Zr(r)||ia(r))&&(!i||r!==47)}sm.peek=Iv;function xv(){this.buffer()}function Sv(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function Nv(){this.buffer()}function Cv(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function Tv(e){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Tn(this.sliceSerialize(e)).toLowerCase(),r.label=i}function Av(e){this.exit(e)}function Rv(e){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Tn(this.sliceSerialize(e)).toLowerCase(),r.label=i}function Ov(e){this.exit(e)}function Iv(){return"["}function sm(e,i,r,l){const s=r.createTracker(l);let c=s.move("[^");const u=r.enter("footnoteReference"),d=r.enter("reference");return c+=s.move(r.safe(r.associationId(e),{after:"]",before:c})),d(),u(),c+=s.move("]"),c}function Mv(){return{enter:{gfmFootnoteCallString:xv,gfmFootnoteCall:Sv,gfmFootnoteDefinitionLabelString:Nv,gfmFootnoteDefinition:Cv},exit:{gfmFootnoteCallString:Tv,gfmFootnoteCall:Av,gfmFootnoteDefinitionLabelString:Rv,gfmFootnoteDefinition:Ov}}}function Lv(e){let i=!1;return e&&e.firstLineBlank&&(i=!0),{handlers:{footnoteDefinition:r,footnoteReference:sm},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function r(l,s,c,u){const d=c.createTracker(u);let p=d.move("[^");const m=c.enter("footnoteDefinition"),y=c.enter("label");return p+=d.move(c.safe(c.associationId(l),{before:p,after:"]"})),y(),p+=d.move("]:"),l.children&&l.children.length>0&&(d.shift(4),p+=d.move((i?` -`:" ")+c.indentLines(c.containerFlow(l,d.current()),i?um:Dv))),m(),p}}function Dv(e,i,r){return i===0?e:um(e,i,r)}function um(e,i,r){return(r?"":" ")+e}const Pv=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];cm.peek=$v;function zv(){return{canContainEols:["delete"],enter:{strikethrough:Bv},exit:{strikethrough:Uv}}}function Fv(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:Pv}],handlers:{delete:cm}}}function Bv(e){this.enter({type:"delete",children:[]},e)}function Uv(e){this.exit(e)}function cm(e,i,r,l){const s=r.createTracker(l),c=r.enter("strikethrough");let u=s.move("~~");return u+=r.containerPhrasing(e,{...s.current(),before:u,after:"~"}),u+=s.move("~~"),c(),u}function $v(){return"~"}function Hv(e){return e.length}function jv(e,i){const r=i||{},l=(r.align||[]).concat(),s=r.stringLength||Hv,c=[],u=[],d=[],p=[];let m=0,y=-1;for(;++ym&&(m=e[y].length);++Np[N])&&(p[N]=z)}S.push(L)}u[y]=S,d[y]=R}let h=-1;if(typeof l=="object"&&"length"in l)for(;++hp[h]&&(p[h]=L),E[h]=L),b[h]=z}u.splice(1,0,b),d.splice(1,0,E),y=-1;const w=[];for(;++y "),c.shift(2);const u=r.indentLines(r.containerFlow(e,c.current()),Wv);return s(),u}function Wv(e,i,r){return">"+(r?"":" ")+e}function Vv(e,i){return ip(e,i.inConstruct,!0)&&!ip(e,i.notInConstruct,!1)}function ip(e,i,r){if(typeof i=="string"&&(i=[i]),!i||i.length===0)return r;let l=-1;for(;++lu&&(u=c):c=1,s=l+i.length,l=r.indexOf(i,s);return u}function Yv(e,i){return!!(i.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function Qv(e){const i=e.options.fence||"`";if(i!=="`"&&i!=="~")throw new Error("Cannot serialize code with `"+i+"` for `options.fence`, expected `` ` `` or `~`");return i}function Zv(e,i,r,l){const s=Qv(r),c=e.value||"",u=s==="`"?"GraveAccent":"Tilde";if(Yv(e,r)){const h=r.enter("codeIndented"),b=r.indentLines(c,Xv);return h(),b}const d=r.createTracker(l),p=s.repeat(Math.max(qv(c,s)+1,3)),m=r.enter("codeFenced");let y=d.move(p);if(e.lang){const h=r.enter(`codeFencedLang${u}`);y+=d.move(r.safe(e.lang,{before:y,after:" ",encode:["`"],...d.current()})),h()}if(e.lang&&e.meta){const h=r.enter(`codeFencedMeta${u}`);y+=d.move(" "),y+=d.move(r.safe(e.meta,{before:y,after:` -`,encode:["`"],...d.current()})),h()}return y+=d.move(` -`),c&&(y+=d.move(c+` -`)),y+=d.move(p),m(),y}function Xv(e,i,r){return(r?"":" ")+e}function $u(e){const i=e.options.quote||'"';if(i!=='"'&&i!=="'")throw new Error("Cannot serialize title with `"+i+"` for `options.quote`, expected `\"`, or `'`");return i}function Jv(e,i,r,l){const s=$u(r),c=s==='"'?"Quote":"Apostrophe",u=r.enter("definition");let d=r.enter("label");const p=r.createTracker(l);let m=p.move("[");return m+=p.move(r.safe(r.associationId(e),{before:m,after:"]",...p.current()})),m+=p.move("]: "),d(),!e.url||/[\0- \u007F]/.test(e.url)?(d=r.enter("destinationLiteral"),m+=p.move("<"),m+=p.move(r.safe(e.url,{before:m,after:">",...p.current()})),m+=p.move(">")):(d=r.enter("destinationRaw"),m+=p.move(r.safe(e.url,{before:m,after:e.title?" ":` -`,...p.current()}))),d(),e.title&&(d=r.enter(`title${c}`),m+=p.move(" "+s),m+=p.move(r.safe(e.title,{before:m,after:s,...p.current()})),m+=p.move(s),d()),u(),m}function ek(e){const i=e.options.emphasis||"*";if(i!=="*"&&i!=="_")throw new Error("Cannot serialize emphasis with `"+i+"` for `options.emphasis`, expected `*`, or `_`");return i}function To(e){return"&#x"+e.toString(16).toUpperCase()+";"}function ta(e,i,r){const l=Ii(e),s=Ii(i);return l===void 0?s===void 0?r==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:l===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}fm.peek=tk;function fm(e,i,r,l){const s=ek(r),c=r.enter("emphasis"),u=r.createTracker(l),d=u.move(s);let p=u.move(r.containerPhrasing(e,{after:s,before:d,...u.current()}));const m=p.charCodeAt(0),y=ta(l.before.charCodeAt(l.before.length-1),m,s);y.inside&&(p=To(m)+p.slice(1));const h=p.charCodeAt(p.length-1),b=ta(l.after.charCodeAt(0),h,s);b.inside&&(p=p.slice(0,-1)+To(h));const E=u.move(s);return c(),r.attentionEncodeSurroundingInfo={after:b.outside,before:y.outside},d+p+E}function tk(e,i,r){return r.options.emphasis||"*"}function nk(e,i){let r=!1;return sa(e,function(l){if("value"in l&&/\r?\n|\r/.test(l.value)||l.type==="break")return r=!0,_u}),!!((!e.depth||e.depth<3)&&Mu(e)&&(i.options.setext||r))}function rk(e,i,r,l){const s=Math.max(Math.min(6,e.depth||1),1),c=r.createTracker(l);if(nk(e,r)){const y=r.enter("headingSetext"),h=r.enter("phrasing"),b=r.containerPhrasing(e,{...c.current(),before:` -`,after:` -`});return h(),y(),b+` -`+(s===1?"=":"-").repeat(b.length-(Math.max(b.lastIndexOf("\r"),b.lastIndexOf(` -`))+1))}const u="#".repeat(s),d=r.enter("headingAtx"),p=r.enter("phrasing");c.move(u+" ");let m=r.containerPhrasing(e,{before:"# ",after:` -`,...c.current()});return/^[\t ]/.test(m)&&(m=To(m.charCodeAt(0))+m.slice(1)),m=m?u+" "+m:u,r.options.closeAtx&&(m+=" "+u),p(),d(),m}dm.peek=ik;function dm(e){return e.value||""}function ik(){return"<"}pm.peek=ok;function pm(e,i,r,l){const s=$u(r),c=s==='"'?"Quote":"Apostrophe",u=r.enter("image");let d=r.enter("label");const p=r.createTracker(l);let m=p.move("![");return m+=p.move(r.safe(e.alt,{before:m,after:"]",...p.current()})),m+=p.move("]("),d(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(d=r.enter("destinationLiteral"),m+=p.move("<"),m+=p.move(r.safe(e.url,{before:m,after:">",...p.current()})),m+=p.move(">")):(d=r.enter("destinationRaw"),m+=p.move(r.safe(e.url,{before:m,after:e.title?" ":")",...p.current()}))),d(),e.title&&(d=r.enter(`title${c}`),m+=p.move(" "+s),m+=p.move(r.safe(e.title,{before:m,after:s,...p.current()})),m+=p.move(s),d()),m+=p.move(")"),u(),m}function ok(){return"!"}mm.peek=lk;function mm(e,i,r,l){const s=e.referenceType,c=r.enter("imageReference");let u=r.enter("label");const d=r.createTracker(l);let p=d.move("![");const m=r.safe(e.alt,{before:p,after:"]",...d.current()});p+=d.move(m+"]["),u();const y=r.stack;r.stack=[],u=r.enter("reference");const h=r.safe(r.associationId(e),{before:p,after:"]",...d.current()});return u(),r.stack=y,c(),s==="full"||!m||m!==h?p+=d.move(h+"]"):s==="shortcut"?p=p.slice(0,-1):p+=d.move("]"),p}function lk(){return"!"}gm.peek=ak;function gm(e,i,r){let l=e.value||"",s="`",c=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(l);)s+="`";for(/[^ \r\n]/.test(l)&&(/^[ \r\n]/.test(l)&&/[ \r\n]$/.test(l)||/^`|`$/.test(l))&&(l=" "+l+" ");++c\u007F]/.test(e.url))}ym.peek=sk;function ym(e,i,r,l){const s=$u(r),c=s==='"'?"Quote":"Apostrophe",u=r.createTracker(l);let d,p;if(hm(e,r)){const y=r.stack;r.stack=[],d=r.enter("autolink");let h=u.move("<");return h+=u.move(r.containerPhrasing(e,{before:h,after:">",...u.current()})),h+=u.move(">"),d(),r.stack=y,h}d=r.enter("link"),p=r.enter("label");let m=u.move("[");return m+=u.move(r.containerPhrasing(e,{before:m,after:"](",...u.current()})),m+=u.move("]("),p(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(p=r.enter("destinationLiteral"),m+=u.move("<"),m+=u.move(r.safe(e.url,{before:m,after:">",...u.current()})),m+=u.move(">")):(p=r.enter("destinationRaw"),m+=u.move(r.safe(e.url,{before:m,after:e.title?" ":")",...u.current()}))),p(),e.title&&(p=r.enter(`title${c}`),m+=u.move(" "+s),m+=u.move(r.safe(e.title,{before:m,after:s,...u.current()})),m+=u.move(s),p()),m+=u.move(")"),d(),m}function sk(e,i,r){return hm(e,r)?"<":"["}bm.peek=uk;function bm(e,i,r,l){const s=e.referenceType,c=r.enter("linkReference");let u=r.enter("label");const d=r.createTracker(l);let p=d.move("[");const m=r.containerPhrasing(e,{before:p,after:"]",...d.current()});p+=d.move(m+"]["),u();const y=r.stack;r.stack=[],u=r.enter("reference");const h=r.safe(r.associationId(e),{before:p,after:"]",...d.current()});return u(),r.stack=y,c(),s==="full"||!m||m!==h?p+=d.move(h+"]"):s==="shortcut"?p=p.slice(0,-1):p+=d.move("]"),p}function uk(){return"["}function Hu(e){const i=e.options.bullet||"*";if(i!=="*"&&i!=="+"&&i!=="-")throw new Error("Cannot serialize items with `"+i+"` for `options.bullet`, expected `*`, `+`, or `-`");return i}function ck(e){const i=Hu(e),r=e.options.bulletOther;if(!r)return i==="*"?"-":"*";if(r!=="*"&&r!=="+"&&r!=="-")throw new Error("Cannot serialize items with `"+r+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(r===i)throw new Error("Expected `bullet` (`"+i+"`) and `bulletOther` (`"+r+"`) to be different");return r}function fk(e){const i=e.options.bulletOrdered||".";if(i!=="."&&i!==")")throw new Error("Cannot serialize items with `"+i+"` for `options.bulletOrdered`, expected `.` or `)`");return i}function Em(e){const i=e.options.rule||"*";if(i!=="*"&&i!=="-"&&i!=="_")throw new Error("Cannot serialize rules with `"+i+"` for `options.rule`, expected `*`, `-`, or `_`");return i}function dk(e,i,r,l){const s=r.enter("list"),c=r.bulletCurrent;let u=e.ordered?fk(r):Hu(r);const d=e.ordered?u==="."?")":".":ck(r);let p=i&&r.bulletLastUsed?u===r.bulletLastUsed:!1;if(!e.ordered){const y=e.children?e.children[0]:void 0;if((u==="*"||u==="-")&&y&&(!y.children||!y.children[0])&&r.stack[r.stack.length-1]==="list"&&r.stack[r.stack.length-2]==="listItem"&&r.stack[r.stack.length-3]==="list"&&r.stack[r.stack.length-4]==="listItem"&&r.indexStack[r.indexStack.length-1]===0&&r.indexStack[r.indexStack.length-2]===0&&r.indexStack[r.indexStack.length-3]===0&&(p=!0),Em(r)===u&&y){let h=-1;for(;++h-1?i.start:1)+(r.options.incrementListMarker===!1?0:i.children.indexOf(e))+c);let u=c.length+1;(s==="tab"||s==="mixed"&&(i&&i.type==="list"&&i.spread||e.spread))&&(u=Math.ceil(u/4)*4);const d=r.createTracker(l);d.move(c+" ".repeat(u-c.length)),d.shift(u);const p=r.enter("listItem"),m=r.indentLines(r.containerFlow(e,d.current()),y);return p(),m;function y(h,b,E){return b?(E?"":" ".repeat(u))+h:(E?c:c+" ".repeat(u-c.length))+h}}function gk(e,i,r,l){const s=r.enter("paragraph"),c=r.enter("phrasing"),u=r.containerPhrasing(e,l);return c(),s(),u}const hk=Io(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function yk(e,i,r,l){return(e.children.some(function(u){return hk(u)})?r.containerPhrasing:r.containerFlow).call(r,e,l)}function bk(e){const i=e.options.strong||"*";if(i!=="*"&&i!=="_")throw new Error("Cannot serialize strong with `"+i+"` for `options.strong`, expected `*`, or `_`");return i}_m.peek=Ek;function _m(e,i,r,l){const s=bk(r),c=r.enter("strong"),u=r.createTracker(l),d=u.move(s+s);let p=u.move(r.containerPhrasing(e,{after:s,before:d,...u.current()}));const m=p.charCodeAt(0),y=ta(l.before.charCodeAt(l.before.length-1),m,s);y.inside&&(p=To(m)+p.slice(1));const h=p.charCodeAt(p.length-1),b=ta(l.after.charCodeAt(0),h,s);b.inside&&(p=p.slice(0,-1)+To(h));const E=u.move(s+s);return c(),r.attentionEncodeSurroundingInfo={after:b.outside,before:y.outside},d+p+E}function Ek(e,i,r){return r.options.strong||"*"}function _k(e,i,r,l){return r.safe(e.value,l)}function vk(e){const i=e.options.ruleRepetition||3;if(i<3)throw new Error("Cannot serialize rules with repetition `"+i+"` for `options.ruleRepetition`, expected `3` or more");return i}function kk(e,i,r){const l=(Em(r)+(r.options.ruleSpaces?" ":"")).repeat(vk(r));return r.options.ruleSpaces?l.slice(0,-1):l}const vm={blockquote:Kv,break:op,code:Zv,definition:Jv,emphasis:fm,hardBreak:op,heading:rk,html:dm,image:pm,imageReference:mm,inlineCode:gm,link:ym,linkReference:bm,list:dk,listItem:mk,paragraph:gk,root:yk,strong:_m,text:_k,thematicBreak:kk};function wk(){return{enter:{table:xk,tableData:lp,tableHeader:lp,tableRow:Nk},exit:{codeText:Ck,table:Sk,tableData:cu,tableHeader:cu,tableRow:cu}}}function xk(e){const i=e._align;this.enter({type:"table",align:i.map(function(r){return r==="none"?null:r}),children:[]},e),this.data.inTable=!0}function Sk(e){this.exit(e),this.data.inTable=void 0}function Nk(e){this.enter({type:"tableRow",children:[]},e)}function cu(e){this.exit(e)}function lp(e){this.enter({type:"tableCell",children:[]},e)}function Ck(e){let i=this.resume();this.data.inTable&&(i=i.replace(/\\([\\|])/g,Tk));const r=this.stack[this.stack.length-1];r.type,r.value=i,this.exit(e)}function Tk(e,i){return i==="|"?i:e}function Ak(e){const i=e||{},r=i.tableCellPadding,l=i.tablePipeAlign,s=i.stringLength,c=r?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:b,table:u,tableCell:p,tableRow:d}};function u(E,w,S,R){return m(y(E,S,R),E.align)}function d(E,w,S,R){const N=h(E,S,R),L=m([N]);return L.slice(0,L.indexOf(` -`))}function p(E,w,S,R){const N=S.enter("tableCell"),L=S.enter("phrasing"),z=S.containerPhrasing(E,{...R,before:c,after:c});return L(),N(),z}function m(E,w){return jv(E,{align:w,alignDelimiters:l,padding:r,stringLength:s})}function y(E,w,S){const R=E.children;let N=-1;const L=[],z=w.enter("table");for(;++N0&&!r&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),r}const Vk={tokenize:tw,partial:!0};function qk(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:Xk,continuation:{tokenize:Jk},exit:ew}},text:{91:{name:"gfmFootnoteCall",tokenize:Zk},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Yk,resolveTo:Qk}}}}function Yk(e,i,r){const l=this;let s=l.events.length;const c=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let u;for(;s--;){const p=l.events[s][1];if(p.type==="labelImage"){u=p;break}if(p.type==="gfmFootnoteCall"||p.type==="labelLink"||p.type==="label"||p.type==="image"||p.type==="link")break}return d;function d(p){if(!u||!u._balanced)return r(p);const m=Tn(l.sliceSerialize({start:u.end,end:l.now()}));return m.codePointAt(0)!==94||!c.includes(m.slice(1))?r(p):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),i(p))}}function Qk(e,i){let r=e.length;for(;r--;)if(e[r][1].type==="labelImage"&&e[r][0]==="enter"){e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const l={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const c={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},c.start),end:Object.assign({},c.end)},d=[e[r+1],e[r+2],["enter",l,i],e[r+3],e[r+4],["enter",s,i],["exit",s,i],["enter",c,i],["enter",u,i],["exit",u,i],["exit",c,i],e[e.length-2],e[e.length-1],["exit",l,i]];return e.splice(r,e.length-r+1,...d),e}function Zk(e,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c=0,u;return d;function d(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),p}function p(h){return h!==94?r(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",m)}function m(h){if(c>999||h===93&&!u||h===null||h===91||et(h))return r(h);if(h===93){e.exit("chunkString");const b=e.exit("gfmFootnoteCallString");return s.includes(Tn(l.sliceSerialize(b)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),i):r(h)}return et(h)||(u=!0),c++,e.consume(h),h===92?y:m}function y(h){return h===91||h===92||h===93?(e.consume(h),c++,m):m(h)}}function Xk(e,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c,u=0,d;return p;function p(w){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionLabelMarker"),m}function m(w){return w===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",y):r(w)}function y(w){if(u>999||w===93&&!d||w===null||w===91||et(w))return r(w);if(w===93){e.exit("chunkString");const S=e.exit("gfmFootnoteDefinitionLabelString");return c=Tn(l.sliceSerialize(S)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),b}return et(w)||(d=!0),u++,e.consume(w),w===92?h:y}function h(w){return w===91||w===92||w===93?(e.consume(w),u++,y):y(w)}function b(w){return w===58?(e.enter("definitionMarker"),e.consume(w),e.exit("definitionMarker"),s.includes(c)||s.push(c),We(e,E,"gfmFootnoteDefinitionWhitespace")):r(w)}function E(w){return i(w)}}function Jk(e,i,r){return e.check(Oo,i,e.attempt(Vk,i,r))}function ew(e){e.exit("gfmFootnoteDefinition")}function tw(e,i,r){const l=this;return We(e,s,"gfmFootnoteDefinitionIndent",5);function s(c){const u=l.events[l.events.length-1];return u&&u[1].type==="gfmFootnoteDefinitionIndent"&&u[2].sliceSerialize(u[1],!0).length===4?i(c):r(c)}}function nw(e){let r=(e||{}).singleTilde;const l={name:"strikethrough",tokenize:c,resolveAll:s};return r==null&&(r=!0),{text:{126:l},insideSpan:{null:[l]},attentionMarkers:{null:[126]}};function s(u,d){let p=-1;for(;++p1?p(w):(u.consume(w),h++,E);if(h<2&&!r)return p(w);const R=u.exit("strikethroughSequenceTemporary"),N=Ii(w);return R._open=!N||N===2&&!!S,R._close=!S||S===2&&!!N,d(w)}}}class rw{constructor(){this.map=[]}add(i,r,l){iw(this,i,r,l)}consume(i){if(this.map.sort(function(c,u){return c[0]-u[0]}),this.map.length===0)return;let r=this.map.length;const l=[];for(;r>0;)r-=1,l.push(i.slice(this.map[r][0]+this.map[r][1]),this.map[r][2]),i.length=this.map[r][0];l.push(i.slice()),i.length=0;let s=l.pop();for(;s;){for(const c of s)i.push(c);s=l.pop()}this.map.length=0}}function iw(e,i,r,l){let s=0;if(!(r===0&&l.length===0)){for(;s-1;){const Z=l.events[K][1].type;if(Z==="lineEnding"||Z==="linePrefix")K--;else break}const Y=K>-1?l.events[K][1].type:null,re=Y==="tableHead"||Y==="tableRow"?M:p;return re===M&&l.parser.lazy[l.now().line]?r(I):re(I)}function p(I){return e.enter("tableHead"),e.enter("tableRow"),m(I)}function m(I){return I===124||(u=!0,c+=1),y(I)}function y(I){return I===null?r(I):Ce(I)?c>1?(c=0,l.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),E):r(I):Ue(I)?We(e,y,"whitespace")(I):(c+=1,u&&(u=!1,s+=1),I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),u=!0,y):(e.enter("data"),h(I)))}function h(I){return I===null||I===124||et(I)?(e.exit("data"),y(I)):(e.consume(I),I===92?b:h)}function b(I){return I===92||I===124?(e.consume(I),h):h(I)}function E(I){return l.interrupt=!1,l.parser.lazy[l.now().line]?r(I):(e.enter("tableDelimiterRow"),u=!1,Ue(I)?We(e,w,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):w(I))}function w(I){return I===45||I===58?R(I):I===124?(u=!0,e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),S):Q(I)}function S(I){return Ue(I)?We(e,R,"whitespace")(I):R(I)}function R(I){return I===58?(c+=1,u=!0,e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),N):I===45?(c+=1,N(I)):I===null||Ce(I)?W(I):Q(I)}function N(I){return I===45?(e.enter("tableDelimiterFiller"),L(I)):Q(I)}function L(I){return I===45?(e.consume(I),L):I===58?(u=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),z):(e.exit("tableDelimiterFiller"),z(I))}function z(I){return Ue(I)?We(e,W,"whitespace")(I):W(I)}function W(I){return I===124?w(I):I===null||Ce(I)?!u||s!==c?Q(I):(e.exit("tableDelimiterRow"),e.exit("tableHead"),i(I)):Q(I)}function Q(I){return r(I)}function M(I){return e.enter("tableRow"),q(I)}function q(I){return I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),q):I===null||Ce(I)?(e.exit("tableRow"),i(I)):Ue(I)?We(e,q,"whitespace")(I):(e.enter("data"),ne(I))}function ne(I){return I===null||I===124||et(I)?(e.exit("data"),q(I)):(e.consume(I),I===92?X:ne)}function X(I){return I===92||I===124?(e.consume(I),ne):ne(I)}}function sw(e,i){let r=-1,l=!0,s=0,c=[0,0,0,0],u=[0,0,0,0],d=!1,p=0,m,y,h;const b=new rw;for(;++rr[2]+1){const w=r[2]+1,S=r[3]-r[2]-1;e.add(w,S,[])}}e.add(r[3]+1,0,[["exit",h,i]])}return s!==void 0&&(c.end=Object.assign({},Ai(i.events,s)),e.add(s,0,[["exit",c,i]]),c=void 0),c}function sp(e,i,r,l,s){const c=[],u=Ai(i.events,r);s&&(s.end=Object.assign({},u),c.push(["exit",s,i])),l.end=Object.assign({},u),c.push(["exit",l,i]),e.add(r+1,0,c)}function Ai(e,i){const r=e[i],l=r[0]==="enter"?"start":"end";return r[1][l]}const uw={name:"tasklistCheck",tokenize:fw};function cw(){return{text:{91:uw}}}function fw(e,i,r){const l=this;return s;function s(p){return l.previous!==null||!l._gfmTasklistFirstContentOfListItem?r(p):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),c)}function c(p){return et(p)?(e.enter("taskListCheckValueUnchecked"),e.consume(p),e.exit("taskListCheckValueUnchecked"),u):p===88||p===120?(e.enter("taskListCheckValueChecked"),e.consume(p),e.exit("taskListCheckValueChecked"),u):r(p)}function u(p){return p===93?(e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),d):r(p)}function d(p){return Ce(p)?i(p):Ue(p)?e.check({tokenize:dw},i,r)(p):r(p)}}function dw(e,i,r){return We(e,l,"whitespace");function l(s){return s===null?r(s):i(s)}}function pw(e){return Bp([Fk(),qk(),nw(e),lw(),cw()])}const mw={};function gw(e){const i=this,r=e||mw,l=i.data(),s=l.micromarkExtensions||(l.micromarkExtensions=[]),c=l.fromMarkdownExtensions||(l.fromMarkdownExtensions=[]),u=l.toMarkdownExtensions||(l.toMarkdownExtensions=[]);s.push(pw(r)),c.push(Lk()),u.push(Dk(r))}const up=(function(e,i,r){const l=Io(r);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof i=="number"){if(i<0||i===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(i=e.children.indexOf(i),i<0)throw new Error("Expected child node or index");for(;++im&&(m=y):y&&(m!==void 0&&m>-1&&p.push(` -`.repeat(m)||" "),m=-1,p.push(y))}return p.join("")}function Om(e,i,r){return e.type==="element"?ww(e,i,r):e.type==="text"?r.whitespace==="normal"?Im(e,r):xw(e):[]}function ww(e,i,r){const l=Mm(e,r),s=e.children||[];let c=-1,u=[];if(vw(e))return u;let d,p;for(Su(e)||pp(e)&&up(i,e,pp)?p=` -`:_w(e)?(d=2,p=2):Rm(e)&&(d=1,p=1);++c]+>")+")",d={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},m={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(m,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.IDENT_RE+"\\s*\\(",w=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],S=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],R=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],N=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],W={type:S,keyword:w,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:R},Q={className:"function.dispatch",relevance:0,keywords:{_hint:N},begin:i.concat(/\b/,`(?!${w.join("|")})`,e.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},M=[Q,h,d,r,e.C_BLOCK_COMMENT_MODE,y,m],q={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:W,contains:M.concat([{begin:/\(/,end:/\)/,keywords:W,contains:M.concat(["self"]),relevance:0}]),relevance:0},ne={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:W,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:W,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[m,y]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,m,y,d,{begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,m,y,d]}]},d,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:W,illegal:"",keywords:W,contains:["self",d]},{begin:e.IDENT_RE+"::",keywords:W},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Rw(e){const i={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},r=Aw(e),l=r.keywords;return l.type=[...l.type,...i.type],l.literal=[...l.literal,...i.literal],l.built_in=[...l.built_in,...i.built_in],l._hints=i._hints,r.name="Arduino",r.aliases=["ino"],r.supersetOf="cpp",r}function Ow(e){const i=e.regex,r={},l={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[r]}]};Object.assign(r,{className:"variable",variants:[{begin:i.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},l]});const s={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},c=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),u={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},d={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r,s]};s.contains.push(d);const p={match:/\\"/},m={className:"string",begin:/'/,end:/'/},y={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,r]},b=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],E=e.SHEBANG({binary:`(${b.join("|")})`,relevance:10}),w={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},S=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],R=["true","false"],N={match:/(\/[a-z._-]+)+/},L=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],z=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],W=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],Q=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:S,literal:R,built_in:[...L,...z,"set","shopt",...W,...Q]},contains:[E,e.SHEBANG(),w,h,c,u,N,d,p,m,y,r]}}function Iw(e){const i=e.regex,r=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),l="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",u="("+l+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional("<[^<>]+>")+")",d={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},m={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(m,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.IDENT_RE+"\\s*\\(",R={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},N=[h,d,r,e.C_BLOCK_COMMENT_MODE,y,m],L={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:R,contains:N.concat([{begin:/\(/,end:/\)/,keywords:R,contains:N.concat(["self"]),relevance:0}]),relevance:0},z={begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:R,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:R,relevance:0},{begin:E,returnBegin:!0,contains:[e.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:R,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,m,y,d,{begin:/\(/,end:/\)/,keywords:R,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,m,y,d]}]},d,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C",aliases:["h"],keywords:R,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:h,strings:m,keywords:R}}}function Mw(e){const i=e.regex,r=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),l="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",u="(?!struct)("+l+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional("<[^<>]+>")+")",d={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},m={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(m,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.IDENT_RE+"\\s*\\(",w=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],S=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],R=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],N=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],W={type:S,keyword:w,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:R},Q={className:"function.dispatch",relevance:0,keywords:{_hint:N},begin:i.concat(/\b/,`(?!${w.join("|")})`,e.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},M=[Q,h,d,r,e.C_BLOCK_COMMENT_MODE,y,m],q={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:W,contains:M.concat([{begin:/\(/,end:/\)/,keywords:W,contains:M.concat(["self"]),relevance:0}]),relevance:0},ne={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:W,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:W,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[m,y]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,m,y,d,{begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,m,y,d]}]},d,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:W,illegal:"",keywords:W,contains:["self",d]},{begin:e.IDENT_RE+"::",keywords:W},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Lw(e){const i=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],r=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],l=["default","false","null","true"],s=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],c=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],u={keyword:s.concat(c),built_in:i,literal:l},d=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),p={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9'_]+|(\\b[\\d'_]+(\\.[\\d'_]*)?|\\.[\\d'_]+)([eE][-+]?[\\d'_]+)?)"}],relevance:0},m={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},y={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},h=e.inherit(y,{illegal:/\n/}),b={className:"subst",begin:/\{/,end:/\}/,keywords:u},E=e.inherit(b,{illegal:/\n/}),w={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,E]},S={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},b]},R=e.inherit(S,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},E]});b.contains=[S,w,y,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,e.C_BLOCK_COMMENT_MODE],E.contains=[R,w,h,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const N={variants:[m,S,w,y,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},L={begin:"<",end:">",contains:[{beginKeywords:"in out"},d]},z=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",W={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:u,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},N,p,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},d,L,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[d,L,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+z+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:u,contains:[{beginKeywords:r.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,L],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,relevance:0,contains:[N,p,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},W]}}const Dw=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Pw=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],zw=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Fw=[...Pw,...zw],Bw=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Uw=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),$w=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Hw=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function jw(e){const i=e.regex,r=Dw(e),l={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s="and or not only",c=/@-?\w[\w]*(-\w+)*/,u="[a-zA-Z-][a-zA-Z0-9_-]*",d=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[r.BLOCK_COMMENT,l,r.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+u,relevance:0},r.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Uw.join("|")+")"},{begin:":(:)?("+$w.join("|")+")"}]},r.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Hw.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[r.BLOCK_COMMENT,r.HEXCOLOR,r.IMPORTANT,r.CSS_NUMBER_MODE,r.UNICODE_RANGE,...d,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...d,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},r.FUNCTION_DISPATCH]},{begin:i.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:c},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:Bw.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...d,r.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Fw.join("|")+")\\b"}]}}function Gw(e){const i=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:i.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:i.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function Kw(e){const c={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:c,illegal:"Lm(e,i,r-1))}function qw(e){const i=e.regex,r="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",l=r+Lm("(?:<"+r+"~~~(?:\\s*,\\s*"+r+"~~~)*>)?",/~~~/g,2),p={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},m={className:"meta",begin:"@"+r,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},y={className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:p,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[i.concat(/(?!else)/,r),/\s+/,r,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,r],className:{1:"keyword",3:"title.class"},contains:[y,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+l+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:p,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[m,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,mp,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},mp,m]}}const gp="[A-Za-z$_][0-9A-Za-z$_]*",Yw=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Qw=["true","false","null","undefined","NaN","Infinity"],Dm=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Pm=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],zm=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Zw=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Xw=[].concat(zm,Dm,Pm);function Jw(e){const i=e.regex,r=(G,{after:ue})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(G,ue)=>{const v=G[0].length+G.index,A=G.input[v];if(A==="<"||A===","){ue.ignoreMatch();return}A===">"&&(r(G,{after:v})||ue.ignoreMatch());let U;const k=G.input.substring(v);if(U=k.match(/^\s*=/)){ue.ignoreMatch();return}if((U=k.match(/^\s+extends\s+/))&&U.index===0){ue.ignoreMatch();return}}},d={$pattern:gp,keyword:Yw,literal:Qw,built_in:Xw,"variable.language":Zw},p="[0-9](_?[0-9])*",m=`\\.(${p})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${y})((${m})|\\.)?|(${m}))[eE][+-]?(${p})\\b`},{begin:`\\b(${y})\\b((${m})\\b|\\.)?|(${m})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},w={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},S={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},R={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},L={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},z=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,w,S,R,{match:/\$\d+/},h];b.contains=z.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(z)});const W=[].concat(L,b.contains),Q=W.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(W)}]),M={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Q},q={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,i.concat(l,"(",i.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},ne={relevance:0,match:i.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Dm,...Pm]}},X={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},I={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[M],illegal:/%/},K={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Y(G){return i.concat("(?!",G.join("|"),")")}const re={match:i.concat(/\b/,Y([...zm,"super","import","await"].map(G=>`${G}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},Z={begin:i.concat(/\./,i.lookahead(i.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},$={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},M]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",P={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:Q,CLASS_REFERENCE:ne},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),X,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,w,S,R,L,{match:/\$\d+/},h,ne,{scope:"attr",match:l+i.lookahead(":"),relevance:0},P,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[L,e.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Q}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:c},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},I,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},Z,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},re,K,q,$,{match:/\$[(.]/}]}}const ex="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",tx={scope:"number",match:ex,relevance:0};function nx(e){const i={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},r={match:/[{}[\],:]/,className:"punctuation",relevance:0},l=["true","false","null"],s={scope:"literal",beginKeywords:l.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:l},contains:[i,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,tx,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Oi="[0-9](_*[0-9])*",ql=`\\.(${Oi})`,Yl="[0-9a-fA-F](_*[0-9a-fA-F])*",rx={className:"number",variants:[{begin:`(\\b(${Oi})((${ql})|\\.)?|(${ql}))[eE][+-]?(${Oi})[fFdD]?\\b`},{begin:`\\b(${Oi})((${ql})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ql})[fFdD]?\\b`},{begin:`\\b(${Oi})[fFdD]\\b`},{begin:`\\b0[xX]((${Yl})\\.?|(${Yl})?\\.(${Yl}))[pP][+-]?(${Oi})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Yl})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function ix(e){const i={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},l={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},c={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},u={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[c,s]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,c,s]}]};s.contains.push(u);const d={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},p={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(u,{className:"string"}),"self"]}]},m=rx,y=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},b=h;return b.variants[1].contains=[h],h.variants[1].contains=[b],{name:"Kotlin",aliases:["kt","kts"],keywords:i,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,y,r,l,d,p,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:i,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,e.C_LINE_COMMENT_MODE,y],relevance:0},e.C_LINE_COMMENT_MODE,y,d,p,u,e.C_NUMBER_MODE]},y]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},d,p]},u,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` -`},m]}}const ox=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),lx=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ax=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],sx=[...lx,...ax],ux=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Fm=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Bm=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),cx=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),fx=Fm.concat(Bm).sort().reverse();function dx(e){const i=ox(e),r=fx,l="and or not only",s="[\\w-]+",c="("+s+"|@\\{"+s+"\\})",u=[],d=[],p=function(z){return{className:"string",begin:"~?"+z+".*?"+z}},m=function(z,W,Q){return{className:z,begin:W,relevance:Q}},y={$pattern:/[a-z-]+/,keyword:l,attribute:ux.join(" ")},h={begin:"\\(",end:"\\)",contains:d,keywords:y,relevance:0};d.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p("'"),p('"'),i.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},i.UNICODE_RANGE,i.HEXCOLOR,h,m("variable","@@?"+s,10),m("variable","@\\{"+s+"\\}"),m("built_in","~?`[^`]*?`"),{className:"attribute",begin:s+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},i.IMPORTANT,{beginKeywords:"and not"},i.FUNCTION_DISPATCH);const b=d.concat({begin:/\{/,end:/\}/,contains:u}),E={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(d)},w={begin:c+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+cx.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:d}}]},S={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:y,returnEnd:!0,contains:d,relevance:0}},R={className:"variable",variants:[{begin:"@"+s+"\\s*:",relevance:15},{begin:"@"+s}],starts:{end:"[;}]",returnEnd:!0,contains:b}},N={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:c,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,E,m("keyword","all\\b"),m("variable","@\\{"+s+"\\}"),{begin:"\\b("+sx.join("|")+")\\b",className:"selector-tag"},i.CSS_NUMBER_MODE,m("selector-tag",c,0),m("selector-id","#"+c),m("selector-class","\\."+c,0),m("selector-tag","&",0),i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Fm.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Bm.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:b},{begin:"!important"},i.FUNCTION_DISPATCH]},L={begin:s+`:(:)?(${r.join("|")})`,returnBegin:!0,contains:[N]};return u.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,S,R,L,w,N,E,i.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:u}}function px(e){const i="\\[=*\\[",r="\\]=*\\]",l={begin:i,end:r,contains:["self"]},s=[e.COMMENT("--(?!"+i+")","$"),e.COMMENT("--"+i,r,{contains:[l],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:s.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:s}].concat(s)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:i,end:r,contains:[l],relevance:5}])}}function mx(e){const i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},l={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},u={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,p={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:i.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},m={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},y={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=e.inherit(m,{contains:[]}),b=e.inherit(y,{contains:[]});m.contains.push(b),y.contains.push(h);let E=[r,p];return[m,y,h,b].forEach(N=>{N.contains=N.contains.concat(E)}),E=E.concat(m,y),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:E},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:E}]}]},r,c,m,y,{className:"quote",begin:"^>\\s+",contains:E,end:"$"},s,l,p,u,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function hx(e){const i={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},r=/[a-zA-Z@][a-zA-Z0-9_]*/,d={"variable.language":["this","super"],$pattern:r,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},p={$pattern:r,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:d,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+p.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:p,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function yx(e){const i=e.regex,r=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],l=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,keyword:r.join(" ")},c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},u={begin:/->\{/,end:/\}/},d={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},p={scope:"variable",variants:[{begin:/\$\d/},{begin:i.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[d]},m={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},y=[e.BACKSLASH_ESCAPE,c,p],h=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],b=(S,R,N="\\1")=>{const L=N==="\\1"?N:i.concat(N,R);return i.concat(i.concat("(?:",S,")"),R,/(?:\\.|[^\\\/])*?/,L,/(?:\\.|[^\\\/])*?/,N,l)},E=(S,R,N)=>i.concat(i.concat("(?:",S,")"),R,/(?:\\.|[^\\\/])*?/,N,l),w=[p,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),u,{className:"string",contains:y,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},m,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:b("s|tr|y",i.either(...h,{capture:!0}))},{begin:b("s|tr|y","\\(","\\)")},{begin:b("s|tr|y","\\[","\\]")},{begin:b("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:E("(?:m|qr)?",/\//,/\//)},{begin:E("m|qr",i.either(...h,{capture:!0}),/\1/)},{begin:E("m|qr",/\(/,/\)/)},{begin:E("m|qr",/\[/,/\]/)},{begin:E("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,d]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,d,m]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=w,u.contains=w,{name:"Perl",aliases:["pl","pm"],keywords:s,contains:w}}function bx(e){const i=e.regex,r=/(?![A-Za-z0-9])(?![$])/,l=i.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,r),s=i.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,r),c=i.concat(/[A-Z]+/,r),u={scope:"variable",match:"\\$+"+l},d={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},p={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},m=e.inherit(e.APOS_STRING_MODE,{illegal:null}),y=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(p)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(p),"on:begin":(Z,$)=>{$.data._beginMatch=Z[1]||Z[2]},"on:end":(Z,$)=>{$.data._beginMatch!==Z[1]&&$.ignoreMatch()}},b=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),E=`[ -]`,w={scope:"string",variants:[y,m,h,b]},S={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},R=["false","null","true"],N=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],L=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],W={keyword:N,literal:(Z=>{const $=[];return Z.forEach(se=>{$.push(se),se.toLowerCase()===se?$.push(se.toUpperCase()):$.push(se.toLowerCase())}),$})(R),built_in:L},Q=Z=>Z.map($=>$.replace(/\|\d+$/,"")),M={variants:[{match:[/new/,i.concat(E,"+"),i.concat("(?!",Q(L).join("\\b|"),"\\b)"),s],scope:{1:"keyword",4:"title.class"}}]},q=i.concat(l,"\\b(?!\\()"),ne={variants:[{match:[i.concat(/::/,i.lookahead(/(?!class\b)/)),q],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[s,i.concat(/::/,i.lookahead(/(?!class\b)/)),q],scope:{1:"title.class",3:"variable.constant"}},{match:[s,i.concat("::",i.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[s,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},X={scope:"attr",match:i.concat(l,i.lookahead(":"),i.lookahead(/(?!::)/))},I={relevance:0,begin:/\(/,end:/\)/,keywords:W,contains:[X,u,ne,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,w,S,M]},K={relevance:0,match:[/\b/,i.concat("(?!fn\\b|function\\b|",Q(N).join("\\b|"),"|",Q(L).join("\\b|"),"\\b)"),l,i.concat(E,"*"),i.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[I]};I.contains.push(K);const Y=[X,ne,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,w,S,M],re={begin:i.concat(/#\[\s*\\?/,i.either(s,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:R,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:R,keyword:["new","array"]},contains:["self",...Y]},...Y,{scope:"meta",variants:[{match:s},{match:c}]}]};return{case_insensitive:!1,keywords:W,contains:[re,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},d,{scope:"variable.language",match:/\$this\b/},u,K,ne,{match:[/const/,/\s/,l],scope:{1:"keyword",3:"variable.constant"}},M,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:W,contains:["self",re,u,ne,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,w,S]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},w,S]}}function Ex(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function _x(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function vx(e){const i=e.regex,r=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),l=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],d={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:l,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},p={className:"meta",begin:/^(>>>|\.\.\.) /},m={className:"subst",begin:/\{/,end:/\}/,keywords:d,illegal:/#/},y={begin:/\{\{/,relevance:0},h={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,p,y,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,p,y,m]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,y,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,y,m]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},b="[0-9](_?[0-9])*",E=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,w=`\\b|${l.join("|")}`,S={className:"number",relevance:0,variants:[{begin:`(\\b(${b})|(${E}))[eE][+-]?(${b})[jJ]?(?=${w})`},{begin:`(${E})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${w})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${w})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${w})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${w})`},{begin:`\\b(${b})[jJ](?=${w})`}]},R={className:"comment",begin:i.lookahead(/# type:/),end:/$/,keywords:d,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},N={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:["self",p,S,h,e.HASH_COMMENT_MODE]}]};return m.contains=[h,S,p],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:d,illegal:/(<\/|\?)|=>/,contains:[p,S,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},h,R,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[N]},{variants:[{match:[/\bclass/,/\s+/,r,/\s*/,/\(\s*/,r,/\s*\)/]},{match:[/\bclass/,/\s+/,r]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[S,N,h]}]}}function kx(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function wx(e){const i=e.regex,r=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,l=i.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),s=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,c=i.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:r,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:i.lookahead(i.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:r},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[s,l]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,l]},{scope:{1:"punctuation",2:"number"},match:[c,l]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,l]}]},{scope:{3:"operator"},match:[r,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:s},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function xx(e){const i=e.regex,r="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",l=i.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),s=i.concat(l,/(::\w+)*/),u={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},d={className:"doctag",begin:"@[A-Za-z]+"},p={begin:"#<",end:">"},m=[e.COMMENT("#","$",{contains:[d]}),e.COMMENT("^=begin","^=end",{contains:[d],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],y={className:"subst",begin:/#\{/,end:/\}/,keywords:u},h={className:"string",contains:[e.BACKSLASH_ESCAPE,y],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:i.concat(/<<[-~]?'?/,i.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,y]})]}]},b="[1-9](_?[0-9])*|0",E="[0-9](_?[0-9])*",w={className:"number",relevance:0,variants:[{begin:`\\b(${b})(\\.(${E}))?([eE][+-]?(${E})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},S={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:u}]},M=[h,{variants:[{match:[/class\s+/,s,/\s+<\s+/,s]},{match:[/\b(class|module)\s+/,s]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:u},{match:[/(include|extend)\s+/,s],scope:{2:"title.class"},keywords:u},{relevance:0,match:[s,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:l,scope:"title.class"},{match:[/def/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[S]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[h,{begin:r}],relevance:0},w,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:u},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,y],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(p,m),relevance:0}].concat(p,m);y.contains=M,S.contains=M;const I=[{begin:/^\s*=>/,starts:{end:"$",contains:M}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:u,contains:M}}];return m.unshift(p),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:u,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(I).concat(m).concat(M)}}function Sx(e){const i=e.regex,r=/(r#)?/,l=i.concat(r,e.UNDERSCORE_IDENT_RE),s=i.concat(r,e.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:i.concat(/\b/,/(?!let|for|while|if|else|match\b)/,s,i.lookahead(/\s*\(/))},u="([ui](8|16|32|64|128|size)|f(32|64))?",d=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],p=["true","false","Some","None","Ok","Err"],m=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],y=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:y,keyword:d,literal:p,built_in:m},illegal:""},c]}}const Nx=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Cx=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Tx=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Ax=[...Cx,...Tx],Rx=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Ox=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Ix=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Mx=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Lx(e){const i=Nx(e),r=Ix,l=Ox,s="@[a-z-]+",c="and or not only",d={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Ax.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+l.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+r.join("|")+")"},d,{begin:/\(/,end:/\)/,contains:[i.CSS_NUMBER_MODE]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Mx.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[i.BLOCK_COMMENT,d,i.HEXCOLOR,i.CSS_NUMBER_MODE,i.UNICODE_RANGE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i.IMPORTANT,i.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:s,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:c,attribute:Rx.join(" ")},contains:[{begin:s,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},d,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i.HEXCOLOR,i.CSS_NUMBER_MODE]},i.FUNCTION_DISPATCH]}}function Dx(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function Px(e){const i=e.regex,r=e.COMMENT("--","$"),l={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},s={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],u=["double precision","large object","with timezone","without timezone"],d=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],p=["add","asc","collation","desc","final","first","last","view"],m=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],y=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],h=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],b=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],E=y,w=[...m,...p].filter(Q=>!y.includes(Q)),S={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},R={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},N={match:i.concat(/\b/,i.either(...E),/\s*\(/),relevance:0,keywords:{built_in:E}};function L(Q){return i.concat(/\b/,i.either(...Q.map(M=>M.replace(/\s+/,"\\s+"))),/\b/)}const z={scope:"keyword",match:L(b),relevance:0};function W(Q,{exceptions:M,when:q}={}){const ne=q;return M=M||[],Q.map(X=>X.match(/\|\d+$/)||M.includes(X)?X:ne(X)?`${X}|0`:X)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:W(w,{when:Q=>Q.length<3}),literal:c,type:d,built_in:h},contains:[{scope:"type",match:L(u)},z,N,S,l,s,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,r,R]}}function Um(e){return e?typeof e=="string"?e:e.source:null}function ko(e){return Ze("(?=",e,")")}function Ze(...e){return e.map(r=>Um(r)).join("")}function zx(e){const i=e[e.length-1];return typeof i=="object"&&i.constructor===Object?(e.splice(e.length-1,1),i):{}}function $t(...e){return"("+(zx(e).capture?"":"?:")+e.map(l=>Um(l)).join("|")+")"}const Ku=e=>Ze(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Fx=["Protocol","Type"].map(Ku),hp=["init","self"].map(Ku),Bx=["Any","Self"],fu=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],yp=["false","nil","true"],Ux=["assignment","associativity","higherThan","left","lowerThan","none","right"],$x=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],bp=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],$m=$t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Hm=$t($m,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),du=Ze($m,Hm,"*"),jm=$t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),na=$t(jm,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Bn=Ze(jm,na,"*"),Ql=Ze(/[A-Z]/,na,"*"),Hx=["attached","autoclosure",Ze(/convention\(/,$t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Ze(/objc\(/,Bn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],jx=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function Gx(e){const i={match:/\s+/,relevance:0},r=e.COMMENT("/\\*","\\*/",{contains:["self"]}),l=[e.C_LINE_COMMENT_MODE,r],s={match:[/\./,$t(...Fx,...hp)],className:{2:"keyword"}},c={match:Ze(/\./,$t(...fu)),relevance:0},u=fu.filter(Ke=>typeof Ke=="string").concat(["_|0"]),d=fu.filter(Ke=>typeof Ke!="string").concat(Bx).map(Ku),p={variants:[{className:"keyword",match:$t(...d,...hp)}]},m={$pattern:$t(/\b\w+/,/#\w+/),keyword:u.concat($x),literal:yp},y=[s,c,p],h={match:Ze(/\./,$t(...bp)),relevance:0},b={className:"built_in",match:Ze(/\b/,$t(...bp),/(?=\()/)},E=[h,b],w={match:/->/,relevance:0},S={className:"operator",relevance:0,variants:[{match:du},{match:`\\.(\\.|${Hm})+`}]},R=[w,S],N="([0-9]_*)+",L="([0-9a-fA-F]_*)+",z={className:"number",relevance:0,variants:[{match:`\\b(${N})(\\.(${N}))?([eE][+-]?(${N}))?\\b`},{match:`\\b0x(${L})(\\.(${L}))?([pP][+-]?(${N}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},W=(Ke="")=>({className:"subst",variants:[{match:Ze(/\\/,Ke,/[0\\tnr"']/)},{match:Ze(/\\/,Ke,/u\{[0-9a-fA-F]{1,8}\}/)}]}),Q=(Ke="")=>({className:"subst",match:Ze(/\\/,Ke,/[\t ]*(?:[\r\n]|\r\n)/)}),M=(Ke="")=>({className:"subst",label:"interpol",begin:Ze(/\\/,Ke,/\(/),end:/\)/}),q=(Ke="")=>({begin:Ze(Ke,/"""/),end:Ze(/"""/,Ke),contains:[W(Ke),Q(Ke),M(Ke)]}),ne=(Ke="")=>({begin:Ze(Ke,/"/),end:Ze(/"/,Ke),contains:[W(Ke),M(Ke)]}),X={className:"string",variants:[q(),q("#"),q("##"),q("###"),ne(),ne("#"),ne("##"),ne("###")]},I=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],K={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:I},Y=Ke=>{const Jt=Ze(Ke,/\//),an=Ze(/\//,Ke);return{begin:Jt,end:an,contains:[...I,{scope:"comment",begin:`#(?!.*${an})`,end:/$/}]}},re={scope:"regexp",variants:[Y("###"),Y("##"),Y("#"),K]},Z={match:Ze(/`/,Bn,/`/)},$={className:"variable",match:/\$\d+/},se={className:"variable",match:`\\$${na}+`},P=[Z,$,se],G={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:jx,contains:[...R,z,X]}]}},ue={scope:"keyword",match:Ze(/@/,$t(...Hx),ko($t(/\(/,/\s+/)))},v={scope:"meta",match:Ze(/@/,Bn)},A=[G,ue,v],U={match:ko(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Ze(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,na,"+")},{className:"type",match:Ql,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Ze(/\s+&\s+/,ko(Ql)),relevance:0}]},k={begin://,keywords:m,contains:[...l,...y,...A,w,U]};U.contains.push(k);const ke={match:Ze(Bn,/\s*:/),keywords:"_|0",relevance:0},Me={begin:/\(/,end:/\)/,relevance:0,keywords:m,contains:["self",ke,...l,re,...y,...E,...R,z,X,...P,...A,U]},we={begin://,keywords:"repeat each",contains:[...l,U]},$e={begin:$t(ko(Ze(Bn,/\s*:/)),ko(Ze(Bn,/\s+/,Bn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Bn}]},De={begin:/\(/,end:/\)/,keywords:m,contains:[$e,...l,...y,...R,z,X,...A,U,Me],endsParent:!0,illegal:/["']/},Ge={match:[/(func|macro)/,/\s+/,$t(Z.match,Bn,du)],className:{1:"keyword",3:"title.function"},contains:[we,De,i],illegal:[/\[/,/%/]},Xe={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[we,De,i],illegal:/\[|%/},Xt={match:[/operator/,/\s+/,du],className:{1:"keyword",3:"title"}},rr={begin:[/precedencegroup/,/\s+/,Ql],className:{1:"keyword",3:"title"},contains:[U],keywords:[...Ux,...yp],end:/}/},An={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Hn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},jn={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Bn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:m,contains:[we,...y,{begin:/:/,end:/\{/,keywords:m,contains:[{scope:"title.class.inherited",match:Ql},...y],relevance:0}]};for(const Ke of X.variants){const Jt=Ke.contains.find(Rn=>Rn.label==="interpol");Jt.keywords=m;const an=[...y,...E,...R,z,X,...P];Jt.contains=[...an,{begin:/\(/,end:/\)/,contains:["self",...an]}]}return{name:"Swift",keywords:m,contains:[...l,Ge,Xe,An,Hn,jn,Xt,rr,{beginKeywords:"import",end:/$/,contains:[...l],relevance:0},re,...y,...E,...R,z,X,...P,...A,U,Me]}}const ra="[A-Za-z$_][0-9A-Za-z$_]*",Gm=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Km=["true","false","null","undefined","NaN","Infinity"],Wm=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Vm=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],qm=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ym=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Qm=[].concat(qm,Wm,Vm);function Kx(e){const i=e.regex,r=(G,{after:ue})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(G,ue)=>{const v=G[0].length+G.index,A=G.input[v];if(A==="<"||A===","){ue.ignoreMatch();return}A===">"&&(r(G,{after:v})||ue.ignoreMatch());let U;const k=G.input.substring(v);if(U=k.match(/^\s*=/)){ue.ignoreMatch();return}if((U=k.match(/^\s+extends\s+/))&&U.index===0){ue.ignoreMatch();return}}},d={$pattern:ra,keyword:Gm,literal:Km,built_in:Qm,"variable.language":Ym},p="[0-9](_?[0-9])*",m=`\\.(${p})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${y})((${m})|\\.)?|(${m}))[eE][+-]?(${p})\\b`},{begin:`\\b(${y})\\b((${m})\\b|\\.)?|(${m})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},w={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},S={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},R={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},L={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},z=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,w,S,R,{match:/\$\d+/},h];b.contains=z.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(z)});const W=[].concat(L,b.contains),Q=W.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(W)}]),M={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Q},q={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,i.concat(l,"(",i.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},ne={relevance:0,match:i.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Wm,...Vm]}},X={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},I={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[M],illegal:/%/},K={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Y(G){return i.concat("(?!",G.join("|"),")")}const re={match:i.concat(/\b/,Y([...qm,"super","import","await"].map(G=>`${G}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},Z={begin:i.concat(/\./,i.lookahead(i.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},$={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},M]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",P={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:Q,CLASS_REFERENCE:ne},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),X,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,w,S,R,L,{match:/\$\d+/},h,ne,{scope:"attr",match:l+i.lookahead(":"),relevance:0},P,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[L,e.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Q}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:c},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},I,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},Z,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},re,K,q,$,{match:/\$[(.]/}]}}function Wx(e){const i=e.regex,r=Kx(e),l=ra,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],c={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},u={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:s},contains:[r.exports.CLASS_REFERENCE]},d={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},p=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],m={$pattern:ra,keyword:Gm.concat(p),literal:Km,built_in:Qm.concat(s),"variable.language":Ym},y={className:"meta",begin:"@"+l},h=(S,R,N)=>{const L=S.contains.findIndex(z=>z.label===R);if(L===-1)throw new Error("can not find mode to replace");S.contains.splice(L,1,N)};Object.assign(r.keywords,m),r.exports.PARAMS_CONTAINS.push(y);const b=r.contains.find(S=>S.scope==="attr"),E=Object.assign({},b,{match:i.concat(l,i.lookahead(/\s*\?:/))});r.exports.PARAMS_CONTAINS.push([r.exports.CLASS_REFERENCE,b,E]),r.contains=r.contains.concat([y,c,u,E]),h(r,"shebang",e.SHEBANG()),h(r,"use_strict",d);const w=r.contains.find(S=>S.label==="func.def");return w.relevance=0,Object.assign(r,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),r}function Vx(e){const i=e.regex,r={className:"string",begin:/"(""|[^/n])"C\b/},l={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s=/\d{1,2}\/\d{1,2}\/\d{4}/,c=/\d{4}-\d{1,2}-\d{1,2}/,u=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,d=/\d{1,2}(:\d{1,2}){1,2}/,p={className:"literal",variants:[{begin:i.concat(/# */,i.either(c,s),/ *#/)},{begin:i.concat(/# */,d,/ *#/)},{begin:i.concat(/# */,u,/ *#/)},{begin:i.concat(/# */,i.either(c,s),/ +/,i.either(u,d),/ *#/)}]},m={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},y={className:"label",begin:/^\w+:/},h=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),b=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[r,l,p,m,y,h,b,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[b]}]}}function qx(e){e.regex;const i=e.COMMENT(/\(;/,/;\)/);i.contains.push("self");const r=e.COMMENT(/;;/,/$/),l=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],s={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},c={className:"variable",begin:/\$[\w_]+/},u={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},d={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},p={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},m={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:l},contains:[r,i,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},c,u,s,e.QUOTE_STRING_MODE,p,m,d]}}function Yx(e){const i=e.regex,r=i.concat(/[\p{L}_]/u,i.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),l=/[\p{L}0-9._:-]+/u,s={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},c={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},u=e.inherit(c,{begin:/\(/,end:/\)/}),d=e.inherit(e.APOS_STRING_MODE,{className:"string"}),p=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),m={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[c,p,d,u,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[c,u,p,d]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[p]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:i.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:r,relevance:0,starts:m}]},{className:"tag",begin:i.concat(/<\//,i.lookahead(i.concat(r,/>/))),contains:[{className:"name",begin:r,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Qx(e){const i="true false yes no null",r="[\\w#;/?:@&=+$,.~*'()[\\]]+",l={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},u={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,s]},d=e.inherit(u,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),b={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},E={end:",",endsWithParent:!0,excludeEnd:!0,keywords:i,relevance:0},w={begin:/\{/,end:/\}/,contains:[E],illegal:"\\n",relevance:0},S={begin:"\\[",end:"\\]",contains:[E],illegal:"\\n",relevance:0},R=[l,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+r},{className:"type",begin:"!<"+r+">"},{className:"type",begin:"!"+r},{className:"type",begin:"!!"+r},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:i,keywords:{literal:i}},b,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},w,S,c,u],N=[...R];return N.pop(),N.push(d),E.contains=N,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:R}}const Zx={arduino:Rw,bash:Ow,c:Iw,cpp:Mw,csharp:Lw,css:jw,diff:Gw,go:Kw,graphql:Ww,ini:Vw,java:qw,javascript:Jw,json:nx,kotlin:ix,less:dx,lua:px,makefile:mx,markdown:gx,objectivec:hx,perl:yx,php:bx,"php-template":Ex,plaintext:_x,python:vx,"python-repl":kx,r:wx,ruby:xx,rust:Sx,scss:Lx,shell:Dx,sql:Px,swift:Gx,typescript:Wx,vbnet:Vx,wasm:qx,xml:Yx,yaml:Qx};var pu,Ep;function Xx(){if(Ep)return pu;Ep=1;function e(C){return C instanceof Map?C.clear=C.delete=C.set=function(){throw new Error("map is read-only")}:C instanceof Set&&(C.add=C.clear=C.delete=function(){throw new Error("set is read-only")}),Object.freeze(C),Object.getOwnPropertyNames(C).forEach(V=>{const de=C[V],Re=typeof de;(Re==="object"||Re==="function")&&!Object.isFrozen(de)&&e(de)}),C}class i{constructor(V){V.data===void 0&&(V.data={}),this.data=V.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function r(C){return C.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function l(C,...V){const de=Object.create(null);for(const Re in C)de[Re]=C[Re];return V.forEach(function(Re){for(const rt in Re)de[rt]=Re[rt]}),de}const s="",c=C=>!!C.scope,u=(C,{prefix:V})=>{if(C.startsWith("language:"))return C.replace("language:","language-");if(C.includes(".")){const de=C.split(".");return[`${V}${de.shift()}`,...de.map((Re,rt)=>`${Re}${"_".repeat(rt+1)}`)].join(" ")}return`${V}${C}`};class d{constructor(V,de){this.buffer="",this.classPrefix=de.classPrefix,V.walk(this)}addText(V){this.buffer+=r(V)}openNode(V){if(!c(V))return;const de=u(V.scope,{prefix:this.classPrefix});this.span(de)}closeNode(V){c(V)&&(this.buffer+=s)}value(){return this.buffer}span(V){this.buffer+=``}}const p=(C={})=>{const V={children:[]};return Object.assign(V,C),V};class m{constructor(){this.rootNode=p(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(V){this.top.children.push(V)}openNode(V){const de=p({scope:V});this.add(de),this.stack.push(de)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(V){return this.constructor._walk(V,this.rootNode)}static _walk(V,de){return typeof de=="string"?V.addText(de):de.children&&(V.openNode(de),de.children.forEach(Re=>this._walk(V,Re)),V.closeNode(de)),V}static _collapse(V){typeof V!="string"&&V.children&&(V.children.every(de=>typeof de=="string")?V.children=[V.children.join("")]:V.children.forEach(de=>{m._collapse(de)}))}}class y extends m{constructor(V){super(),this.options=V}addText(V){V!==""&&this.add(V)}startScope(V){this.openNode(V)}endScope(){this.closeNode()}__addSublanguage(V,de){const Re=V.root;de&&(Re.scope=`language:${de}`),this.add(Re)}toHTML(){return new d(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(C){return C?typeof C=="string"?C:C.source:null}function b(C){return S("(?=",C,")")}function E(C){return S("(?:",C,")*")}function w(C){return S("(?:",C,")?")}function S(...C){return C.map(de=>h(de)).join("")}function R(C){const V=C[C.length-1];return typeof V=="object"&&V.constructor===Object?(C.splice(C.length-1,1),V):{}}function N(...C){return"("+(R(C).capture?"":"?:")+C.map(Re=>h(Re)).join("|")+")"}function L(C){return new RegExp(C.toString()+"|").exec("").length-1}function z(C,V){const de=C&&C.exec(V);return de&&de.index===0}const W=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Q(C,{joinWith:V}){let de=0;return C.map(Re=>{de+=1;const rt=de;let lt=h(Re),he="";for(;lt.length>0;){const me=W.exec(lt);if(!me){he+=lt;break}he+=lt.substring(0,me.index),lt=lt.substring(me.index+me[0].length),me[0][0]==="\\"&&me[1]?he+="\\"+String(Number(me[1])+rt):(he+=me[0],me[0]==="("&&de++)}return he}).map(Re=>`(${Re})`).join(V)}const M=/\b\B/,q="[a-zA-Z]\\w*",ne="[a-zA-Z_]\\w*",X="\\b\\d+(\\.\\d+)?",I="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",K="\\b(0b[01]+)",Y="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",re=(C={})=>{const V=/^#![ ]*\//;return C.binary&&(C.begin=S(V,/.*\b/,C.binary,/\b.*/)),l({scope:"meta",begin:V,end:/$/,relevance:0,"on:begin":(de,Re)=>{de.index!==0&&Re.ignoreMatch()}},C)},Z={begin:"\\\\[\\s\\S]",relevance:0},$={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Z]},se={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Z]},P={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},G=function(C,V,de={}){const Re=l({scope:"comment",begin:C,end:V,contains:[]},de);Re.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const rt=N("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return Re.contains.push({begin:S(/[ ]+/,"(",rt,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Re},ue=G("//","$"),v=G("/\\*","\\*/"),A=G("#","$"),U={scope:"number",begin:X,relevance:0},k={scope:"number",begin:I,relevance:0},ke={scope:"number",begin:K,relevance:0},Me={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Z,{begin:/\[/,end:/\]/,relevance:0,contains:[Z]}]},we={scope:"title",begin:q,relevance:0},$e={scope:"title",begin:ne,relevance:0},De={begin:"\\.\\s*"+ne,relevance:0};var Xe=Object.freeze({__proto__:null,APOS_STRING_MODE:$,BACKSLASH_ESCAPE:Z,BINARY_NUMBER_MODE:ke,BINARY_NUMBER_RE:K,COMMENT:G,C_BLOCK_COMMENT_MODE:v,C_LINE_COMMENT_MODE:ue,C_NUMBER_MODE:k,C_NUMBER_RE:I,END_SAME_AS_BEGIN:function(C){return Object.assign(C,{"on:begin":(V,de)=>{de.data._beginMatch=V[1]},"on:end":(V,de)=>{de.data._beginMatch!==V[1]&&de.ignoreMatch()}})},HASH_COMMENT_MODE:A,IDENT_RE:q,MATCH_NOTHING_RE:M,METHOD_GUARD:De,NUMBER_MODE:U,NUMBER_RE:X,PHRASAL_WORDS_MODE:P,QUOTE_STRING_MODE:se,REGEXP_MODE:Me,RE_STARTERS_RE:Y,SHEBANG:re,TITLE_MODE:we,UNDERSCORE_IDENT_RE:ne,UNDERSCORE_TITLE_MODE:$e});function Xt(C,V){C.input[C.index-1]==="."&&V.ignoreMatch()}function rr(C,V){C.className!==void 0&&(C.scope=C.className,delete C.className)}function An(C,V){V&&C.beginKeywords&&(C.begin="\\b("+C.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",C.__beforeBegin=Xt,C.keywords=C.keywords||C.beginKeywords,delete C.beginKeywords,C.relevance===void 0&&(C.relevance=0))}function Hn(C,V){Array.isArray(C.illegal)&&(C.illegal=N(...C.illegal))}function jn(C,V){if(C.match){if(C.begin||C.end)throw new Error("begin & end are not supported with match");C.begin=C.match,delete C.match}}function Ke(C,V){C.relevance===void 0&&(C.relevance=1)}const Jt=(C,V)=>{if(!C.beforeMatch)return;if(C.starts)throw new Error("beforeMatch cannot be used with starts");const de=Object.assign({},C);Object.keys(C).forEach(Re=>{delete C[Re]}),C.keywords=de.keywords,C.begin=S(de.beforeMatch,b(de.begin)),C.starts={relevance:0,contains:[Object.assign(de,{endsParent:!0})]},C.relevance=0,delete de.beforeMatch},an=["of","and","for","in","not","or","if","then","parent","list","value"],Rn="keyword";function bn(C,V,de=Rn){const Re=Object.create(null);return typeof C=="string"?rt(de,C.split(" ")):Array.isArray(C)?rt(de,C):Object.keys(C).forEach(function(lt){Object.assign(Re,bn(C[lt],V,lt))}),Re;function rt(lt,he){V&&(he=he.map(me=>me.toLowerCase())),he.forEach(function(me){const xe=me.split("|");Re[xe[0]]=[lt,On(xe[0],xe[1])]})}}function On(C,V){return V?Number(V):Cr(C)?0:1}function Cr(C){return an.includes(C.toLowerCase())}const Tr={},sn=C=>{console.error(C)},Ar=(C,...V)=>{console.log(`WARN: ${C}`,...V)},j=(C,V)=>{Tr[`${C}/${V}`]||(console.log(`Deprecated as of ${C}. ${V}`),Tr[`${C}/${V}`]=!0)},ae=new Error;function Te(C,V,{key:de}){let Re=0;const rt=C[de],lt={},he={};for(let me=1;me<=V.length;me++)he[me+Re]=rt[me],lt[me+Re]=!0,Re+=L(V[me-1]);C[de]=he,C[de]._emit=lt,C[de]._multi=!0}function Pe(C){if(Array.isArray(C.begin)){if(C.skip||C.excludeBegin||C.returnBegin)throw sn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ae;if(typeof C.beginScope!="object"||C.beginScope===null)throw sn("beginScope must be object"),ae;Te(C,C.begin,{key:"beginScope"}),C.begin=Q(C.begin,{joinWith:""})}}function He(C){if(Array.isArray(C.end)){if(C.skip||C.excludeEnd||C.returnEnd)throw sn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ae;if(typeof C.endScope!="object"||C.endScope===null)throw sn("endScope must be object"),ae;Te(C,C.end,{key:"endScope"}),C.end=Q(C.end,{joinWith:""})}}function _t(C){C.scope&&typeof C.scope=="object"&&C.scope!==null&&(C.beginScope=C.scope,delete C.scope)}function En(C){_t(C),typeof C.beginScope=="string"&&(C.beginScope={_wrap:C.beginScope}),typeof C.endScope=="string"&&(C.endScope={_wrap:C.endScope}),Pe(C),He(C)}function jt(C){function V(he,me){return new RegExp(h(he),"m"+(C.case_insensitive?"i":"")+(C.unicodeRegex?"u":"")+(me?"g":""))}class de{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(me,xe){xe.position=this.position++,this.matchIndexes[this.matchAt]=xe,this.regexes.push([xe,me]),this.matchAt+=L(me)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const me=this.regexes.map(xe=>xe[1]);this.matcherRe=V(Q(me,{joinWith:"|"}),!0),this.lastIndex=0}exec(me){this.matcherRe.lastIndex=this.lastIndex;const xe=this.matcherRe.exec(me);if(!xe)return null;const yt=xe.findIndex((In,or)=>or>0&&In!==void 0),tt=this.matchIndexes[yt];return xe.splice(0,yt),Object.assign(xe,tt)}}class Re{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(me){if(this.multiRegexes[me])return this.multiRegexes[me];const xe=new de;return this.rules.slice(me).forEach(([yt,tt])=>xe.addRule(yt,tt)),xe.compile(),this.multiRegexes[me]=xe,xe}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(me,xe){this.rules.push([me,xe]),xe.type==="begin"&&this.count++}exec(me){const xe=this.getMatcher(this.regexIndex);xe.lastIndex=this.lastIndex;let yt=xe.exec(me);if(this.resumingScanAtSamePosition()&&!(yt&&yt.index===this.lastIndex)){const tt=this.getMatcher(0);tt.lastIndex=this.lastIndex+1,yt=tt.exec(me)}return yt&&(this.regexIndex+=yt.position+1,this.regexIndex===this.count&&this.considerAll()),yt}}function rt(he){const me=new Re;return he.contains.forEach(xe=>me.addRule(xe.begin,{rule:xe,type:"begin"})),he.terminatorEnd&&me.addRule(he.terminatorEnd,{type:"end"}),he.illegal&&me.addRule(he.illegal,{type:"illegal"}),me}function lt(he,me){const xe=he;if(he.isCompiled)return xe;[rr,jn,En,Jt].forEach(tt=>tt(he,me)),C.compilerExtensions.forEach(tt=>tt(he,me)),he.__beforeBegin=null,[An,Hn,Ke].forEach(tt=>tt(he,me)),he.isCompiled=!0;let yt=null;return typeof he.keywords=="object"&&he.keywords.$pattern&&(he.keywords=Object.assign({},he.keywords),yt=he.keywords.$pattern,delete he.keywords.$pattern),yt=yt||/\w+/,he.keywords&&(he.keywords=bn(he.keywords,C.case_insensitive)),xe.keywordPatternRe=V(yt,!0),me&&(he.begin||(he.begin=/\B|\b/),xe.beginRe=V(xe.begin),!he.end&&!he.endsWithParent&&(he.end=/\B|\b/),he.end&&(xe.endRe=V(xe.end)),xe.terminatorEnd=h(xe.end)||"",he.endsWithParent&&me.terminatorEnd&&(xe.terminatorEnd+=(he.end?"|":"")+me.terminatorEnd)),he.illegal&&(xe.illegalRe=V(he.illegal)),he.contains||(he.contains=[]),he.contains=[].concat(...he.contains.map(function(tt){return Gn(tt==="self"?he:tt)})),he.contains.forEach(function(tt){lt(tt,xe)}),he.starts&<(he.starts,me),xe.matcher=rt(xe),xe}if(C.compilerExtensions||(C.compilerExtensions=[]),C.contains&&C.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return C.classNameAliases=l(C.classNameAliases||{}),lt(C)}function _n(C){return C?C.endsWithParent||_n(C.starts):!1}function Gn(C){return C.variants&&!C.cachedVariants&&(C.cachedVariants=C.variants.map(function(V){return l(C,{variants:null},V)})),C.cachedVariants?C.cachedVariants:_n(C)?l(C,{starts:C.starts?l(C.starts):null}):Object.isFrozen(C)?l(C):C}var vt="11.11.2";class un extends Error{constructor(V,de){super(V),this.name="HTMLInjectionError",this.html=de}}const Tt=r,ei=l,ti=Symbol("nomatch"),ir=7,Kn=function(C){const V=Object.create(null),de=Object.create(null),Re=[];let rt=!0;const lt="Could not find the language '{}', did you forget to load/include a language module?",he={disableAutodetect:!0,name:"Plain text",contains:[]};let me={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:y};function xe(oe){return me.noHighlightRe.test(oe)}function yt(oe){let ve=oe.className+" ";ve+=oe.parentNode?oe.parentNode.className:"";const ze=me.languageDetectRe.exec(ve);if(ze){const Be=vn(ze[1]);return Be||(Ar(lt.replace("{}",ze[1])),Ar("Falling back to no-highlight mode for this block.",oe)),Be?ze[1]:"no-highlight"}return ve.split(/\s+/).find(Be=>xe(Be)||vn(Be))}function tt(oe,ve,ze){let Be="",mt="";typeof ve=="object"?(Be=oe,ze=ve.ignoreIllegals,mt=ve.language):(j("10.7.0","highlight(lang, code, ...args) has been deprecated."),j("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),mt=oe,Be=ve),ze===void 0&&(ze=!0);const ut={code:Be,language:mt};Or("before:highlight",ut);const Mn=ut.result?ut.result:In(ut.language,ut.code,ze);return Mn.code=ut.code,Or("after:highlight",Mn),Mn}function In(oe,ve,ze,Be){const mt=Object.create(null);function ut(ce,ge){return ce.keywords[ge]}function Mn(){if(!Ie.keywords){gt.addText(Qe);return}let ce=0;Ie.keywordPatternRe.lastIndex=0;let ge=Ie.keywordPatternRe.exec(Qe),Ae="";for(;ge;){Ae+=Qe.substring(ce,ge.index);const je=cn.case_insensitive?ge[0].toLowerCase():ge[0],dt=ut(Ie,je);if(dt){const[xt,ma]=dt;if(gt.addText(Ae),Ae="",mt[je]=(mt[je]||0)+1,mt[je]<=ir&&(Lr+=ma),xt.startsWith("_"))Ae+=ge[0];else{const $o=cn.classNameAliases[xt]||xt;Ft(ge[0],$o)}}else Ae+=ge[0];ce=Ie.keywordPatternRe.lastIndex,ge=Ie.keywordPatternRe.exec(Qe)}Ae+=Qe.substring(ce),gt.addText(Ae)}function ii(){if(Qe==="")return;let ce=null;if(typeof Ie.subLanguage=="string"){if(!V[Ie.subLanguage]){gt.addText(Qe);return}ce=In(Ie.subLanguage,Qe,!0,Ui[Ie.subLanguage]),Ui[Ie.subLanguage]=ce._top}else ce=Rr(Qe,Ie.subLanguage.length?Ie.subLanguage:null);Ie.relevance>0&&(Lr+=ce.relevance),gt.__addSublanguage(ce._emitter,ce.language)}function zt(){Ie.subLanguage!=null?ii():Mn(),Qe=""}function Ft(ce,ge){ce!==""&&(gt.startScope(ge),gt.addText(ce),gt.endScope())}function Ir(ce,ge){let Ae=1;const je=ge.length-1;for(;Ae<=je;){if(!ce._emit[Ae]){Ae++;continue}const dt=cn.classNameAliases[ce[Ae]]||ce[Ae],xt=ge[Ae];dt?Ft(xt,dt):(Qe=xt,Mn(),Qe=""),Ae++}}function lr(ce,ge){return ce.scope&&typeof ce.scope=="string"&>.openNode(cn.classNameAliases[ce.scope]||ce.scope),ce.beginScope&&(ce.beginScope._wrap?(Ft(Qe,cn.classNameAliases[ce.beginScope._wrap]||ce.beginScope._wrap),Qe=""):ce.beginScope._multi&&(Ir(ce.beginScope,ge),Qe="")),Ie=Object.create(ce,{parent:{value:Ie}}),Ie}function Mr(ce,ge,Ae){let je=z(ce.endRe,Ae);if(je){if(ce["on:end"]){const dt=new i(ce);ce["on:end"](ge,dt),dt.isMatchIgnored&&(je=!1)}if(je){for(;ce.endsParent&&ce.parent;)ce=ce.parent;return ce}}if(ce.endsWithParent)return Mr(ce.parent,ge,Ae)}function da(ce){return Ie.matcher.regexIndex===0?(Qe+=ce[0],1):(ur=!0,0)}function pa(ce){const ge=ce[0],Ae=ce.rule,je=new i(Ae),dt=[Ae.__beforeBegin,Ae["on:begin"]];for(const xt of dt)if(xt&&(xt(ce,je),je.isMatchIgnored))return da(ge);return Ae.skip?Qe+=ge:(Ae.excludeBegin&&(Qe+=ge),zt(),!Ae.returnBegin&&!Ae.excludeBegin&&(Qe=ge)),lr(Ae,ce),Ae.returnBegin?0:ge.length}function Fi(ce){const ge=ce[0],Ae=ve.substring(ce.index),je=Mr(Ie,ce,Ae);if(!je)return ti;const dt=Ie;Ie.endScope&&Ie.endScope._wrap?(zt(),Ft(ge,Ie.endScope._wrap)):Ie.endScope&&Ie.endScope._multi?(zt(),Ir(Ie.endScope,ce)):dt.skip?Qe+=ge:(dt.returnEnd||dt.excludeEnd||(Qe+=ge),zt(),dt.excludeEnd&&(Qe=ge));do Ie.scope&>.closeNode(),!Ie.skip&&!Ie.subLanguage&&(Lr+=Ie.relevance),Ie=Ie.parent;while(Ie!==je.parent);return je.starts&&lr(je.starts,ce),dt.returnEnd?0:ge.length}function Uo(){const ce=[];for(let ge=Ie;ge!==cn;ge=ge.parent)ge.scope&&ce.unshift(ge.scope);ce.forEach(ge=>gt.openNode(ge))}let ar={};function sr(ce,ge){const Ae=ge&&ge[0];if(Qe+=ce,Ae==null)return zt(),0;if(ar.type==="begin"&&ge.type==="end"&&ar.index===ge.index&&Ae===""){if(Qe+=ve.slice(ge.index,ge.index+1),!rt){const je=new Error(`0 width match regex (${oe})`);throw je.languageName=oe,je.badRule=ar.rule,je}return 1}if(ar=ge,ge.type==="begin")return pa(ge);if(ge.type==="illegal"&&!ze){const je=new Error('Illegal lexeme "'+Ae+'" for mode "'+(Ie.scope||"")+'"');throw je.mode=Ie,je}else if(ge.type==="end"){const je=Fi(ge);if(je!==ti)return je}if(ge.type==="illegal"&&Ae==="")return ge.index===ve.length||(Qe+=` -`),1;if(Dr>1e5&&Dr>ge.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Qe+=Ae,Ae.length}const cn=vn(oe);if(!cn)throw sn(lt.replace("{}",oe)),new Error('Unknown language: "'+oe+'"');const Bi=jt(cn);let Ve="",Ie=Be||Bi;const Ui={},gt=new me.__emitter(me);Uo();let Qe="",Lr=0,Ln=0,Dr=0,ur=!1;try{if(cn.__emitTokens)cn.__emitTokens(ve,gt);else{for(Ie.matcher.considerAll();;){Dr++,ur?ur=!1:Ie.matcher.considerAll(),Ie.matcher.lastIndex=Ln;const ce=Ie.matcher.exec(ve);if(!ce)break;const ge=ve.substring(Ln,ce.index),Ae=sr(ge,ce);Ln=ce.index+Ae}sr(ve.substring(Ln))}return gt.finalize(),Ve=gt.toHTML(),{language:oe,value:Ve,relevance:Lr,illegal:!1,_emitter:gt,_top:Ie}}catch(ce){if(ce.message&&ce.message.includes("Illegal"))return{language:oe,value:Tt(ve),illegal:!0,relevance:0,_illegalBy:{message:ce.message,index:Ln,context:ve.slice(Ln-100,Ln+100),mode:ce.mode,resultSoFar:Ve},_emitter:gt};if(rt)return{language:oe,value:Tt(ve),illegal:!1,relevance:0,errorRaised:ce,_emitter:gt,_top:Ie};throw ce}}function or(oe){const ve={value:Tt(oe),illegal:!1,relevance:0,_top:he,_emitter:new me.__emitter(me)};return ve._emitter.addText(oe),ve}function Rr(oe,ve){ve=ve||me.languages||Object.keys(V);const ze=or(oe),Be=ve.filter(vn).filter(Bo).map(zt=>In(zt,oe,!1));Be.unshift(ze);const mt=Be.sort((zt,Ft)=>{if(zt.relevance!==Ft.relevance)return Ft.relevance-zt.relevance;if(zt.language&&Ft.language){if(vn(zt.language).supersetOf===Ft.language)return 1;if(vn(Ft.language).supersetOf===zt.language)return-1}return 0}),[ut,Mn]=mt,ii=ut;return ii.secondBest=Mn,ii}function ua(oe,ve,ze){const Be=ve&&de[ve]||ze;oe.classList.add("hljs"),oe.classList.add(`language-${Be}`)}function Di(oe){let ve=null;const ze=yt(oe);if(xe(ze))return;if(Or("before:highlightElement",{el:oe,language:ze}),oe.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",oe);return}if(oe.children.length>0&&(me.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(oe)),me.throwUnescapedHTML))throw new un("One of your code blocks includes unescaped HTML.",oe.innerHTML);ve=oe;const Be=ve.textContent,mt=ze?tt(Be,{language:ze,ignoreIllegals:!0}):Rr(Be);oe.innerHTML=mt.value,oe.dataset.highlighted="yes",ua(oe,ze,mt.language),oe.result={language:mt.language,re:mt.relevance,relevance:mt.relevance},mt.secondBest&&(oe.secondBest={language:mt.secondBest.language,relevance:mt.secondBest.relevance}),Or("after:highlightElement",{el:oe,result:mt,text:Be})}function ca(oe){me=ei(me,oe)}const Vn=()=>{ni(),j("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Lo(){ni(),j("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Pi=!1;function ni(){function oe(){ni()}if(document.readyState==="loading"){Pi||window.addEventListener("DOMContentLoaded",oe,!1),Pi=!0;return}document.querySelectorAll(me.cssSelector).forEach(Di)}function Do(oe,ve){let ze=null;try{ze=ve(C)}catch(Be){if(sn("Language definition for '{}' could not be registered.".replace("{}",oe)),rt)sn(Be);else throw Be;ze=he}ze.name||(ze.name=oe),V[oe]=ze,ze.rawDefinition=ve.bind(null,C),ze.aliases&&Fo(ze.aliases,{languageName:oe})}function Po(oe){delete V[oe];for(const ve of Object.keys(de))de[ve]===oe&&delete de[ve]}function zo(){return Object.keys(V)}function vn(oe){return oe=(oe||"").toLowerCase(),V[oe]||V[de[oe]]}function Fo(oe,{languageName:ve}){typeof oe=="string"&&(oe=[oe]),oe.forEach(ze=>{de[ze.toLowerCase()]=ve})}function Bo(oe){const ve=vn(oe);return ve&&!ve.disableAutodetect}function st(oe){oe["before:highlightBlock"]&&!oe["before:highlightElement"]&&(oe["before:highlightElement"]=ve=>{oe["before:highlightBlock"](Object.assign({block:ve.el},ve))}),oe["after:highlightBlock"]&&!oe["after:highlightElement"]&&(oe["after:highlightElement"]=ve=>{oe["after:highlightBlock"](Object.assign({block:ve.el},ve))})}function fa(oe){st(oe),Re.push(oe)}function zi(oe){const ve=Re.indexOf(oe);ve!==-1&&Re.splice(ve,1)}function Or(oe,ve){const ze=oe;Re.forEach(function(Be){Be[ze]&&Be[ze](ve)})}function ri(oe){return j("10.7.0","highlightBlock will be removed entirely in v12.0"),j("10.7.0","Please use highlightElement now."),Di(oe)}Object.assign(C,{highlight:tt,highlightAuto:Rr,highlightAll:ni,highlightElement:Di,highlightBlock:ri,configure:ca,initHighlighting:Vn,initHighlightingOnLoad:Lo,registerLanguage:Do,unregisterLanguage:Po,listLanguages:zo,getLanguage:vn,registerAliases:Fo,autoDetection:Bo,inherit:ei,addPlugin:fa,removePlugin:zi}),C.debugMode=function(){rt=!1},C.safeMode=function(){rt=!0},C.versionString=vt,C.regex={concat:S,lookahead:b,either:N,optional:w,anyNumberOfTimes:E};for(const oe in Xe)typeof Xe[oe]=="object"&&e(Xe[oe]);return Object.assign(C,Xe),C},Wn=Kn({});return Wn.newInstance=()=>Kn({}),pu=Wn,Wn.HighlightJS=Wn,Wn.default=Wn,pu}var Jx=Xx();const eS=Ao(Jx),_p={},tS="hljs-";function nS(e){const i=eS.newInstance();return e&&c(e),{highlight:r,highlightAuto:l,listLanguages:s,register:c,registerAlias:u,registered:d};function r(p,m,y){const h=y||_p,b=typeof h.prefix=="string"?h.prefix:tS;if(!i.getLanguage(p))throw new Error("Unknown language: `"+p+"` is not registered");i.configure({__emitter:rS,classPrefix:b});const E=i.highlight(m,{ignoreIllegals:!0,language:p});if(E.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:E.errorRaised});const w=E._emitter.root,S=w.data;return S.language=E.language,S.relevance=E.relevance,w}function l(p,m){const h=(m||_p).subset||s();let b=-1,E=0,w;for(;++bE&&(E=R.data.relevance,w=R)}return w||{type:"root",children:[],data:{language:void 0,relevance:E}}}function s(){return i.listLanguages()}function c(p,m){if(typeof p=="string")i.registerLanguage(p,m);else{let y;for(y in p)Object.hasOwn(p,y)&&i.registerLanguage(y,p[y])}}function u(p,m){if(typeof p=="string")i.registerAliases(typeof m=="string"?m:[...m],{languageName:p});else{let y;for(y in p)if(Object.hasOwn(p,y)){const h=p[y];i.registerAliases(typeof h=="string"?h:[...h],{languageName:y})}}}function d(p){return!!i.getLanguage(p)}}class rS{constructor(i){this.options=i,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(i){if(i==="")return;const r=this.stack[this.stack.length-1],l=r.children[r.children.length-1];l&&l.type==="text"?l.value+=i:r.children.push({type:"text",value:i})}startScope(i){this.openNode(String(i))}endScope(){this.closeNode()}__addSublanguage(i,r){const l=this.stack[this.stack.length-1],s=i.root.children;r?l.children.push({type:"element",tagName:"span",properties:{className:[r]},children:s}):l.children.push(...s)}openNode(i){const r=this,l=i.split(".").map(function(u,d){return d?u+"_".repeat(d):r.options.classPrefix+u}),s=this.stack[this.stack.length-1],c={type:"element",tagName:"span",properties:{className:l},children:[]};s.children.push(c),this.stack.push(c)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const iS={};function oS(e){const i=e||iS,r=i.aliases,l=i.detect||!1,s=i.languages||Zx,c=i.plainText,u=i.prefix,d=i.subset;let p="hljs";const m=nS(s);if(r&&m.registerAlias(r),u){const y=u.indexOf("-");p=y===-1?u:u.slice(0,y)}return function(y,h){sa(y,"element",function(b,E,w){if(b.tagName!=="code"||!w||w.type!=="element"||w.tagName!=="pre")return;const S=lS(b);if(S===!1||!S&&!l||S&&c&&c.includes(S))return;Array.isArray(b.properties.className)||(b.properties.className=[]),b.properties.className.includes(p)||b.properties.className.unshift(p);const R=kw(b,{whitespace:"pre"});let N;try{N=S?m.highlight(S,R,{prefix:u}):m.highlightAuto(R,{prefix:u,subset:d})}catch(L){const z=L;if(S&&/Unknown language/.test(z.message)){h.message("Cannot highlight as `"+S+"`, it’s not registered",{ancestors:[w,b],cause:z,place:b.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw z}!S&&N.data&&N.data.language&&b.properties.className.push("language-"+N.data.language),N.children.length>0&&(b.children=N.children)})}}function lS(e){const i=e.properties.className;let r=-1;if(!Array.isArray(i))return;let l;for(;++rtypeof r=="string"):[]}catch{return[]}}function uS({message:e,toolEvents:i=[],modelLabel:r="qwen3"}){const[l,s]=fe.useState(!1),c=e.role==="user",u=sS(e);return H.jsxs("div",{className:`msg ${c?"msg-user":"msg-assistant"}`,children:[H.jsx("div",{className:"msg-role",children:c?"du":r}),!c&&e.thinking&&e.thinking.length>0&&H.jsxs("div",{className:`thinking ${l?"open":""}`,children:[H.jsxs("button",{className:"thinking-toggle",onClick:()=>s(d=>!d),children:[H.jsx("span",{className:`caret ${l?"rotated":""}`,children:"▸"}),e.content===""&&l===!1?"denkt nach …":`Denkprozess (${e.thinking.length.toLocaleString("de-DE")} Zeichen)`]}),l&&H.jsx("pre",{className:"thinking-body",children:e.thinking})]}),i.length>0&&H.jsx("div",{className:"tool-events",children:i.map((d,p)=>H.jsxs("div",{className:`tool-event ${d.ok===!1?"failed":""}`,children:[H.jsx("span",{className:"tool-icon",children:d.ok===void 0?"⋯":d.ok?"✓":"✗"}),H.jsx("code",{children:d.name}),H.jsx("span",{className:"tool-args",title:d.args,children:d.args}),d.durationMs!==void 0&&H.jsxs("span",{className:"tool-time",children:[d.durationMs," ms"]})]},p))}),u.length>0&&H.jsx("div",{className:"msg-images",children:u.map((d,p)=>H.jsx("img",{src:`data:${aS(d)};base64,${d}`,alt:`Anhang ${p+1}`,loading:"lazy"},p))}),c?e.content?H.jsx("div",{className:"msg-content user-content",children:e.content}):null:H.jsx("div",{className:"msg-content markdown",children:H.jsx(nv,{remarkPlugins:[gw],rehypePlugins:[oS],children:e.content||"▍"})})]})}const wo=4,vp=6*1024*1024,kp=["image/png","image/jpeg","image/gif","image/webp"];function cS(e){return new Promise((i,r)=>{const l=new FileReader;l.onerror=()=>r(new Error(`${e.name} konnte nicht gelesen werden`)),l.onload=()=>{const s=String(l.result),c=s.indexOf(",");i({id:`${e.name}-${e.size}-${Date.now()}-${Math.random()}`,base64:s.slice(c+1),dataUrl:s,name:e.name||"Bild"})},l.readAsDataURL(e)})}function fS({streaming:e,disabled:i,recording:r,transcribing:l,injectedText:s,modelLabel:c="qwen3",onInjected:u,onSend:d,onAbort:p,onMicToggle:m}){const[y,h]=fe.useState(""),[b,E]=fe.useState([]),[w,S]=fe.useState(null),[R,N]=fe.useState(!1),L=fe.useRef(null),z=fe.useRef(null);fe.useEffect(()=>{s!=null&&(h(s),u(),requestAnimationFrame(()=>{var q,ne;(q=L.current)==null||q.focus(),(ne=L.current)==null||ne.setSelectionRange(s.length,s.length)}))},[s,u]);const W=async q=>{S(null);const ne=[];for(const X of q){if(!kp.includes(X.type)){S(`${X.name||"Datei"}: nur PNG, JPEG, GIF oder WebP`);continue}if(X.size>vp){S(`${X.name}: größer als ${vp/1024/1024} MB`);continue}ne.push(X)}if(ne.length)try{const X=await Promise.all(ne.map(cS));E(I=>{const K=wo-I.length;return X.length>K&&S(`Maximal ${wo} Bilder pro Nachricht`),[...I,...X.slice(0,Math.max(K,0))]})}catch(X){S(X instanceof Error?X.message:"Bild konnte nicht gelesen werden")}},Q=()=>{const q=y.trim();!q&&b.length===0||e||i||(d(q,b.map(ne=>ne.base64)),h(""),E([]),S(null),requestAnimationFrame(()=>{var ne;return(ne=L.current)==null?void 0:ne.focus()}))},M=(y.trim().length>0||b.length>0)&&!i;return H.jsxs("div",{className:`composer ${R?"dragging":""}`,onDragOver:q=>{i||(q.preventDefault(),N(!0))},onDragLeave:()=>N(!1),onDrop:q=>{i||(q.preventDefault(),N(!1),W([...q.dataTransfer.files]))},children:[(b.length>0||w)&&H.jsxs("div",{className:"attachments",children:[b.map(q=>H.jsxs("div",{className:"attachment",children:[H.jsx("img",{src:q.dataUrl,alt:q.name}),H.jsx("button",{className:"attachment-remove",onClick:()=>E(ne=>ne.filter(X=>X.id!==q.id)),title:`${q.name} entfernen`,children:"×"})]},q.id)),w&&H.jsx("span",{className:"attachment-error",children:w})]}),H.jsxs("div",{className:"composer-row",children:[H.jsx("button",{className:`btn-mic ${r?"recording":""} ${l?"transcribing":""}`,onClick:m,title:r?"Aufnahme stoppen & senden":l?"Transkribiere …":"Sprachnachricht aufnehmen",disabled:l||i,children:r?"●":l?"…":"🎙"}),H.jsx("button",{className:"btn-attach",onClick:()=>{var q;return(q=z.current)==null?void 0:q.click()},disabled:i||b.length>=wo,title:b.length>=wo?`Maximal ${wo} Bilder`:"Bild anhängen (auch per Einfügen oder Drag & Drop)",children:"🖼"}),H.jsx("input",{ref:z,type:"file",accept:kp.join(","),multiple:!0,hidden:!0,onChange:q=>{W([...q.target.files??[]]),q.target.value=""}}),H.jsx("textarea",{ref:L,value:y,placeholder:r?"Ich höre zu … (zum Beenden nochmal auf das Mikro klicken)":i?"Keine Session aktiv — neuen Chat starten":`Nachricht an ${c} … (Enter = senden, Bild einfügen mit ⌘V)`,rows:1,disabled:i,onChange:q=>h(q.target.value),onPaste:q=>{const ne=[...q.clipboardData.files].filter(X=>X.type.startsWith("image/"));ne.length&&(q.preventDefault(),W(ne))},onKeyDown:q=>{q.key==="Enter"&&!q.shiftKey&&(q.preventDefault(),Q())}}),e?H.jsx("button",{className:"btn-send stop",onClick:p,children:"■ Stop"}):H.jsx("button",{className:"btn-send",disabled:!M,onClick:Q,children:"Senden ▸"})]})]})}const dS={fact:"Fakt",decision:"Entscheidung",preference:"Präferenz",entity:"Entität",open_question:"Offen"};function pS({sessionId:e,onClose:i}){const[r,l]=fe.useState(null),[s,c]=fe.useState(null),u=fe.useCallback(async()=>{try{const E=await(await fetch(`/api/sessions/${e}/memory`)).json();E.state&&l(E)}catch{l(null)}},[e]);fe.useEffect(()=>{u()},[u]);const d=async()=>{c("dream");try{await fetch(`/api/sessions/${e}/dream`,{method:"POST"}),await u()}finally{c(null)}},p=async()=>{c("rebuild");try{await fetch(`/api/sessions/${e}/memory/rebuild`,{method:"POST"}),await u()}finally{c(null)}},m=async b=>{await fetch(`/api/anchors/${b.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:!b.pinned})}),await u()},y=async b=>{await fetch(`/api/anchors/${b.id}`,{method:"DELETE"}),await u()},h=r?r.state.last_seq-r.state.last_dream_seq:0;return H.jsx("div",{className:"memory-overlay",onClick:i,children:H.jsxs("section",{className:"memory-panel",onClick:b=>b.stopPropagation(),children:[H.jsxs("header",{className:"memory-header",children:[H.jsxs("div",{children:[H.jsx("div",{className:"memory-title",children:"🧠 Gedächtnis"}),H.jsx("div",{className:"memory-stats",children:r?`${r.state.last_seq} Log-Schritte · ${r.state.dream_count}× geträumt · ${h} unkonsolidiert`:"lädt …"})]}),H.jsx("button",{className:"memory-close",onClick:i,title:"Schließen",children:"✕"})]}),H.jsxs("div",{className:"memory-actions",children:[H.jsx("button",{onClick:()=>void d(),disabled:s!==null,children:s==="dream"?"… träumt":"💤 Traumphase jetzt"}),H.jsx("button",{onClick:()=>void p(),disabled:s!==null,children:s==="rebuild"?"… faltet":"↻ Aus Log rekonstruieren"})]}),r&&r.anchors.length===0&&H.jsx("div",{className:"memory-empty",children:"Noch keine Ankerpunkte. Sie entstehen durch die Traumphase (automatisch nach Inaktivität oder Manual oben) oder wenn das Modell sich etwas mit „remember“ merkt."}),r==null?void 0:r.anchors.map(b=>H.jsxs("div",{className:"anchor-row"+(b.pinned?" pinned":""),children:[H.jsxs("div",{className:"anchor-body",children:[H.jsxs("div",{className:"anchor-kind",children:[dS[b.kind]??b.kind," · ",b.origin]}),H.jsx("div",{className:"anchor-text",children:b.text}),H.jsxs("div",{className:"anchor-meta",children:["Wichtigkeit ",(b.importance*100).toFixed(0)," % · ",b.hits,"× bestätigt"]}),H.jsx("div",{className:"anchor-bar",children:H.jsx("div",{className:"anchor-bar-fill",style:{width:`${Math.round(b.importance*100)}%`}})})]}),H.jsxs("div",{className:"anchor-actions",children:[H.jsx("button",{onClick:()=>void m(b),title:b.pinned?"Pin lösen (Decay möglich)":"Pinnen (vor Decay geschützt)",children:b.pinned?"★":"☆"}),H.jsx("button",{onClick:()=>void y(b),title:"Ankerpunkt löschen",children:"✕"})]})]},b.id))]})})}const wp="oxagenttwo.voiceMode";function mS(){var Z,$,se;const e=jh(),i=fe.useRef(null),[r,l]=fe.useState(!1),[s,c]=fe.useState(!1),[u,d]=fe.useState(null),[p,m]=fe.useState(()=>localStorage.getItem(wp)==="1"),[y,h]=fe.useState([]),[b,E]=fe.useState([]);fe.useEffect(()=>{r&&e.options.provider==="openrouter"&&y.length===0&&fetch("/api/openrouter/models").then(P=>P.json()).then(P=>{P.ok&&P.models&&h(P.models)}).catch(()=>{}),r&&e.options.provider==="ollama"&&b.length===0&&fetch("/api/ollama/models").then(P=>P.json()).then(P=>{P.ok&&P.models&&E(P.models)}).catch(()=>{})},[r,e.options.provider,y.length,b.length]);const w=fe.useRef(p),S=fe.useRef(!1),R=fe.useRef(!1);S.current=e.streaming,w.current=p;const N=fe.useCallback(P=>{m(P),localStorage.setItem(wp,P?"1":"0")},[]),L=Gh({onTranscript:P=>{w.current?(z.current.cancelSpeech(),Q.current="",W.current.sendMessage(P)):d(P)},onQueueDrained:()=>{R.current&&(R.current=!1,w.current&&!S.current&&z.current.startRecording())}}),z=fe.useRef(L);z.current=L;const W=fe.useRef(e);W.current=e;const Q=fe.useRef(""),M=fe.useRef({id:"",offset:0});fe.useEffect(()=>{const P=i.current;P&&(P.scrollTop=P.scrollHeight)},[e.messages]),fe.useEffect(()=>{if(!p)return;const P=[...e.messages].reverse().find(k=>k.role==="assistant");if(!P)return;M.current.id!==P.id&&(M.current={id:P.id,offset:0},Q.current="");const G=P.content;if(G.length=40&&(U=v.slice(0,ke))}else if(v.length>300){const k=Math.max(v.lastIndexOf(", "),v.lastIndexOf(" "));U=k>100?v.slice(0,k+1):v}U&&(Q.current=v.slice(U.length),L.enqueueSpeech(U))});const q=fe.useRef(!1);fe.useEffect(()=>{if(q.current&&!e.streaming&&p){const P=Q.current.trim();P&&(Q.current="",L.enqueueSpeech(P)),(P||M.current.id)&&(R.current=!0)}q.current=e.streaming},[e.streaming,p,L]);const[ne,X]=fe.useState([]);fe.useEffect(()=>{fetch("/api/tools").then(P=>P.json()).then(P=>X(P.tools??[])).catch(()=>X([]))},[]);const I=(e.options.provider==="openrouter"?e.options.openrouterModel.split("/").pop():e.options.model.replace(/:latest$/,""))??"qwen3",K=fe.useCallback((P,G=[])=>{L.cancelSpeech(),Q.current="",e.sendMessage(P,G)},[e,L]),Y=fe.useCallback(()=>{L.cancelSpeech(),Q.current="",e.abort()},[e,L]),re=fe.useCallback(()=>{L.recording?L.stopRecording():(L.cancelSpeech(),L.startRecording())},[L]);return H.jsxs("div",{className:"app",children:[H.jsx(Kh,{sessions:e.sessions,activeId:e.activeId,onSelect:e.setActiveId,onNew:()=>void e.newSession(),onDelete:P=>void e.deleteSession(P)}),H.jsxs("main",{className:"main",children:[H.jsxs("header",{className:"topbar",children:[H.jsxs("div",{className:"model-badge",title:(Z=e.modelInfo)!=null&&Z.ok||($=e.modelInfo)==null?void 0:$.error,children:[H.jsx("span",{className:`status-dot ${e.status==="open"?"on":"off"}`}),e.options.provider==="openrouter"?`☁ ${e.options.openrouterModel}`:(se=e.modelInfo)!=null&&se.ok?`${e.modelInfo.model} · ${e.modelInfo.parameterSize} · ${e.modelInfo.quantization}`:"Ollama offline"]}),H.jsxs("div",{className:"topbar-actions",children:[p&&(L.recording||L.transcribing||L.speaking)&&H.jsx("span",{className:"voice-state",children:L.recording?"● hört zu":L.transcribing?"… transkribiert":"🔊 spricht"}),H.jsx("button",{className:`btn-settings ${p?"toggled":""}`,onClick:()=>{p&&(L.cancelSpeech(),L.stopRecording()),N(!p)},title:"Sprachmodus: Antworten werden vorgelesen, danach wird automatisch wieder zugehört",children:p?"🔊 Stimme: an":"🔇 Stimme: aus"}),H.jsx("button",{className:"btn-settings",onClick:()=>c(P=>!P),disabled:!e.activeId,title:"Gedächtnis: Ankerpunkte, Traumphase, Log-Rekonstruktion",children:"🧠 Gedächtnis"}),H.jsx("button",{className:"btn-settings",onClick:()=>l(P=>!P),children:"⚙ Einstellungen"})]})]}),r&&H.jsxs("section",{className:"settings-panel",children:[H.jsxs("label",{className:"setting-row",children:[H.jsx("span",{children:"Modell"}),H.jsxs("select",{className:"provider-select",value:e.options.provider,onChange:P=>e.setOptions({provider:P.target.value}),children:[H.jsx("option",{value:"ollama",children:"Lokal: qwen3.5 (Ollama)"}),H.jsx("option",{value:"openrouter",children:"OpenRouter (Cloud)"})]})]}),e.options.provider==="openrouter"&&H.jsxs("label",{className:"setting-row column",children:[H.jsxs("span",{children:["OpenRouter-Modell (",y.length," verfügbar)"]}),H.jsx("input",{list:"or-models",value:e.options.openrouterModel,placeholder:"z. B. anthropic/claude-sonnet-4.5",onChange:P=>e.setOptions({openrouterModel:P.target.value})}),H.jsx("datalist",{id:"or-models",children:y.map(P=>H.jsxs("option",{value:P.id,children:[P.name," · ",P.promptPrice===0?"gratis":`$${P.promptPrice.toFixed(2)}/M`]},P.id))})]}),e.options.provider==="ollama"&&H.jsxs("label",{className:"setting-row",children:[H.jsx("span",{children:"Lokales Modell (Ollama)"}),H.jsxs("select",{className:"provider-select",value:b.some(P=>P.name===e.options.model)?e.options.model:"",onChange:P=>e.setOptions({model:P.target.value}),children:[!b.some(P=>P.name===e.options.model)&&H.jsxs("option",{value:"",children:[e.options.model," (nicht installiert)"]}),b.map(P=>H.jsxs("option",{value:P.name,children:[P.name,P.parameterSize?` · ${P.parameterSize}`:"",P.sizeGB?` · ${P.sizeGB} GB`:""]},P.name)),b.length===0&&H.jsx("option",{value:e.options.model,children:e.options.model})]})]}),e.options.provider==="ollama"&&H.jsxs("label",{className:"setting-row checkbox",children:[H.jsx("input",{type:"checkbox",checked:e.options.think,onChange:P=>e.setOptions({think:P.target.checked})}),H.jsx("span",{children:"Thinking-Mode (Modell denkt sichtbar vor der Antwort)"})]}),H.jsxs("label",{className:"setting-row checkbox",children:[H.jsx("input",{type:"checkbox",checked:e.options.tools,onChange:P=>e.setOptions({tools:P.target.checked})}),H.jsxs("span",{children:["Werkzeuge (",ne.length>0?ne.join(", "):"keine geladen",")"]})]}),H.jsxs("label",{className:"setting-row",children:[H.jsxs("span",{children:["Temperature: ",e.options.temperature.toFixed(2)]}),H.jsx("input",{type:"range",min:0,max:1.5,step:.05,value:e.options.temperature,onChange:P=>e.setOptions({temperature:Number(P.target.value)})})]}),H.jsxs("label",{className:"setting-row",children:[H.jsxs("span",{children:["Max. Tokens: ",e.options.numPredict]}),H.jsx("input",{type:"range",min:256,max:8192,step:256,value:e.options.numPredict,onChange:P=>e.setOptions({numPredict:Number(P.target.value)})})]}),H.jsxs("label",{className:"setting-row",children:[H.jsxs("span",{children:["Gedächtnis-Fenster: ",e.options.memorySteps," Schritte"]}),H.jsx("input",{type:"range",min:2,max:50,step:1,value:e.options.memorySteps,onChange:P=>e.setOptions({memorySteps:Number(P.target.value)})})]}),H.jsxs("label",{className:"setting-row checkbox",children:[H.jsx("input",{type:"checkbox",checked:e.options.memoryAnchors,onChange:P=>e.setOptions({memoryAnchors:P.target.checked})}),H.jsx("span",{children:"Ankerpunkte ins Modell einspielen (Gedächtnis als System-Kontext)"})]}),H.jsxs("label",{className:"setting-row checkbox",children:[H.jsx("input",{type:"checkbox",checked:e.options.dreamAuto,onChange:P=>e.setOptions({dreamAuto:P.target.checked})}),H.jsx("span",{children:"Auto-Traumphase (Konsolidierung nach 3 Min Inaktivität oder 10 Schritten)"})]}),H.jsxs("label",{className:"setting-row column",children:[H.jsx("span",{children:"System-Prompt"}),H.jsx("textarea",{rows:3,placeholder:"Optional: Verhalten des Modells steuern …",value:e.systemPrompt,onChange:P=>e.setSystemPrompt(P.target.value)})]})]}),s&&e.activeId&&H.jsx(pS,{sessionId:e.activeId,onClose:()=>c(!1)}),H.jsxs("div",{className:"messages",ref:i,children:[e.messages.length===0&&H.jsxs("div",{className:"welcome",children:[H.jsx("div",{className:"welcome-title",children:"▸ agenttwo-tools"}),H.jsx("p",{children:"Echtzeit-Chat mit lokalem Qwen3 über Ollama — per Tastatur oder Stimme (Whisper STT + Piper TTS, alles lokal)."}),H.jsx("p",{className:"hint",children:"🎙 für Sprachnachricht · 🔊 Stimme an für freihändigen Dialog"})]}),e.messages.map(P=>H.jsx(uS,{message:P,toolEvents:e.toolEvents[P.id],modelLabel:I},P.id))]}),L.error&&H.jsxs("div",{className:"voice-error",children:[L.error,H.jsx("button",{onClick:()=>L.setError(null),children:"✕"})]}),H.jsx(fS,{streaming:e.streaming,disabled:!e.activeId,recording:L.recording,transcribing:L.transcribing,injectedText:u,modelLabel:I,onInjected:()=>d(null),onSend:K,onAbort:Y,onMicToggle:re})]})]})}Uh.createRoot(document.getElementById("root")).render(H.jsx(Mh.StrictMode,{children:H.jsx(mS,{})})); diff --git a/web/dist/index.html b/web/dist/index.html index 5730983..c0d5ea9 100644 --- a/web/dist/index.html +++ b/web/dist/index.html @@ -6,8 +6,8 @@ agenttwo-tools — qwen3 mit Vision - - + +
diff --git a/web/src/App.tsx b/web/src/App.tsx index c55c048..e5995f8 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -157,10 +157,10 @@ export default function App() { : chat.options.model.replace(/:latest$/, "")) ?? "qwen3"; const handleSend = useCallback( - (text: string, images: string[] = []) => { + (text: string, images: string[] = [], files: { name: string; content: string; encoding?: string }[] = []) => { voice.cancelSpeech(); pendingSpeechRef.current = ""; - chat.sendMessage(text, images); + chat.sendMessage(text, images, files); }, [chat, voice], ); diff --git a/web/src/components/ChatMessage.tsx b/web/src/components/ChatMessage.tsx index 78fcda3..5268a18 100644 --- a/web/src/components/ChatMessage.tsx +++ b/web/src/components/ChatMessage.tsx @@ -27,6 +27,22 @@ function imagesOf(message: Message): string[] { } } +/** Der Server legt Text-Datei-Anhänge als JSON-Array {name, content} ab. */ +function filesOf(message: Message): { name: string; content: string }[] { + if (!message.files) return []; + try { + const parsed: unknown = JSON.parse(message.files); + if (!Array.isArray(parsed)) return []; + return parsed.flatMap((f) => { + const o = f as { name?: unknown; content?: unknown }; + if (typeof o?.name !== "string" || typeof o?.content !== "string") return []; + return [{ name: o.name, content: o.content }]; + }); + } catch { + return []; + } +} + export function ChatMessage({ message, toolEvents = [], @@ -39,6 +55,7 @@ export function ChatMessage({ const [showThinking, setShowThinking] = useState(false); const isUser = message.role === "user"; const images = imagesOf(message); + const chatFiles = filesOf(message); return (
@@ -90,6 +107,20 @@ export function ChatMessage({
)} + {chatFiles.length > 0 && ( +
+ {chatFiles.map((f) => ( + + 📄 {f.name} · {Math.max(1, Math.round(f.content.length / 1024))} kB + + ))} +
+ )} + {isUser ? ( message.content ? (
{message.content}
diff --git a/web/src/components/Composer.tsx b/web/src/components/Composer.tsx index 65b259e..a3c3661 100644 --- a/web/src/components/Composer.tsx +++ b/web/src/components/Composer.tsx @@ -4,6 +4,20 @@ import { useEffect, useRef, useState } from "react"; const MAX_IMAGES = 4; const MAX_IMAGE_BYTES = 6 * 1024 * 1024; const ACCEPTED = ["image/png", "image/jpeg", "image/gif", "image/webp"]; +/** Muss zu MAX_FILES_PER_MESSAGE / MAX_FILE_CHARS im Server passen. */ +const MAX_FILES = 4; +const MAX_FILE_CHARS = 100_000; +const MAX_PDF_BYTES = 10 * 1024 * 1024; +const TEXT_EXTS = [ + ".txt", ".json", ".md", ".markdown", ".csv", ".tsv", ".log", ".xml", ".yaml", + ".yml", ".toml", ".ini", ".cfg", ".conf", ".sql", ".sh", ".bash", ".zsh", + ".py", ".js", ".mjs", ".cjs", ".jsx", ".ts", ".tsx", ".css", ".scss", ".html", + ".htm", ".svg", ".rs", ".go", ".java", ".kt", ".rb", ".php", ".c", ".h", + ".cpp", ".hpp", ".cs", ".swift", ".diff", ".patch", +]; +const PDF_TYPES = ["application/pdf"]; +const PDF_EXTS = [".pdf"]; +const TEXT_MIMES = ["application/json", "application/xml", "application/yaml", "application/x-sh"]; interface Attachment { id: string; @@ -13,6 +27,15 @@ interface Attachment { name: string; } +interface TextAttachment { + id: string; + name: string; + /** Textinhalt oder base64 (encoding: base64, nur PDF). */ + content: string; + bytes: number; + encoding: "text" | "base64"; +} + interface Props { streaming: boolean; disabled: boolean; @@ -21,7 +44,7 @@ interface Props { injectedText: string | null; modelLabel?: string; onInjected: () => void; - onSend: (text: string, images: string[]) => void; + onSend: (text: string, images: string[], files?: { name: string; content: string; encoding?: string }[]) => void; onAbort: () => void; onMicToggle: () => void; } @@ -44,6 +67,44 @@ function readAsAttachment(file: File): Promise { }); } +async function readAsTextAttachment(file: File): Promise { + const ext = "." + (file.name.split(".").pop() ?? "").toLowerCase(); + if (PDF_TYPES.includes(file.type) || PDF_EXTS.includes(ext)) { + if (file.size > MAX_PDF_BYTES) { + throw new Error(`${file.name}: größer als ${Math.round(MAX_PDF_BYTES / 1024 / 1024)} MB`); + } + const dataUrl = await new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onerror = () => reject(new Error(`${file.name} konnte nicht gelesen werden`)); + reader.onload = () => resolve(String(reader.result)); + reader.readAsDataURL(file); + }); + const comma = dataUrl.indexOf(","); + return { + id: `${file.name}-${file.size}-${Date.now()}-${Math.random()}`, + name: file.name || "PDF", + content: dataUrl.slice(comma + 1), + bytes: file.size, + encoding: "base64", + }; + } + const content = await file.text(); + if (content.length === 0) throw new Error(`${file.name} ist leer`); + if (content.length > MAX_FILE_CHARS) { + throw new Error(`${file.name}: größer als ${Math.round(MAX_FILE_CHARS / 1000)} kB Text`); + } + if (/[\x00-\x08\x0B\x0C\x0E-\x1F]/.test(content.slice(0, 2000))) { + throw new Error(`${file.name}: wirkt binär — nur Textdateien`); + } + return { + id: `${file.name}-${file.size}-${Date.now()}-${Math.random()}`, + name: file.name || "Datei", + content, + bytes: file.size, + encoding: "text", + }; +} + export function Composer({ streaming, disabled, @@ -58,6 +119,7 @@ export function Composer({ }: Props) { const [value, setValue] = useState(""); const [images, setImages] = useState([]); + const [textFiles, setTextFiles] = useState([]); const [imgError, setImgError] = useState(null); const [dragging, setDragging] = useState(false); const ref = useRef(null); @@ -76,43 +138,71 @@ export function Composer({ const addFiles = async (files: File[]) => { setImgError(null); - const usable: File[] = []; + const imgFiles: File[] = []; + const txtFiles: File[] = []; for (const f of files) { - if (!ACCEPTED.includes(f.type)) { - setImgError(`${f.name || "Datei"}: nur PNG, JPEG, GIF oder WebP`); - continue; + const ext = "." + (f.name.split(".").pop() ?? "").toLowerCase(); + if (ACCEPTED.includes(f.type)) { + if (f.size > MAX_IMAGE_BYTES) { + setImgError(`${f.name}: größer als ${MAX_IMAGE_BYTES / 1024 / 1024} MB`); + continue; + } + imgFiles.push(f); + } else if ( + f.type.startsWith("text/") || + TEXT_MIMES.includes(f.type) || + PDF_TYPES.includes(f.type) || + TEXT_EXTS.includes(ext) || + PDF_EXTS.includes(ext) + ) { + if (f.size > MAX_FILE_CHARS * 2) { + setImgError(`${f.name}: größer als ${Math.round((MAX_FILE_CHARS * 2) / 1000)} kB`); + continue; + } + txtFiles.push(f); + } else { + setImgError(`${f.name || "Datei"}: nur Bilder (PNG, JPEG, GIF, WebP) oder Textdateien`); } - if (f.size > MAX_IMAGE_BYTES) { - setImgError(`${f.name}: größer als ${MAX_IMAGE_BYTES / 1024 / 1024} MB`); - continue; - } - usable.push(f); } - if (!usable.length) return; try { - const added = await Promise.all(usable.map(readAsAttachment)); - setImages((prev) => { - const free = MAX_IMAGES - prev.length; - if (added.length > free) setImgError(`Maximal ${MAX_IMAGES} Bilder pro Nachricht`); - return [...prev, ...added.slice(0, Math.max(free, 0))]; - }); + if (imgFiles.length) { + const added = await Promise.all(imgFiles.map(readAsAttachment)); + setImages((prev) => { + const free = MAX_IMAGES - prev.length; + if (added.length > free) setImgError(`Maximal ${MAX_IMAGES} Bilder pro Nachricht`); + return [...prev, ...added.slice(0, Math.max(free, 0))]; + }); + } + if (txtFiles.length) { + const added = await Promise.all(txtFiles.map(readAsTextAttachment)); + setTextFiles((prev) => { + const free = MAX_FILES - prev.length; + if (added.length > free) setImgError(`Maximal ${MAX_FILES} Dateien pro Nachricht`); + return [...prev, ...added.slice(0, Math.max(free, 0))]; + }); + } } catch (err) { - setImgError(err instanceof Error ? err.message : "Bild konnte nicht gelesen werden"); + setImgError(err instanceof Error ? err.message : "Datei konnte nicht gelesen werden"); } }; const submit = () => { const text = value.trim(); - if ((!text && images.length === 0) || streaming || disabled) return; - onSend(text, images.map((i) => i.base64)); + if ((!text && images.length === 0 && textFiles.length === 0) || streaming || disabled) return; + onSend(text, images.map((i) => i.base64), textFiles.map((f) => ({ + name: f.name, + content: f.content, + encoding: f.encoding === "base64" ? "base64" : undefined, + }))); setValue(""); setImages([]); + setTextFiles([]); setImgError(null); requestAnimationFrame(() => ref.current?.focus()); }; - const canSend = (value.trim().length > 0 || images.length > 0) && !disabled; + const canSend = (value.trim().length > 0 || images.length > 0 || textFiles.length > 0) && !disabled; return (
- {(images.length > 0 || imgError) && ( + {(images.length > 0 || textFiles.length > 0 || imgError) && (
{images.map((img) => (
@@ -144,6 +234,20 @@ export function Composer({
))} + {textFiles.map((f) => ( +
+ + 📄 {f.name} · {Math.max(1, Math.round(f.bytes / 1024))} kB + + +
+ ))} {imgError && {imgError}}
)} @@ -167,19 +271,15 @@ export function Composer({ { @@ -202,9 +302,15 @@ export function Composer({ disabled={disabled} onChange={(e) => setValue(e.target.value)} onPaste={(e) => { - const files = [...e.clipboardData.files].filter((f) => - f.type.startsWith("image/"), - ); + const files = [...e.clipboardData.files].filter((f) => { + const ext = "." + (f.name.split(".").pop() ?? "").toLowerCase(); + return ( + ACCEPTED.includes(f.type) || + f.type.startsWith("text/") || + TEXT_MIMES.includes(f.type) || + TEXT_EXTS.includes(ext) + ); + }); if (files.length) { e.preventDefault(); void addFiles(files); diff --git a/web/src/styles.css b/web/src/styles.css index bc0e7fb..8d792f8 100644 --- a/web/src/styles.css +++ b/web/src/styles.css @@ -833,3 +833,45 @@ body { .anchor-actions button:hover { color: var(--accent); } + +/* ---------- Datei-Anhänge ---------- */ +.attachment-file { + width: auto; + min-width: 120px; + max-width: 320px; + height: auto; + padding: 8px 10px; + border-radius: 8px; + background: var(--bg-elevated); + border: 1px solid var(--border); + display: flex; + align-items: center; + gap: 8px; +} + +.attachment-file-name { + font-size: 12px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.msg-files { + display: flex; + flex-wrap: wrap; + gap: 6px; + margin-bottom: 6px; +} + +.file-chip { + font-size: 12px; + color: var(--text-dim); + background: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: 6px; + padding: 3px 8px; + max-width: 320px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} diff --git a/web/src/types.ts b/web/src/types.ts index 26699a8..0895fc0 100644 --- a/web/src/types.ts +++ b/web/src/types.ts @@ -12,9 +12,17 @@ export interface Message { thinking: string | null; /** JSON-Array mit base64-Bilddaten, wie es der Server speichert. */ images: string | null; + /** JSON-Array mit Text-Datei-Anhängen ({name, content}), wie es der Server speichert. */ + files: string | null; created_at: number; } +export interface ChatFile { + name: string; + content: string; + encoding?: string; +} + /** Werkzeugaufruf während einer Antwort. Nur zur Laufzeit, nicht gespeichert. */ export interface ToolEvent { name: string; diff --git a/web/src/useChat.ts b/web/src/useChat.ts index ffc65e9..d4c4340 100644 --- a/web/src/useChat.ts +++ b/web/src/useChat.ts @@ -177,9 +177,9 @@ export function useChat() { }, []); const sendMessage = useCallback( - (content: string, images: string[] = []) => { - // Ein Bild ohne Text ist eine gültige Anfrage. - if ((!content.trim() && images.length === 0) || streamingRef.current || !activeId) { + (content: string, images: string[] = [], files: { name: string; content: string; encoding?: string }[] = []) => { + // Ein Bild oder eine Datei allein ist eine gültige Anfrage. + if ((!content.trim() && images.length === 0 && files.length === 0) || streamingRef.current || !activeId) { return; } streamingRef.current = true; @@ -189,6 +189,7 @@ export function useChat() { sessionId: activeId, content, images, + files, options, systemPrompt, });