From 7968d4694b4020954975b4ddbd821eecee989bd2 Mon Sep 17 00:00:00 2001 From: sehugg Date: Wed, 21 Oct 2026 10:25:03 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=208bitwork?= =?UTF-8?q?shop/8bitworkshop@c279cf641e9780fe0f630027fcb8fd7dac99c68d=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 + Makefile | 1 - gen/common/links.js | 34 ++ gen/common/links.js.map | 1 + gen/ide/services.js | 8 +- gen/ide/services.js.map | 2 +- gen/src/common/links.js | 34 ++ gen/src/common/links.js.map | 1 + gen/src/ide/services.js | 8 +- gen/src/ide/services.js.map | 2 +- gen/src/tools/buildpresets.js | 10 +- gen/src/tools/buildpresets.js.map | 2 +- gen/src/tools/compatcheck.js | 562 ++++++++++++++++++++++++++++++ gen/src/tools/compatcheck.js.map | 1 + gen/test/tsconfig.tsbuildinfo | 2 +- gen/test/unit/testdetect.js | 2 + gen/test/unit/testdetect.js.map | 2 +- gen/test/unit/testlinks.js | 28 ++ gen/test/unit/testlinks.js.map | 1 + gen/tools/buildpresets.js | 10 +- gen/tools/buildpresets.js.map | 2 +- gen/tools/compatcheck.js | 562 ++++++++++++++++++++++++++++++ gen/tools/compatcheck.js.map | 1 + gen/tsconfig.tsbuildinfo | 2 +- gen/ui.js | 144 ++++---- gen/ui.js.map | 8 +- index.html | 4 +- package.json | 1 + src/common/links.ts | 31 ++ src/docs/embedding-ide.md | 4 +- src/ide/services.ts | 9 +- src/tools/buildpresets.ts | 15 +- src/tools/compatcheck.ts | 534 ++++++++++++++++++++++++++++ 33 files changed, 1920 insertions(+), 113 deletions(-) create mode 100644 gen/common/links.js create mode 100644 gen/common/links.js.map create mode 100644 gen/src/common/links.js create mode 100644 gen/src/common/links.js.map create mode 100644 gen/src/tools/compatcheck.js create mode 100644 gen/src/tools/compatcheck.js.map create mode 100644 gen/test/unit/testlinks.js create mode 100644 gen/test/unit/testlinks.js.map create mode 100644 gen/tools/compatcheck.js create mode 100644 gen/tools/compatcheck.js.map create mode 100644 src/common/links.ts create mode 100644 src/tools/compatcheck.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index b438db1f..6a0dee42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ See [extension/CHANGELOG.md](extension/CHANGELOG.md). - `8bws run` script `vcd FILE [MAXMB]` / `vcd off` records a Verilog design's signal changes to a VCD file as it runs, streamed so the recording's length isn't limited by memory (a `.gz` name compresses it; about 3 MB per frame of a design with video, 4x less gzipped), stopping at 1 GB unless told otherwise. - Vector platforms (`vector-*`, `vectrex`) render headlessly: a software rasterizer with phosphor fade draws their lines into the frame buffer, so `--png` and the VS Code emulator panel show them. The size is `--vector-size ` (long side, default 512), `EmuCore.vectorSize`, or the extension's `8bitworkshop.vectorSize`. - `buildpresets` lists compiler warnings per preset, flags a rising warning count against `--baseline`, and fails builds with warnings unless `--no-strict` is given. +- `compatcheck` builds the examples of an older release (3.12.1) with the toolchain we ship now, so a compiler that stops accepting old code shows up before it ships. It checks the release out in a temporary worktree, and `--baseline` fails when an example that used to build stops building; the release script runs it. - The `8bws` bundle can be published to npm (`npm run npm-package` in `extension/` stages it). It unpacks only the toolchain packs a command needs, into the user's cache directory (`EIGHTBITWORKSHOP_TOOLCHAINS` overrides it, `EIGHTBITWORKSHOP_ASSETS` names a pack mirror). ### Editor and UI @@ -48,6 +49,10 @@ See [extension/CHANGELOG.md](extension/CHANGELOG.md). - Memory Map: a Modules column shows each object file's slice of every SDCC or cc65 segment (`Segment.modules`; SDCC from the `.rel` sizes in link order, with the remainder as `(libraries)`; cc65 from the ld65 map's module list, library members by name). - Memory Browser: a symbol label covers only its reported size, and an unsized symbol stops at its segment boundary instead of running into the next segment. +### Website + +- Links that open the IDE now point at `https://8bitworkshop.com/latest/`, which the server proxies to the newest build: the badge in a published project's README, the README the VS Code extension writes for a new project, the platform links on the website, and the embedding docs. Old `redir.html` links still work. + ### Asset editor - Undo/redo for edits, including binary files, and reliable undo for palette changes. diff --git a/Makefile b/Makefile index 8619ac37..042741c2 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,6 @@ syncprod: distro @[ "${VERSION}" ] || ( echo ">> No version set at HEAD, tag it first"; exit 1 ) echo Version: $(VERSION) grep -H "var VERSION" web/redir.html - grep -H "var VERSION" web/projects/projects.js read cp config.js $(TMP) #aws --profile pzp s3 sync --follow-symlinks $(TMP)/ s3://8bitworkshop.com/v$(VERSION)/ diff --git a/gen/common/links.js b/gen/common/links.js new file mode 100644 index 00000000..e0506d79 --- /dev/null +++ b/gen/common/links.js @@ -0,0 +1,34 @@ +"use strict"; +/** + * Links into the web IDE. + * + * The IDE lives at /latest/, which the web server proxies to the newest + * build (see web/.htaccess), so these links always open the current IDE. + * The trailing slash matters: /latest without it is a 404. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IDE_BASE_URL = void 0; +exports.ideLink = ideLink; +exports.githubReadme = githubReadme; +exports.IDE_BASE_URL = 'https://8bitworkshop.com/latest/'; +/** + * A link that opens the web IDE, e.g. + * ideLink({platform: 'nes', file: 'game.c'}). + * Parameter values are URL-encoded, and undefined ones are left out. + */ +function ideLink(params) { + var query = Object.keys(params) + .filter(key => params[key] != null) + .map(key => encodeURIComponent(key) + '=' + encodeURIComponent(params[key])) + .join('&'); + return query ? exports.IDE_BASE_URL + '?' + query : exports.IDE_BASE_URL; +} +/** + * The README.md a published project gets: a badge that opens the project in + * the IDE, naming the platform, the repository, and the main file. + */ +function githubReadme(name, platform, githubURL, mainFile) { + var link = ideLink({ platform: platform, githubURL: githubURL, file: mainFile }); + return `${encodeURIComponent(name)}\n=====\n\n[Open this project in 8bitworkshop](${link}).\n`; +} +//# sourceMappingURL=links.js.map \ No newline at end of file diff --git a/gen/common/links.js.map b/gen/common/links.js.map new file mode 100644 index 00000000..d44e6928 --- /dev/null +++ b/gen/common/links.js.map @@ -0,0 +1 @@ +{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/common/links.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AASH,0BAMC;AAMD,oCAGC;AAtBY,QAAA,YAAY,GAAG,kCAAkC,CAAC;AAE/D;;;;GAIG;AACH,SAAgB,OAAO,CAAC,MAAoD;IAC1E,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;SAClC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAW,CAAC,CAAC;SACrF,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAY,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,oBAAY,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,QAAgB,EAAE,SAAiB,EAAE,QAAgB;IAC9F,IAAI,IAAI,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjF,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,kDAAkD,IAAI,MAAM,CAAC;AACjG,CAAC"} \ No newline at end of file diff --git a/gen/ide/services.js b/gen/ide/services.js index 7025e3a4..70421e3e 100644 --- a/gen/ide/services.js +++ b/gen/ide/services.js @@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.FirebaseProjectFilesystem = exports.GithubService = void 0; exports.getRepos = getRepos; exports.parseGithubURL = parseGithubURL; +const links_1 = require("../common/links"); const util_1 = require("../common/util"); -const README_md_template = "$NAME\n=====\n\n[Open this project in 8bitworkshop](https://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).\n"; function getRepos() { var repos = {}; for (var i = 0; i < localStorage.length; i++) { @@ -256,11 +256,7 @@ class GithubService { .then((_repo) => { repo = _repo; // create README.md - var s = README_md_template; - s = s.replace(/\$NAME/g, encodeURIComponent(reponame)); - s = s.replace(/\$PLATFORM/g, encodeURIComponent(platform_id)); - s = s.replace(/\$GITHUBURL/g, encodeURIComponent(repo.htmlUrl)); - s = s.replace(/\$MAINFILE/g, encodeURIComponent(mainPath)); + var s = (0, links_1.githubReadme)(reponame, platform_id, repo.htmlUrl, mainPath); var config = { message: '8bitworkshop: updated metadata in README.md', content: btoa(s) diff --git a/gen/ide/services.js.map b/gen/ide/services.js.map index a0a3f1ea..e6cf709f 100644 --- a/gen/ide/services.js.map +++ b/gen/ide/services.js.map @@ -1 +1 @@ -{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/ide/services.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/ide/services.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gen/src/common/links.js b/gen/src/common/links.js new file mode 100644 index 00000000..e0506d79 --- /dev/null +++ b/gen/src/common/links.js @@ -0,0 +1,34 @@ +"use strict"; +/** + * Links into the web IDE. + * + * The IDE lives at /latest/, which the web server proxies to the newest + * build (see web/.htaccess), so these links always open the current IDE. + * The trailing slash matters: /latest without it is a 404. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IDE_BASE_URL = void 0; +exports.ideLink = ideLink; +exports.githubReadme = githubReadme; +exports.IDE_BASE_URL = 'https://8bitworkshop.com/latest/'; +/** + * A link that opens the web IDE, e.g. + * ideLink({platform: 'nes', file: 'game.c'}). + * Parameter values are URL-encoded, and undefined ones are left out. + */ +function ideLink(params) { + var query = Object.keys(params) + .filter(key => params[key] != null) + .map(key => encodeURIComponent(key) + '=' + encodeURIComponent(params[key])) + .join('&'); + return query ? exports.IDE_BASE_URL + '?' + query : exports.IDE_BASE_URL; +} +/** + * The README.md a published project gets: a badge that opens the project in + * the IDE, naming the platform, the repository, and the main file. + */ +function githubReadme(name, platform, githubURL, mainFile) { + var link = ideLink({ platform: platform, githubURL: githubURL, file: mainFile }); + return `${encodeURIComponent(name)}\n=====\n\n[Open this project in 8bitworkshop](${link}).\n`; +} +//# sourceMappingURL=links.js.map \ No newline at end of file diff --git a/gen/src/common/links.js.map b/gen/src/common/links.js.map new file mode 100644 index 00000000..27a42a66 --- /dev/null +++ b/gen/src/common/links.js.map @@ -0,0 +1 @@ +{"version":3,"file":"links.js","sourceRoot":"","sources":["../../../src/common/links.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AASH,0BAMC;AAMD,oCAGC;AAtBY,QAAA,YAAY,GAAG,kCAAkC,CAAC;AAE/D;;;;GAIG;AACH,SAAgB,OAAO,CAAC,MAAoD;IAC1E,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;SAClC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAW,CAAC,CAAC;SACrF,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAY,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,oBAAY,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,QAAgB,EAAE,SAAiB,EAAE,QAAgB;IAC9F,IAAI,IAAI,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjF,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,kDAAkD,IAAI,MAAM,CAAC;AACjG,CAAC"} \ No newline at end of file diff --git a/gen/src/ide/services.js b/gen/src/ide/services.js index 7025e3a4..70421e3e 100644 --- a/gen/src/ide/services.js +++ b/gen/src/ide/services.js @@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.FirebaseProjectFilesystem = exports.GithubService = void 0; exports.getRepos = getRepos; exports.parseGithubURL = parseGithubURL; +const links_1 = require("../common/links"); const util_1 = require("../common/util"); -const README_md_template = "$NAME\n=====\n\n[Open this project in 8bitworkshop](https://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).\n"; function getRepos() { var repos = {}; for (var i = 0; i < localStorage.length; i++) { @@ -256,11 +256,7 @@ class GithubService { .then((_repo) => { repo = _repo; // create README.md - var s = README_md_template; - s = s.replace(/\$NAME/g, encodeURIComponent(reponame)); - s = s.replace(/\$PLATFORM/g, encodeURIComponent(platform_id)); - s = s.replace(/\$GITHUBURL/g, encodeURIComponent(repo.htmlUrl)); - s = s.replace(/\$MAINFILE/g, encodeURIComponent(mainPath)); + var s = (0, links_1.githubReadme)(reponame, platform_id, repo.htmlUrl, mainPath); var config = { message: '8bitworkshop: updated metadata in README.md', content: btoa(s) diff --git a/gen/src/ide/services.js.map b/gen/src/ide/services.js.map index d0e1c04b..bfdb119a 100644 --- a/gen/src/ide/services.js.map +++ b/gen/src/ide/services.js.map @@ -1 +1 @@ -{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/ide/services.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/ide/services.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gen/src/tools/buildpresets.js b/gen/src/tools/buildpresets.js index 542b8529..0dc9a3bc 100644 --- a/gen/src/tools/buildpresets.js +++ b/gen/src/tools/buildpresets.js @@ -78,12 +78,15 @@ var __rest = (this && this.__rest) || function (s, e) { return t; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.toolsBySkeletonName = toolsBySkeletonName; +exports.skeletonBuildName = skeletonBuildName; exports.libraryCollisions = libraryCollisions; exports.listPresets = listPresets; exports.screenStats = screenStats; exports.runPreset = runPreset; exports.buildPreset = buildPreset; exports.buildAllPresets = buildAllPresets; +exports.compareToBaseline = compareToBaseline; const fs = __importStar(require("fs")); const path = __importStar(require("path")); const util = __importStar(require("util")); @@ -541,6 +544,11 @@ async function runPreset(result, preset, platform, opts = {}) { run.ms = Date.now() - started; return run; } +// A preset path is relative to the presets dir, unless it is absolute -- the +// compatibility sweep builds files that live in another tree. +function presetFile(presetsDir, preset) { + return path.isAbsolute(preset) ? preset : path.join(presetsDir, preset); +} async function buildPreset(preset, platform, tool, opts = {}) { const started = Date.now(); const timeout = opts.timeout || DEFAULT_TIMEOUT; @@ -563,7 +571,7 @@ async function buildPreset(preset, platform, tool, opts = {}) { }); await preloadOnce(tool, platform); result = await Promise.race([ - (0, testlib_1.compileSourceFile)(tool, platform, path.join(PRESETS_DIR, preset), opts.buildAs), + (0, testlib_1.compileSourceFile)(tool, platform, presetFile(opts.presetsDir || PRESETS_DIR, preset), opts.buildAs), exited, expired, ]); diff --git a/gen/src/tools/buildpresets.js.map b/gen/src/tools/buildpresets.js.map index b0b5fc8f..6fbacb42 100644 --- a/gen/src/tools/buildpresets.js.map +++ b/gen/src/tools/buildpresets.js.map @@ -1 +1 @@ -{"version":3,"file":"buildpresets.js","sourceRoot":"","sources":["../../../src/tools/buildpresets.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"buildpresets.js","sourceRoot":"","sources":["../../../src/tools/buildpresets.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gen/src/tools/compatcheck.js b/gen/src/tools/compatcheck.js new file mode 100644 index 00000000..84838479 --- /dev/null +++ b/gen/src/tools/compatcheck.js @@ -0,0 +1,562 @@ +"use strict"; +// compatcheck - build an older release's examples with today's toolchain. +// +// The compilers live in the repo as wasm binaries (src/worker/wasm), so +// swapping one out changes what every program in the IDE has to live with. +// This tool answers the question "does the new compiler still accept the old +// code?" by building an older release's examples with the current worker. +// +// npm run compatcheck # the release we track +// npm run compatcheck -- --tag 3.12.1 +// npm run compatcheck -- --dir ~/old/presets +// npm run compatcheck -- --baseline test/compat/3.12.1.json +// npm run compatcheck -- --write-baseline test/compat/3.12.1.json +// npm run compatcheck -- --json out.json +// +// --tag checks the release out into a temporary worktree (removed when the +// run ends) and builds the examples it shipped. --dir builds a preset tree +// that is already on disk. +// +// The sources are the old ones, read the way the IDE reads them; the +// toolchain, the libraries and the build parameters are today's. A failure +// means the current toolchain no longer accepts that old source -- which is +// what the baseline records, so a new one shows up as breakage. +// +// With --baseline it exits nonzero when an example that used to build stops +// building, so it can gate a release. --write-baseline records the current +// results as that baseline. +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseOldExamples = parseOldExamples; +exports.listCorpus = listCorpus; +const fs = __importStar(require("fs")); +const os = __importStar(require("os")); +const path = __importStar(require("path")); +const child_process_1 = require("child_process"); +const emu_1 = require("../common/emu"); +const toolmeta_1 = require("../common/toolmeta"); +const util_1 = require("../common/util"); +const buildpresets_1 = require("./buildpresets"); +const testlib_1 = require("./testlib"); +const toolroot_1 = require("./toolroot"); +const cliformat_1 = require("./cliformat"); +// The release whose examples we keep building. It is the last one before the +// toolchains started moving (sdcc 4, the cc65 upgrade, the WASI conversions), +// so its examples are the ones most likely to notice a change. +const DEFAULT_TAG = '3.12.1'; +const useColor = !!process.stdout.isTTY && !process.env.NO_COLOR; +const paint = (code) => (s) => useColor ? `${code}${s}${cliformat_1.c.reset}` : `${s}`; +const bold = paint(cliformat_1.c.bold), dim = paint(cliformat_1.c.dim); +const green = paint(cliformat_1.c.green), red = paint(cliformat_1.c.red), yellow = paint(cliformat_1.c.yellow), cyan = paint(cliformat_1.c.cyan); +function arg(argv, name) { + const i = argv.indexOf('--' + name); + return i >= 0 ? argv[i + 1] : undefined; +} +/** Check a tag out into a worktree and return its presets directory. */ +function checkoutTag(tag) { + const root = fs.mkdtempSync(path.join(os.tmpdir(), '8bws-compat-')); + const wt = path.join(root, 'wt'); + let done = false; + const cleanup = () => { + if (done) + return; + done = true; + process.off('exit', cleanup); + try { + (0, child_process_1.execFileSync)('git', ['worktree', 'remove', '--force', wt], { cwd: (0, toolroot_1.toolRoot)(), stdio: 'pipe' }); + } + catch (e) { /* the worktree is removed below anyway */ } + fs.rmSync(root, { recursive: true, force: true }); + }; + // a killed run must not leave a worktree behind + process.on('exit', cleanup); + try { + (0, child_process_1.execFileSync)('git', ['worktree', 'add', '--detach', wt, tag], { cwd: (0, toolroot_1.toolRoot)(), stdio: 'pipe' }); + } + catch (e) { + cleanup(); + const msg = e.stderr ? '' + e.stderr : '' + e; + throw new Error(`cannot check out ${tag}: ${msg.trim()}`); + } + const dir = path.join(wt, 'presets'); + if (!fs.existsSync(dir)) { + cleanup(); + throw new Error(`${tag} has no presets/ directory`); + } + return { dir, tree: wt, label: tag, cleanup }; +} +/** Strip the comments from a TypeScript source, so commented-out presets go. */ +function stripComments(text) { + return text + .replace(/\/\*[\s\S]*?\*\//g, ' ') + .replace(/\/\/[^\n]*/g, ' '); +} +/** The body of an array literal that starts at `from`, up to its closing bracket. */ +function arrayBody(text, from) { + let depth = 0; + for (let i = from; i < text.length; i++) { + const ch = text[i]; + if (ch === '[') + depth++; + else if (ch === ']') { + depth--; + if (depth === 0) + return text.substring(from, i); + } + } + return ''; +} +/** + * The examples an old release offered, read from its platform sources: every + * platform's getPresets() list, which is what the Examples menu showed. The + * other files in a preset folder are helpers and data that never built on + * their own. + */ +function parseOldExamples(treeDir) { + var _a; + const examples = []; + const problems = []; + const platformDir = path.join(treeDir, 'src', 'platform'); + let files; + try { + files = fs.readdirSync(platformDir).filter((f) => f.endsWith('.ts')).sort(); + } + catch (e) { + return { examples, problems }; + } + for (const file of files) { + let text; + try { + text = stripComments(fs.readFileSync(path.join(platformDir, file), 'utf8')); + } + catch (e) { + problems.push(`platform ${file}: cannot read it`); + continue; + } + // every array in the file, with the ids it holds + const arrays = parseArrays(text); + // the scopes a platform can be written in: a class (which may extend + // another one) or a function assigned to a variable + const scopes = parseScopes(text); + const scopeOf = (pos) => { + let found = null; + for (const s of scopes) { + if (s.pos > pos) + break; + found = s.name; + } + return found; + }; + // the array each scope returns from getPresets() + const arrayOf = new Map(); + const rePresets = /getPresets\s*(?:\(\s*\)|=\s*function\s*\(\s*\))\s*(?::[^;{]*?)?\{([^{}]*?)\}/g; + let m; + while ((m = rePresets.exec(text)) !== null) { + const scope = scopeOf(m.index); + const ret = /return\s+([A-Za-z0-9_]+)\s*;/.exec(m[1]); + if (scope && ret) + arrayOf.set(scope, ret[1]); + } + // the array a scope returns, looking up the inheritance chain and the + // scopes nested inside it + const arrayFor = (scope) => { + var _a; + const own = scopes.find((s) => s.name === scope); + if (!own) + return null; + if (arrayOf.has(own.name)) + return arrayOf.get(own.name); + let parent = own.parent || null; + while (parent) { + if (arrayOf.has(parent)) + return arrayOf.get(parent); + parent = ((_a = scopes.find((s) => s.name === parent)) === null || _a === void 0 ? void 0 : _a.parent) || null; + } + // a platform that wraps its class in a function + const inside = scopes + .filter((s) => s.pos > own.pos && s.end < own.end) + .sort((a, b) => (b.end - b.pos) - (a.end - a.pos)); + for (const s of inside) { + if (arrayOf.has(s.name)) + return arrayOf.get(s.name); + } + return null; + }; + // the platform ids each scope is registered under + const idsOf = new Map(); + const reReg = /PLATFORMS\[\s*['"]([^'"]+)['"]\s*\]\s*=\s*([A-Za-z0-9_]+)/g; + while ((m = reReg.exec(text)) !== null) { + const list = idsOf.get(m[2]) || []; + list.push(m[1]); + idsOf.set(m[2], list); + } + for (const [cls, ids] of idsOf) { + const array = arrayFor(cls); + if (!array) + continue; + // the folder the platform's examples live in: the base of its id, + // as long as that folder is really there ('nes-asm' shares 'nes') + let folder = null; + let owner = ids[0]; + for (const id of ids) { + const base = (0, util_1.getBasePlatform)(id); + if (fs.existsSync(path.join(treeDir, 'presets', base))) { + folder = base; + owner = id; + break; + } + } + if (!folder) + continue; + for (const id of ((_a = arrays.get(array)) === null || _a === void 0 ? void 0 : _a.ids) || []) { + examples.push({ id, folder, platform: owner }); + } + } + } + // the same example can be offered by several platforms (an emulator + // variant); keep one + const seen = new Set(); + const unique = examples.filter((e) => { + const key = e.folder + '/' + e.id; + if (seen.has(key)) + return false; + seen.add(key); + return true; + }); + return { examples: unique, problems }; +} +function braceEnd(text, from) { + let depth = 0; + for (let i = from; i < text.length; i++) { + const ch = text[i]; + if (ch === '{') + depth++; + else if (ch === '}') { + depth--; + if (depth === 0) + return i; + } + } + return text.length; +} +function parseScopes(text) { + const scopes = []; + const reClass = /\bclass\s+([A-Za-z0-9_]+)(?:\s+extends\s+([A-Za-z0-9_]+))?/g; + let m; + while ((m = reClass.exec(text)) !== null) { + const brace = text.indexOf('{', m.index + m[0].length); + scopes.push({ + name: m[1], pos: m.index, end: braceEnd(text, brace), parent: m[2], + }); + } + // the older platforms are plain functions assigned to a variable + const reFunc = /(?:var|const|let)\s+([A-Za-z0-9_]+)\s*=\s*function\s*\(/g; + while ((m = reFunc.exec(text)) !== null) { + const brace = text.indexOf('{', m.index + m[0].length); + scopes.push({ name: m[1], pos: m.index, end: braceEnd(text, brace) }); + } + scopes.sort((a, b) => a.pos - b.pos); + return scopes; +} +/** Every array literal in a source file, with the preset ids it holds. */ function parseArrays(text) { + const arrays = new Map(); + const reDecl = /(?:const|var|let)\s+([A-Za-z0-9_]+)\b[^=;]*=\s*/g; + let m; + while ((m = reDecl.exec(text)) !== null) { + const name = m[1]; + const start = m.index + m[0].length; + const bracket = text.indexOf('[', start); + if (bracket < 0) + continue; + // whatever sits between the '=' and the '[' names another array + // whose entries are folded in ('Atari8_PRESETS.concat([...])') + const head = text.substring(start, bracket); + if (!/^[A-Za-z0-9_.\s()]*$/.test(head)) + continue; + const body = arrayBody(text, bracket); + const ids = []; + const reId = /\{\s*id\s*:\s*['"]([^'"]+)['"]/g; + let im; + while ((im = reId.exec(body)) !== null) + ids.push(im[1]); + for (const [other, value] of arrays) { + if (head.includes(other)) + ids.push(...value.ids); + } + arrays.set(name, { ids }); + } + return arrays; +} +/** + * The examples of an old release, with the tool that builds each one today. + * Files that are still examples in this tree take their platform and tool + * from there; the rest are matched by extension. + */ +async function listCorpus(corpus) { + const current = await (0, buildpresets_1.listPresets)(undefined, undefined, () => { }, () => { }); + const byPath = new Map(); + const platformByFolder = new Map(); + for (const e of current) { + byPath.set(e.preset, e); + const folder = e.preset.split('/')[0]; + if (!platformByFolder.has(folder)) + platformByFolder.set(folder, e.platform); + } + const { examples, problems } = parseOldExamples(corpus.tree); + const entries = []; + const skipped = []; + for (const p of problems) + skipped.push({ preset: p, why: 'cannot read the old platform list' }); + // the platform that owns a folder today, when no example of it is left + const folders = new Map(); + for (const id of Object.keys(emu_1.PLATFORMS).sort()) { + const folder = (0, util_1.getBasePlatform)(id); + const cur = folders.get(folder); + if (!cur || (cur.includes('.') && !id.includes('.'))) + folders.set(folder, id); + } + const skeletonTools = (0, buildpresets_1.toolsBySkeletonName)(); + const add = (rel, platform, tool, buildAs) => { + const abs = path.join(corpus.dir, rel); + if (!fs.existsSync(abs)) { + skipped.push({ preset: rel, why: 'not in this release' }); + return; + } + if (!platform) { + skipped.push({ preset: rel, why: 'no platform uses this folder' }); + return; + } + if (!tool) { + skipped.push({ preset: rel, why: 'no local tool for this file type' }); + return; + } + entries.push({ preset: rel, platform, tool, buildAs, abs }); + }; + for (const example of examples) { + const rel = example.folder + '/' + example.id; + const known = byPath.get(rel); + if (known) { + // still an example today: same platform, same tool + add(rel, known.platform, known.tool, known.buildAs); + continue; + } + const platform = platformByFolder.get(example.folder) || folders.get(example.folder) || null; + if (!platform) { + skipped.push({ preset: rel, why: 'no platform uses this folder' }); + continue; + } + // the tool that builds this file today + const name = path.basename(example.id); + const tool = (0, testlib_1.getToolForFilename)(name, platform); + add(rel, platform, tool && !tool.startsWith('remote:') ? tool : null); + } + // the templates a platform offers for a new file are worth building too + for (const folder of fs.readdirSync(corpus.dir).sort()) { + const fdir = path.join(corpus.dir, folder); + if (!fs.statSync(fdir).isDirectory()) + continue; + for (const name of fs.readdirSync(fdir).sort()) { + if (!name.startsWith('skeleton.')) + continue; + const rel = folder + '/' + name; + const known = byPath.get(rel); + if (known) { + // still a template today: same platform, same tool + add(rel, known.platform, known.tool, known.buildAs); + continue; + } + const skelname = name.substring('skeleton.'.length); + const tool = skeletonTools[skelname]; + const platform = platformByFolder.get(folder) || folders.get(folder) || null; + if (!tool || tool.startsWith('remote:')) { + skipped.push({ preset: rel, why: 'no local tool for this template' }); + continue; + } + add(rel, platform, tool, (0, buildpresets_1.skeletonBuildName)(tool, skelname)); + } + } + return { entries, skipped }; +} +// --- reporting ------------------------------------------------------------ +/** The version of each tool that took part, so a failure names a compiler. */ +function toolVersions(tools) { + const versions = []; + for (const tool of [...new Set(tools)].sort()) { + const meta = toolmeta_1.TOOL_META[tool]; + versions.push(`${tool}${meta && meta.version ? ' ' + meta.version : ''}`); + } + return versions.join(', '); +} +/** The baseline record of a build: what has to keep working. */ +function baselineRecord(r) { + const meta = toolmeta_1.TOOL_META[r.tool]; + return { + preset: r.preset, + platform: r.platform, + tool: r.tool, + toolVersion: meta ? meta.version : undefined, + ok: r.ok, + errors: r.errors, + warnings: r.warnings, + }; +} +async function main() { + const argv = process.argv.slice(2); + const tag = arg(argv, 'tag') || DEFAULT_TAG; + const dir = arg(argv, 'dir'); + const jsonFile = arg(argv, 'json'); + const baseline = arg(argv, 'baseline'); + const writeBaseline = arg(argv, 'write-baseline'); + const quiet = argv.includes('--quiet'); + const verbose = argv.includes('--verbose'); + const strict = argv.includes('--strict'); + const timeout = arg(argv, 'timeout') ? parseInt(arg(argv, 'timeout')) : undefined; + let corpus; + if (dir) { + // either the tree or its presets folder will do + const abs = path.resolve(dir); + const presets = fs.existsSync(path.join(abs, 'presets')) ? path.join(abs, 'presets') : abs; + const tree = fs.existsSync(path.join(abs, 'src', 'platform')) ? abs : path.dirname(abs); + if (!fs.existsSync(presets)) { + console.error(red(`error: no such directory: ${dir}`)); + return 2; + } + corpus = { dir: presets, tree, label: abs }; + } + else { + try { + corpus = checkoutTag(tag); + } + catch (e) { + console.error(red(`error: ${e.message || e}`)); + return 2; + } + } + let code = 0; + try { + const { entries, skipped } = await listCorpus(corpus); + console.log(bold(`building ${entries.length} examples from ${corpus.label} with today's toolchain...`)); + console.log(dim('tools: ' + toolVersions(entries.map((e) => e.tool)))); + if (skipped.length) { + console.log(dim(`skipped ${skipped.length} file(s)`)); + for (const s of skipped) + console.log(dim(` ${s.preset}: ${s.why}`)); + } + const results = await (0, buildpresets_1.buildAllPresets)({ + presets: entries, + presetsDir: corpus.dir, + timeout, verbose, strict, + onResult: (r) => { + if (quiet && r.ok && !r.warnings) + return; + const status = r.ok ? green('ok ') : red(bold('FAIL')); + const size = r.size != null ? `${r.size} bytes` : ''; + console.log(`${status} ${r.preset} ${cyan(`[${r.tool}/${r.platform}]`)} ${dim(size)} ${dim(r.ms + 'ms')}`); + for (const e of r.errors || []) + console.log(` ${yellow(e)}`); + if (r.ok) + for (const w of r.warnings || []) + console.log(` ${dim('warning: ' + w)}`); + if (r.internal) + console.log(` ${red(bold('CRASH'))} ${red(r.internal)}`); + if (r.log) + console.log(dim(r.log.split('\n').map((l) => ' | ' + l).join('\n'))); + }, + }); + const failed = results.filter((r) => !r.ok); + const built = results.length - failed.length; + const tally = `${built}/${results.length} examples build`; + console.log('\n' + bold(failed.length ? yellow(tally) : green(tally))); + if (failed.length) { + const byTool = {}; + for (const r of failed) + byTool[r.tool] = (byTool[r.tool] || 0) + 1; + console.log('\n' + bold('failures:')); + for (const r of failed) + console.log(` ${red(r.preset)} ${cyan(`[${r.tool}/${r.platform}]`)}`); + console.log('\nby tool: ' + Object.keys(byTool).sort() + .map((t) => `${cyan(t)}=${byTool[t]}`).join(' ')); + } + const warned = results.filter((r) => r.ok && r.warnings); + if (warned.length) { + const nwarn = warned.reduce((n, r) => n + r.warnings.length, 0); + console.log('\n' + yellow(`${nwarn} warning(s) in ${warned.length} example(s)`)); + } + if (jsonFile) { + const report = results.map((_a) => { + var { log } = _a, r = __rest(_a, ["log"]); + return (Object.assign(Object.assign({}, r), { log: undefined })); + }); + fs.writeFileSync(jsonFile, JSON.stringify(report, null, 1)); + console.log(dim(`\nwrote ${jsonFile}`)); + } + if (writeBaseline) { + fs.writeFileSync(writeBaseline, JSON.stringify(results.map(baselineRecord), null, 1) + '\n'); + console.log(dim(`wrote ${writeBaseline}`)); + } + if (baseline) { + // the gate is about new breakage: an example that already failed + // is in the baseline, and stays as it is + const broke = (0, buildpresets_1.compareToBaseline)(results, baseline); + if (broke) + code = 1; + } + else if (failed.length) { + code = 1; + } + } + finally { + // the worktree has to go before the process exits + if (corpus.cleanup) + corpus.cleanup(); + } + return code; +} +if (require.main === module) { + main().then((code) => process.exit(code)) + .catch((e) => { console.error(e); process.exit(2); }); +} +//# sourceMappingURL=compatcheck.js.map \ No newline at end of file diff --git a/gen/src/tools/compatcheck.js.map b/gen/src/tools/compatcheck.js.map new file mode 100644 index 00000000..e16a4eaa --- /dev/null +++ b/gen/src/tools/compatcheck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"compatcheck.js","sourceRoot":"","sources":["../../../src/tools/compatcheck.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gen/test/tsconfig.tsbuildinfo b/gen/test/tsconfig.tsbuildinfo index 62d339e8..3b84c181 100644 --- a/gen/test/tsconfig.tsbuildinfo +++ b/gen/test/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["../../test/unit/dapclient.ts","../../test/unit/testanalysis.ts","../../test/unit/testassembler.ts","../../test/unit/testassetscan.ts","../../test/unit/testatari8xex.ts","../../test/unit/testaudio.ts","../../test/unit/testbaseplatform.ts","../../test/unit/testbataribasic.ts","../../test/unit/testbooks.ts","../../test/unit/testbreakpoints.ts","../../test/unit/testbuildparams.ts","../../test/unit/testbuildpresetrun.ts","../../test/unit/testc64breakpoints.ts","../../test/unit/testca65listing.ts","../../test/unit/testcallgraph.ts","../../test/unit/testcc65dbg.ts","../../test/unit/testclang.ts","../../test/unit/testcommon.ts","../../test/unit/testcommon_ext.ts","../../test/unit/testdapsession.ts","../../test/unit/testdasm.ts","../../test/unit/testdebugcontroller.ts","../../test/unit/testdebugtree.ts","../../test/unit/testdetect.ts","../../test/unit/testdumplines.ts","../../test/unit/testecs.ts","../../test/unit/testelfparser.ts","../../test/unit/testemu.ts","../../test/unit/testemucore.ts","../../test/unit/testfetchbinary.ts","../../test/unit/testgbdouble.ts","../../test/unit/testgbrtc.ts","../../test/unit/testhistory.ts","../../test/unit/testidebreakpoints.ts","../../test/unit/testkeys.ts","../../test/unit/testlibretro.ts","../../test/unit/testlinking.ts","../../test/unit/testlistingfiles.ts","../../test/unit/testlistinglocation.ts","../../test/unit/testmemmaplayout.ts","../../test/unit/testmockingboard.ts","../../test/unit/testpixelclipboard.ts","../../test/unit/testpixelpalette.ts","../../test/unit/testpresets.ts","../../test/unit/testprojectcore.ts","../../test/unit/testprojectparity.ts","../../test/unit/testrunevalatpc.ts","../../test/unit/testrunscript.ts","../../test/unit/testsdccbanking.ts","../../test/unit/testsdcclink.ts","../../test/unit/testsdcclisting.ts","../../test/unit/testsdccsizes.ts","../../test/unit/testsdcctarget.ts","../../test/unit/testsearchdebuggerhit.ts","../../test/unit/testsearchdocs.ts","../../test/unit/testsearchindex.ts","../../test/unit/testsearchsymbols.ts","../../test/unit/testsearchtoolchain.ts","../../test/unit/teststackwalk.ts","../../test/unit/teststepover.ts","../../test/unit/teststorage.ts","../../test/unit/testtabs.ts","../../test/unit/testtelemetry.ts","../../test/unit/testtimeline.ts","../../test/unit/testtimelinemachine.ts","../../test/unit/testtoolmeta.ts","../../test/unit/testtoolselect.ts","../../test/unit/testtraceheat.ts","../../test/unit/testutil.ts","../../test/unit/testvcd.ts","../../test/unit/testvcs.ts","../../test/unit/testwasishim.ts","../../test/unit/testwasmlisteners.ts","../../test/unit/testwaveform.ts","../../test/unit/testworkingstore.ts","../../test/unit/testz80probe.ts","../../src/md.d.ts","../../src/common/analysis.ts","../../src/common/audio.ts","../../src/common/baseplatform.ts","../../src/common/binutils.ts","../../src/common/books.ts","../../src/common/breakcond.ts","../../src/common/breakpoints.ts","../../src/common/callgraph.ts","../../src/common/callprofile.ts","../../src/common/controls.ts","../../src/common/debugcontroller.ts","../../src/common/debugtree.ts","../../src/common/detect.ts","../../src/common/devices.ts","../../src/common/emu.ts","../../src/common/emucore.ts","../../src/common/gbpalette.ts","../../src/common/history.ts","../../src/common/mameplatform.ts","../../src/common/platformcore.ts","../../src/common/probe.ts","../../src/common/projectcore.ts","../../src/common/recorder.ts","../../src/common/searchtypes.ts","../../src/common/stackwalk.ts","../../src/common/statehash.ts","../../src/common/telemetry.ts","../../src/common/teletype.ts","../../src/common/timeline.ts","../../src/common/tokenizer.ts","../../src/common/toolmeta.ts","../../src/common/toolselect.ts","../../src/common/util.ts","../../src/common/vcd.ts","../../src/common/vectorraster.ts","../../src/common/vlist.ts","../../src/common/vtextscroller.ts","../../src/common/wasmplatform.ts","../../src/common/waveform.ts","../../src/common/waveformcore.ts","../../src/common/workertypes.ts","../../src/common/audio/CommodoreTape.ts","../../src/common/basic/compiler.ts","../../src/common/basic/fuzz.ts","../../src/common/basic/run.ts","../../src/common/basic/runtime.ts","../../src/common/cpu/6809.ts","../../src/common/cpu/ARM.ts","../../src/common/cpu/F8.ts","../../src/common/cpu/MOS6502.ts","../../src/common/cpu/SM83.ts","../../src/common/cpu/ZilogZ80.ts","../../src/common/cpu/disasm6502.ts","../../src/common/cpu/disasmF8.ts","../../src/common/cpu/disasmHuC6280.ts","../../src/common/cpu/disasmSM83.ts","../../src/common/cpu/disasmz80.ts","../../src/common/ecs/binpack.ts","../../src/common/ecs/compiler.ts","../../src/common/ecs/decoder.ts","../../src/common/ecs/ecs.ts","../../src/common/ecs/main.ts","../../src/common/hdl/fuzz.ts","../../src/common/hdl/hdlhost.ts","../../src/common/hdl/hdlruntime.ts","../../src/common/hdl/hdltypes.ts","../../src/common/hdl/hdlwasm.ts","../../src/common/hdl/vxmlparser.ts","../../src/common/hdl/vxmltest.ts","../../src/common/symbols/doccomment.ts","../../src/common/symbols/dumplines.ts","../../src/common/symbols/index.ts","../../src/common/symbols/symbolfile.ts","../../src/common/symbols/symbolvalue.ts","../../src/common/wasi/libretro.ts","../../src/common/wasi/wasishim.ts","../../src/ide/breakpoints.ts","../../src/ide/dialogs.ts","../../src/ide/embedui.ts","../../src/ide/errorreport.ts","../../src/ide/hdlhost.ts","../../src/ide/helptopics.ts","../../src/ide/keys.ts","../../src/ide/layout.ts","../../src/ide/pixeleditor.ts","../../src/ide/project.ts","../../src/ide/services.ts","../../src/ide/settings.ts","../../src/ide/shareexport.ts","../../src/ide/shortcutbar.ts","../../src/ide/storage.ts","../../src/ide/sync.ts","../../src/ide/toolbar.ts","../../src/ide/ui.ts","../../src/ide/waveform.ts","../../src/ide/windows.ts","../../src/ide/search/debuggerhit.ts","../../src/ide/search/docssource.ts","../../src/ide/search/listinglocation.ts","../../src/ide/search/projectsource.ts","../../src/ide/search/searchview.ts","../../src/ide/search/service.ts","../../src/ide/search/symbolindex.ts","../../src/ide/search/toolchainsource.ts","../../src/ide/search/types.ts","../../src/ide/views/assetdecorations.ts","../../src/ide/views/asseteditor.ts","../../src/ide/views/baseviews.ts","../../src/ide/views/debug.ts","../../src/ide/views/debugviews.ts","../../src/ide/views/editors.ts","../../src/ide/views/filters.ts","../../src/ide/views/gutter.ts","../../src/ide/views/helpview.ts","../../src/ide/views/includedecorations.ts","../../src/ide/views/memmaplayout.ts","../../src/ide/views/tabs.ts","../../src/ide/views/traceheat.ts","../../src/ide/views/traceviews.ts","../../src/ide/views/treeviews.ts","../../src/ide/views/visuals.ts","../../src/machine/apple2.ts","../../src/machine/arm32.ts","../../src/machine/astrocade.ts","../../src/machine/atari7800.ts","../../src/machine/atari8.ts","../../src/machine/atari8disk.ts","../../src/machine/c64.ts","../../src/machine/channelf.ts","../../src/machine/coleco.ts","../../src/machine/cpc.ts","../../src/machine/devel.ts","../../src/machine/exidy.ts","../../src/machine/galaxian.ts","../../src/machine/gb.ts","../../src/machine/kim1.ts","../../src/machine/mcr.ts","../../src/machine/msx.ts","../../src/machine/mw8080bw.ts","../../src/machine/pacman.ts","../../src/machine/sms.ts","../../src/machine/vcs.ts","../../src/machine/vdp_z80.ts","../../src/machine/vic20.ts","../../src/machine/vicdual.ts","../../src/machine/williams.ts","../../src/machine/zx.ts","../../src/machine/chips/antic.ts","../../src/machine/chips/gtia.ts","../../src/machine/chips/pokey.ts","../../src/machine/chips/tms9918a.ts","../../src/machine/chips/via6522.ts","../../src/parser/asmkeywords.ts","../../src/parser/lang-6502.ts","../../src/parser/lang-basic.ts","../../src/parser/lang-bataribasic.ts","../../src/parser/lang-c.ts","../../src/parser/lang-dialog.ts","../../src/parser/lang-fastbasic.ts","../../src/parser/lang-inform6.ts","../../src/parser/lang-verilog.ts","../../src/parser/lang-wiz.ts","../../src/parser/lang-z80.ts","../../src/parser/registry.ts","../../src/parser/tokens-6502.ts","../../src/parser/tokens-6809.ts","../../src/parser/tokens-z80.ts","../../src/platform/_index.ts","../../src/platform/apple2.ts","../../src/platform/arm32.ts","../../src/platform/astrocade.ts","../../src/platform/atari7800.ts","../../src/platform/atari8.ts","../../src/platform/basic.ts","../../src/platform/c64.ts","../../src/platform/channelf.ts","../../src/platform/coleco.ts","../../src/platform/cpc.ts","../../src/platform/devel.ts","../../src/platform/exidy.ts","../../src/platform/galaxian.ts","../../src/platform/gb.ts","../../src/platform/kim1.ts","../../src/platform/mcr.ts","../../src/platform/msx.ts","../../src/platform/mw8080bw.ts","../../src/platform/nes.ts","../../src/platform/pacman.ts","../../src/platform/pce.ts","../../src/platform/sms.ts","../../src/platform/sound_konami.ts","../../src/platform/sound_williams.ts","../../src/platform/vcs.ts","../../src/platform/vector.ts","../../src/platform/vectrex.ts","../../src/platform/verilog.ts","../../src/platform/vic20.ts","../../src/platform/vicdual.ts","../../src/platform/williams.ts","../../src/platform/x86.ts","../../src/platform/zmachine.ts","../../src/platform/zx.ts","../../src/themes/cobalt.ts","../../src/themes/disassemblyTheme.ts","../../src/themes/editorTheme.ts","../../src/themes/mbo.ts","../../src/tools/8bws.ts","../../src/tools/assetpacks.ts","../../src/tools/assets.ts","../../src/tools/buildpresets.ts","../../src/tools/cliformat.ts","../../src/tools/daplocal.ts","../../src/tools/dapsession.ts","../../src/tools/debugservice.ts","../../src/tools/doctools.ts","../../src/tools/emutarget.ts","../../src/tools/exclusions.ts","../../src/tools/nodemock.ts","../../src/tools/presets.ts","../../src/tools/presettypes.ts","../../src/tools/runscript.ts","../../src/tools/sim6502.ts","../../src/tools/termimage.ts","../../src/tools/testlib.ts","../../src/tools/toolroot.ts","../../src/tools/toolversions.ts","../../src/tools/vcdfile.ts","../../src/tools/verifyreplay.ts","../../src/worker/assembler.ts","../../src/worker/builder.ts","../../src/worker/listingutils.ts","../../src/worker/platforms.ts","../../src/worker/wasiutils.ts","../../src/worker/wasmutils.ts","../../src/worker/workerlib.ts","../../src/worker/workermain.ts","../../src/worker/workertools.ts","../../src/worker/server/buildenv.ts","../../src/worker/server/clang.ts","../../src/worker/server/server.ts","../../src/worker/tools/acme.ts","../../src/worker/tools/arm.ts","../../src/worker/tools/bataribasic.ts","../../src/worker/tools/cc2600.ts","../../src/worker/tools/cc65.ts","../../src/worker/tools/cc6502.ts","../../src/worker/tools/cc65dbg.ts","../../src/worker/tools/cc7800.ts","../../src/worker/tools/dasm.ts","../../src/worker/tools/dialog.ts","../../src/worker/tools/ecs.ts","../../src/worker/tools/m6502.ts","../../src/worker/tools/m6809.ts","../../src/worker/tools/mcpp.ts","../../src/worker/tools/misc.ts","../../src/worker/tools/oscar64.ts","../../src/worker/tools/oscar64parse.ts","../../src/worker/tools/remote.ts","../../src/worker/tools/sdcc.ts","../../src/worker/tools/verilog.ts","../../src/worker/tools/x86.ts","../../src/worker/tools/xa.ts","../../src/worker/tools/z80.ts"],"version":"5.9.3"} \ No newline at end of file +{"root":["../../test/unit/dapclient.ts","../../test/unit/testanalysis.ts","../../test/unit/testassembler.ts","../../test/unit/testassetscan.ts","../../test/unit/testatari8xex.ts","../../test/unit/testaudio.ts","../../test/unit/testbaseplatform.ts","../../test/unit/testbataribasic.ts","../../test/unit/testbooks.ts","../../test/unit/testbreakpoints.ts","../../test/unit/testbuildparams.ts","../../test/unit/testbuildpresetrun.ts","../../test/unit/testc64breakpoints.ts","../../test/unit/testca65listing.ts","../../test/unit/testcallgraph.ts","../../test/unit/testcc65dbg.ts","../../test/unit/testclang.ts","../../test/unit/testcommon.ts","../../test/unit/testcommon_ext.ts","../../test/unit/testdapsession.ts","../../test/unit/testdasm.ts","../../test/unit/testdebugcontroller.ts","../../test/unit/testdebugtree.ts","../../test/unit/testdetect.ts","../../test/unit/testdumplines.ts","../../test/unit/testecs.ts","../../test/unit/testelfparser.ts","../../test/unit/testemu.ts","../../test/unit/testemucore.ts","../../test/unit/testfetchbinary.ts","../../test/unit/testgbdouble.ts","../../test/unit/testgbrtc.ts","../../test/unit/testhistory.ts","../../test/unit/testidebreakpoints.ts","../../test/unit/testkeys.ts","../../test/unit/testlibretro.ts","../../test/unit/testlinking.ts","../../test/unit/testlinks.ts","../../test/unit/testlistingfiles.ts","../../test/unit/testlistinglocation.ts","../../test/unit/testmemmaplayout.ts","../../test/unit/testmockingboard.ts","../../test/unit/testpixelclipboard.ts","../../test/unit/testpixelpalette.ts","../../test/unit/testpresets.ts","../../test/unit/testprojectcore.ts","../../test/unit/testprojectparity.ts","../../test/unit/testrunevalatpc.ts","../../test/unit/testrunscript.ts","../../test/unit/testsdccbanking.ts","../../test/unit/testsdcclink.ts","../../test/unit/testsdcclisting.ts","../../test/unit/testsdccsizes.ts","../../test/unit/testsdcctarget.ts","../../test/unit/testsearchdebuggerhit.ts","../../test/unit/testsearchdocs.ts","../../test/unit/testsearchindex.ts","../../test/unit/testsearchsymbols.ts","../../test/unit/testsearchtoolchain.ts","../../test/unit/teststackwalk.ts","../../test/unit/teststepover.ts","../../test/unit/teststorage.ts","../../test/unit/testtabs.ts","../../test/unit/testtelemetry.ts","../../test/unit/testtimeline.ts","../../test/unit/testtimelinemachine.ts","../../test/unit/testtoolmeta.ts","../../test/unit/testtoolselect.ts","../../test/unit/testtraceheat.ts","../../test/unit/testutil.ts","../../test/unit/testvcd.ts","../../test/unit/testvcs.ts","../../test/unit/testwasishim.ts","../../test/unit/testwasmlisteners.ts","../../test/unit/testwaveform.ts","../../test/unit/testworkingstore.ts","../../test/unit/testz80probe.ts","../../src/md.d.ts","../../src/common/analysis.ts","../../src/common/audio.ts","../../src/common/baseplatform.ts","../../src/common/binutils.ts","../../src/common/books.ts","../../src/common/breakcond.ts","../../src/common/breakpoints.ts","../../src/common/callgraph.ts","../../src/common/callprofile.ts","../../src/common/controls.ts","../../src/common/debugcontroller.ts","../../src/common/debugtree.ts","../../src/common/detect.ts","../../src/common/devices.ts","../../src/common/emu.ts","../../src/common/emucore.ts","../../src/common/gbpalette.ts","../../src/common/history.ts","../../src/common/links.ts","../../src/common/mameplatform.ts","../../src/common/platformcore.ts","../../src/common/probe.ts","../../src/common/projectcore.ts","../../src/common/recorder.ts","../../src/common/searchtypes.ts","../../src/common/stackwalk.ts","../../src/common/statehash.ts","../../src/common/telemetry.ts","../../src/common/teletype.ts","../../src/common/timeline.ts","../../src/common/tokenizer.ts","../../src/common/toolmeta.ts","../../src/common/toolselect.ts","../../src/common/util.ts","../../src/common/vcd.ts","../../src/common/vectorraster.ts","../../src/common/vlist.ts","../../src/common/vtextscroller.ts","../../src/common/wasmplatform.ts","../../src/common/waveform.ts","../../src/common/waveformcore.ts","../../src/common/workertypes.ts","../../src/common/audio/CommodoreTape.ts","../../src/common/basic/compiler.ts","../../src/common/basic/fuzz.ts","../../src/common/basic/run.ts","../../src/common/basic/runtime.ts","../../src/common/cpu/6809.ts","../../src/common/cpu/ARM.ts","../../src/common/cpu/F8.ts","../../src/common/cpu/MOS6502.ts","../../src/common/cpu/SM83.ts","../../src/common/cpu/ZilogZ80.ts","../../src/common/cpu/disasm6502.ts","../../src/common/cpu/disasmF8.ts","../../src/common/cpu/disasmHuC6280.ts","../../src/common/cpu/disasmSM83.ts","../../src/common/cpu/disasmz80.ts","../../src/common/ecs/binpack.ts","../../src/common/ecs/compiler.ts","../../src/common/ecs/decoder.ts","../../src/common/ecs/ecs.ts","../../src/common/ecs/main.ts","../../src/common/hdl/fuzz.ts","../../src/common/hdl/hdlhost.ts","../../src/common/hdl/hdlruntime.ts","../../src/common/hdl/hdltypes.ts","../../src/common/hdl/hdlwasm.ts","../../src/common/hdl/vxmlparser.ts","../../src/common/hdl/vxmltest.ts","../../src/common/symbols/doccomment.ts","../../src/common/symbols/dumplines.ts","../../src/common/symbols/index.ts","../../src/common/symbols/symbolfile.ts","../../src/common/symbols/symbolvalue.ts","../../src/common/wasi/libretro.ts","../../src/common/wasi/wasishim.ts","../../src/ide/breakpoints.ts","../../src/ide/dialogs.ts","../../src/ide/embedui.ts","../../src/ide/errorreport.ts","../../src/ide/hdlhost.ts","../../src/ide/helptopics.ts","../../src/ide/keys.ts","../../src/ide/layout.ts","../../src/ide/pixeleditor.ts","../../src/ide/project.ts","../../src/ide/services.ts","../../src/ide/settings.ts","../../src/ide/shareexport.ts","../../src/ide/shortcutbar.ts","../../src/ide/storage.ts","../../src/ide/sync.ts","../../src/ide/toolbar.ts","../../src/ide/ui.ts","../../src/ide/waveform.ts","../../src/ide/windows.ts","../../src/ide/search/debuggerhit.ts","../../src/ide/search/docssource.ts","../../src/ide/search/listinglocation.ts","../../src/ide/search/projectsource.ts","../../src/ide/search/searchview.ts","../../src/ide/search/service.ts","../../src/ide/search/symbolindex.ts","../../src/ide/search/toolchainsource.ts","../../src/ide/search/types.ts","../../src/ide/views/assetdecorations.ts","../../src/ide/views/asseteditor.ts","../../src/ide/views/baseviews.ts","../../src/ide/views/debug.ts","../../src/ide/views/debugviews.ts","../../src/ide/views/editors.ts","../../src/ide/views/filters.ts","../../src/ide/views/gutter.ts","../../src/ide/views/helpview.ts","../../src/ide/views/includedecorations.ts","../../src/ide/views/memmaplayout.ts","../../src/ide/views/tabs.ts","../../src/ide/views/traceheat.ts","../../src/ide/views/traceviews.ts","../../src/ide/views/treeviews.ts","../../src/ide/views/visuals.ts","../../src/machine/apple2.ts","../../src/machine/arm32.ts","../../src/machine/astrocade.ts","../../src/machine/atari7800.ts","../../src/machine/atari8.ts","../../src/machine/atari8disk.ts","../../src/machine/c64.ts","../../src/machine/channelf.ts","../../src/machine/coleco.ts","../../src/machine/cpc.ts","../../src/machine/devel.ts","../../src/machine/exidy.ts","../../src/machine/galaxian.ts","../../src/machine/gb.ts","../../src/machine/kim1.ts","../../src/machine/mcr.ts","../../src/machine/msx.ts","../../src/machine/mw8080bw.ts","../../src/machine/pacman.ts","../../src/machine/sms.ts","../../src/machine/vcs.ts","../../src/machine/vdp_z80.ts","../../src/machine/vic20.ts","../../src/machine/vicdual.ts","../../src/machine/williams.ts","../../src/machine/zx.ts","../../src/machine/chips/antic.ts","../../src/machine/chips/gtia.ts","../../src/machine/chips/pokey.ts","../../src/machine/chips/tms9918a.ts","../../src/machine/chips/via6522.ts","../../src/parser/asmkeywords.ts","../../src/parser/lang-6502.ts","../../src/parser/lang-basic.ts","../../src/parser/lang-bataribasic.ts","../../src/parser/lang-c.ts","../../src/parser/lang-dialog.ts","../../src/parser/lang-fastbasic.ts","../../src/parser/lang-inform6.ts","../../src/parser/lang-verilog.ts","../../src/parser/lang-wiz.ts","../../src/parser/lang-z80.ts","../../src/parser/registry.ts","../../src/parser/tokens-6502.ts","../../src/parser/tokens-6809.ts","../../src/parser/tokens-z80.ts","../../src/platform/_index.ts","../../src/platform/apple2.ts","../../src/platform/arm32.ts","../../src/platform/astrocade.ts","../../src/platform/atari7800.ts","../../src/platform/atari8.ts","../../src/platform/basic.ts","../../src/platform/c64.ts","../../src/platform/channelf.ts","../../src/platform/coleco.ts","../../src/platform/cpc.ts","../../src/platform/devel.ts","../../src/platform/exidy.ts","../../src/platform/galaxian.ts","../../src/platform/gb.ts","../../src/platform/kim1.ts","../../src/platform/mcr.ts","../../src/platform/msx.ts","../../src/platform/mw8080bw.ts","../../src/platform/nes.ts","../../src/platform/pacman.ts","../../src/platform/pce.ts","../../src/platform/sms.ts","../../src/platform/sound_konami.ts","../../src/platform/sound_williams.ts","../../src/platform/vcs.ts","../../src/platform/vector.ts","../../src/platform/vectrex.ts","../../src/platform/verilog.ts","../../src/platform/vic20.ts","../../src/platform/vicdual.ts","../../src/platform/williams.ts","../../src/platform/x86.ts","../../src/platform/zmachine.ts","../../src/platform/zx.ts","../../src/themes/cobalt.ts","../../src/themes/disassemblyTheme.ts","../../src/themes/editorTheme.ts","../../src/themes/mbo.ts","../../src/tools/8bws.ts","../../src/tools/assetpacks.ts","../../src/tools/assets.ts","../../src/tools/buildpresets.ts","../../src/tools/cliformat.ts","../../src/tools/compatcheck.ts","../../src/tools/daplocal.ts","../../src/tools/dapsession.ts","../../src/tools/debugservice.ts","../../src/tools/doctools.ts","../../src/tools/emutarget.ts","../../src/tools/exclusions.ts","../../src/tools/nodemock.ts","../../src/tools/presets.ts","../../src/tools/presettypes.ts","../../src/tools/runscript.ts","../../src/tools/sim6502.ts","../../src/tools/termimage.ts","../../src/tools/testlib.ts","../../src/tools/toolroot.ts","../../src/tools/toolversions.ts","../../src/tools/vcdfile.ts","../../src/tools/verifyreplay.ts","../../src/worker/assembler.ts","../../src/worker/builder.ts","../../src/worker/listingutils.ts","../../src/worker/platforms.ts","../../src/worker/wasiutils.ts","../../src/worker/wasmutils.ts","../../src/worker/workerlib.ts","../../src/worker/workermain.ts","../../src/worker/workertools.ts","../../src/worker/server/buildenv.ts","../../src/worker/server/clang.ts","../../src/worker/server/server.ts","../../src/worker/tools/acme.ts","../../src/worker/tools/arm.ts","../../src/worker/tools/bataribasic.ts","../../src/worker/tools/cc2600.ts","../../src/worker/tools/cc65.ts","../../src/worker/tools/cc6502.ts","../../src/worker/tools/cc65dbg.ts","../../src/worker/tools/cc7800.ts","../../src/worker/tools/dasm.ts","../../src/worker/tools/dialog.ts","../../src/worker/tools/ecs.ts","../../src/worker/tools/m6502.ts","../../src/worker/tools/m6809.ts","../../src/worker/tools/mcpp.ts","../../src/worker/tools/misc.ts","../../src/worker/tools/oscar64.ts","../../src/worker/tools/oscar64parse.ts","../../src/worker/tools/remote.ts","../../src/worker/tools/sdcc.ts","../../src/worker/tools/verilog.ts","../../src/worker/tools/x86.ts","../../src/worker/tools/xa.ts","../../src/worker/tools/z80.ts"],"version":"5.9.3"} \ No newline at end of file diff --git a/gen/test/unit/testdetect.js b/gen/test/unit/testdetect.js index 6bef3a0e..e63a6e0b 100644 --- a/gen/test/unit/testdetect.js +++ b/gen/test/unit/testdetect.js @@ -60,6 +60,8 @@ function files(map) { (0, mocha_1.it)('reads the README badge', async () => { var badge = (0, detect_1.parseReadmeBadge)('Game\n\n[Open](http://8bitworkshop.com/redir.html?platform=vcs&githubURL=x&file=game.dasm).\n'); assert_1.default.deepStrictEqual(badge, { platform: 'vcs', mainFile: 'game.dasm' }); + var latest = (0, detect_1.parseReadmeBadge)('Game\n\n[Open](https://8bitworkshop.com/latest/?platform=vcs&githubURL=x&file=game.dasm).\n'); + assert_1.default.deepStrictEqual(latest, { platform: 'vcs', mainFile: 'game.dasm' }); var d = await (0, detect_1.detectProject)(files({ 'README.md': '[x](https://8bitworkshop.com/?platform=nes&file=main.c)', 'main.c': '' })); assert_1.default.strictEqual(d[0].platform, 'nes'); assert_1.default.strictEqual(d[0].mainFile, 'main.c'); diff --git a/gen/test/unit/testdetect.js.map b/gen/test/unit/testdetect.js.map index e77fcb0b..8aa8efec 100644 --- a/gen/test/unit/testdetect.js.map +++ b/gen/test/unit/testdetect.js.map @@ -1 +1 @@ -{"version":3,"file":"testdetect.js","sourceRoot":"","sources":["../../../test/unit/testdetect.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"testdetect.js","sourceRoot":"","sources":["../../../test/unit/testdetect.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gen/test/unit/testlinks.js b/gen/test/unit/testlinks.js new file mode 100644 index 00000000..7c7c6784 --- /dev/null +++ b/gen/test/unit/testlinks.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const assert_1 = __importDefault(require("assert")); +const mocha_1 = require("mocha"); +const links_1 = require("../../src/common/links"); +const detect_1 = require("../../src/common/detect"); +(0, mocha_1.describe)('links', () => { + (0, mocha_1.it)('points at the IDE under /latest/', () => { + assert_1.default.strictEqual(links_1.IDE_BASE_URL, 'https://8bitworkshop.com/latest/'); + // the trailing slash matters: /latest is a 404 + assert_1.default.ok(links_1.IDE_BASE_URL.endsWith('/latest/')); + }); + (0, mocha_1.it)('builds IDE links', () => { + assert_1.default.strictEqual((0, links_1.ideLink)({ platform: 'nes', file: 'game.c' }), 'https://8bitworkshop.com/latest/?platform=nes&file=game.c'); + assert_1.default.strictEqual((0, links_1.ideLink)({ platform: 'nes', file: 'src/my game.c' }), 'https://8bitworkshop.com/latest/?platform=nes&file=src%2Fmy%20game.c'); + assert_1.default.strictEqual((0, links_1.ideLink)({ platform: 'nes', file: undefined }), 'https://8bitworkshop.com/latest/?platform=nes'); + assert_1.default.strictEqual((0, links_1.ideLink)({}), 'https://8bitworkshop.com/latest/'); + }); + (0, mocha_1.it)('writes a README badge the detector can read', () => { + var readme = (0, links_1.githubReadme)('my-game', 'nes', 'https://github.com/me/my-game', 'game.c'); + assert_1.default.ok(readme.includes('https://8bitworkshop.com/latest/?platform=nes&githubURL=https%3A%2F%2Fgithub.com%2Fme%2Fmy-game&file=game.c'), readme); + assert_1.default.deepStrictEqual((0, detect_1.parseReadmeBadge)(readme), { platform: 'nes', mainFile: 'game.c' }); + }); +}); +//# sourceMappingURL=testlinks.js.map \ No newline at end of file diff --git a/gen/test/unit/testlinks.js.map b/gen/test/unit/testlinks.js.map new file mode 100644 index 00000000..4d8a1371 --- /dev/null +++ b/gen/test/unit/testlinks.js.map @@ -0,0 +1 @@ +{"version":3,"file":"testlinks.js","sourceRoot":"","sources":["../../../test/unit/testlinks.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,iCAAqC;AACrC,kDAA6E;AAC7E,oDAA2D;AAE3D,IAAA,gBAAQ,EAAC,OAAO,EAAE,GAAG,EAAE;IACrB,IAAA,UAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,gBAAM,CAAC,WAAW,CAAC,oBAAY,EAAE,kCAAkC,CAAC,CAAC;QACrE,+CAA+C;QAC/C,gBAAM,CAAC,EAAE,CAAC,oBAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,gBAAM,CAAC,WAAW,CAAC,IAAA,eAAO,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAC7D,2DAA2D,CAAC,CAAC;QAC/D,gBAAM,CAAC,WAAW,CAAC,IAAA,eAAO,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EACpE,sEAAsE,CAAC,CAAC;QAC1E,gBAAM,CAAC,WAAW,CAAC,IAAA,eAAO,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC9D,+CAA+C,CAAC,CAAC;QACnD,gBAAM,CAAC,WAAW,CAAC,IAAA,eAAO,EAAC,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,IAAI,MAAM,GAAG,IAAA,oBAAY,EAAC,SAAS,EAAE,KAAK,EAAE,+BAA+B,EAAE,QAAQ,CAAC,CAAC;QACvF,gBAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,6GAA6G,CAAC,EAAE,MAAM,CAAC,CAAC;QAClJ,gBAAM,CAAC,eAAe,CAAC,IAAA,yBAAgB,EAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/gen/tools/buildpresets.js b/gen/tools/buildpresets.js index 542b8529..0dc9a3bc 100644 --- a/gen/tools/buildpresets.js +++ b/gen/tools/buildpresets.js @@ -78,12 +78,15 @@ var __rest = (this && this.__rest) || function (s, e) { return t; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.toolsBySkeletonName = toolsBySkeletonName; +exports.skeletonBuildName = skeletonBuildName; exports.libraryCollisions = libraryCollisions; exports.listPresets = listPresets; exports.screenStats = screenStats; exports.runPreset = runPreset; exports.buildPreset = buildPreset; exports.buildAllPresets = buildAllPresets; +exports.compareToBaseline = compareToBaseline; const fs = __importStar(require("fs")); const path = __importStar(require("path")); const util = __importStar(require("util")); @@ -541,6 +544,11 @@ async function runPreset(result, preset, platform, opts = {}) { run.ms = Date.now() - started; return run; } +// A preset path is relative to the presets dir, unless it is absolute -- the +// compatibility sweep builds files that live in another tree. +function presetFile(presetsDir, preset) { + return path.isAbsolute(preset) ? preset : path.join(presetsDir, preset); +} async function buildPreset(preset, platform, tool, opts = {}) { const started = Date.now(); const timeout = opts.timeout || DEFAULT_TIMEOUT; @@ -563,7 +571,7 @@ async function buildPreset(preset, platform, tool, opts = {}) { }); await preloadOnce(tool, platform); result = await Promise.race([ - (0, testlib_1.compileSourceFile)(tool, platform, path.join(PRESETS_DIR, preset), opts.buildAs), + (0, testlib_1.compileSourceFile)(tool, platform, presetFile(opts.presetsDir || PRESETS_DIR, preset), opts.buildAs), exited, expired, ]); diff --git a/gen/tools/buildpresets.js.map b/gen/tools/buildpresets.js.map index 96a54237..58995db0 100644 --- a/gen/tools/buildpresets.js.map +++ b/gen/tools/buildpresets.js.map @@ -1 +1 @@ -{"version":3,"file":"buildpresets.js","sourceRoot":"","sources":["../../src/tools/buildpresets.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"buildpresets.js","sourceRoot":"","sources":["../../src/tools/buildpresets.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gen/tools/compatcheck.js b/gen/tools/compatcheck.js new file mode 100644 index 00000000..84838479 --- /dev/null +++ b/gen/tools/compatcheck.js @@ -0,0 +1,562 @@ +"use strict"; +// compatcheck - build an older release's examples with today's toolchain. +// +// The compilers live in the repo as wasm binaries (src/worker/wasm), so +// swapping one out changes what every program in the IDE has to live with. +// This tool answers the question "does the new compiler still accept the old +// code?" by building an older release's examples with the current worker. +// +// npm run compatcheck # the release we track +// npm run compatcheck -- --tag 3.12.1 +// npm run compatcheck -- --dir ~/old/presets +// npm run compatcheck -- --baseline test/compat/3.12.1.json +// npm run compatcheck -- --write-baseline test/compat/3.12.1.json +// npm run compatcheck -- --json out.json +// +// --tag checks the release out into a temporary worktree (removed when the +// run ends) and builds the examples it shipped. --dir builds a preset tree +// that is already on disk. +// +// The sources are the old ones, read the way the IDE reads them; the +// toolchain, the libraries and the build parameters are today's. A failure +// means the current toolchain no longer accepts that old source -- which is +// what the baseline records, so a new one shows up as breakage. +// +// With --baseline it exits nonzero when an example that used to build stops +// building, so it can gate a release. --write-baseline records the current +// results as that baseline. +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseOldExamples = parseOldExamples; +exports.listCorpus = listCorpus; +const fs = __importStar(require("fs")); +const os = __importStar(require("os")); +const path = __importStar(require("path")); +const child_process_1 = require("child_process"); +const emu_1 = require("../common/emu"); +const toolmeta_1 = require("../common/toolmeta"); +const util_1 = require("../common/util"); +const buildpresets_1 = require("./buildpresets"); +const testlib_1 = require("./testlib"); +const toolroot_1 = require("./toolroot"); +const cliformat_1 = require("./cliformat"); +// The release whose examples we keep building. It is the last one before the +// toolchains started moving (sdcc 4, the cc65 upgrade, the WASI conversions), +// so its examples are the ones most likely to notice a change. +const DEFAULT_TAG = '3.12.1'; +const useColor = !!process.stdout.isTTY && !process.env.NO_COLOR; +const paint = (code) => (s) => useColor ? `${code}${s}${cliformat_1.c.reset}` : `${s}`; +const bold = paint(cliformat_1.c.bold), dim = paint(cliformat_1.c.dim); +const green = paint(cliformat_1.c.green), red = paint(cliformat_1.c.red), yellow = paint(cliformat_1.c.yellow), cyan = paint(cliformat_1.c.cyan); +function arg(argv, name) { + const i = argv.indexOf('--' + name); + return i >= 0 ? argv[i + 1] : undefined; +} +/** Check a tag out into a worktree and return its presets directory. */ +function checkoutTag(tag) { + const root = fs.mkdtempSync(path.join(os.tmpdir(), '8bws-compat-')); + const wt = path.join(root, 'wt'); + let done = false; + const cleanup = () => { + if (done) + return; + done = true; + process.off('exit', cleanup); + try { + (0, child_process_1.execFileSync)('git', ['worktree', 'remove', '--force', wt], { cwd: (0, toolroot_1.toolRoot)(), stdio: 'pipe' }); + } + catch (e) { /* the worktree is removed below anyway */ } + fs.rmSync(root, { recursive: true, force: true }); + }; + // a killed run must not leave a worktree behind + process.on('exit', cleanup); + try { + (0, child_process_1.execFileSync)('git', ['worktree', 'add', '--detach', wt, tag], { cwd: (0, toolroot_1.toolRoot)(), stdio: 'pipe' }); + } + catch (e) { + cleanup(); + const msg = e.stderr ? '' + e.stderr : '' + e; + throw new Error(`cannot check out ${tag}: ${msg.trim()}`); + } + const dir = path.join(wt, 'presets'); + if (!fs.existsSync(dir)) { + cleanup(); + throw new Error(`${tag} has no presets/ directory`); + } + return { dir, tree: wt, label: tag, cleanup }; +} +/** Strip the comments from a TypeScript source, so commented-out presets go. */ +function stripComments(text) { + return text + .replace(/\/\*[\s\S]*?\*\//g, ' ') + .replace(/\/\/[^\n]*/g, ' '); +} +/** The body of an array literal that starts at `from`, up to its closing bracket. */ +function arrayBody(text, from) { + let depth = 0; + for (let i = from; i < text.length; i++) { + const ch = text[i]; + if (ch === '[') + depth++; + else if (ch === ']') { + depth--; + if (depth === 0) + return text.substring(from, i); + } + } + return ''; +} +/** + * The examples an old release offered, read from its platform sources: every + * platform's getPresets() list, which is what the Examples menu showed. The + * other files in a preset folder are helpers and data that never built on + * their own. + */ +function parseOldExamples(treeDir) { + var _a; + const examples = []; + const problems = []; + const platformDir = path.join(treeDir, 'src', 'platform'); + let files; + try { + files = fs.readdirSync(platformDir).filter((f) => f.endsWith('.ts')).sort(); + } + catch (e) { + return { examples, problems }; + } + for (const file of files) { + let text; + try { + text = stripComments(fs.readFileSync(path.join(platformDir, file), 'utf8')); + } + catch (e) { + problems.push(`platform ${file}: cannot read it`); + continue; + } + // every array in the file, with the ids it holds + const arrays = parseArrays(text); + // the scopes a platform can be written in: a class (which may extend + // another one) or a function assigned to a variable + const scopes = parseScopes(text); + const scopeOf = (pos) => { + let found = null; + for (const s of scopes) { + if (s.pos > pos) + break; + found = s.name; + } + return found; + }; + // the array each scope returns from getPresets() + const arrayOf = new Map(); + const rePresets = /getPresets\s*(?:\(\s*\)|=\s*function\s*\(\s*\))\s*(?::[^;{]*?)?\{([^{}]*?)\}/g; + let m; + while ((m = rePresets.exec(text)) !== null) { + const scope = scopeOf(m.index); + const ret = /return\s+([A-Za-z0-9_]+)\s*;/.exec(m[1]); + if (scope && ret) + arrayOf.set(scope, ret[1]); + } + // the array a scope returns, looking up the inheritance chain and the + // scopes nested inside it + const arrayFor = (scope) => { + var _a; + const own = scopes.find((s) => s.name === scope); + if (!own) + return null; + if (arrayOf.has(own.name)) + return arrayOf.get(own.name); + let parent = own.parent || null; + while (parent) { + if (arrayOf.has(parent)) + return arrayOf.get(parent); + parent = ((_a = scopes.find((s) => s.name === parent)) === null || _a === void 0 ? void 0 : _a.parent) || null; + } + // a platform that wraps its class in a function + const inside = scopes + .filter((s) => s.pos > own.pos && s.end < own.end) + .sort((a, b) => (b.end - b.pos) - (a.end - a.pos)); + for (const s of inside) { + if (arrayOf.has(s.name)) + return arrayOf.get(s.name); + } + return null; + }; + // the platform ids each scope is registered under + const idsOf = new Map(); + const reReg = /PLATFORMS\[\s*['"]([^'"]+)['"]\s*\]\s*=\s*([A-Za-z0-9_]+)/g; + while ((m = reReg.exec(text)) !== null) { + const list = idsOf.get(m[2]) || []; + list.push(m[1]); + idsOf.set(m[2], list); + } + for (const [cls, ids] of idsOf) { + const array = arrayFor(cls); + if (!array) + continue; + // the folder the platform's examples live in: the base of its id, + // as long as that folder is really there ('nes-asm' shares 'nes') + let folder = null; + let owner = ids[0]; + for (const id of ids) { + const base = (0, util_1.getBasePlatform)(id); + if (fs.existsSync(path.join(treeDir, 'presets', base))) { + folder = base; + owner = id; + break; + } + } + if (!folder) + continue; + for (const id of ((_a = arrays.get(array)) === null || _a === void 0 ? void 0 : _a.ids) || []) { + examples.push({ id, folder, platform: owner }); + } + } + } + // the same example can be offered by several platforms (an emulator + // variant); keep one + const seen = new Set(); + const unique = examples.filter((e) => { + const key = e.folder + '/' + e.id; + if (seen.has(key)) + return false; + seen.add(key); + return true; + }); + return { examples: unique, problems }; +} +function braceEnd(text, from) { + let depth = 0; + for (let i = from; i < text.length; i++) { + const ch = text[i]; + if (ch === '{') + depth++; + else if (ch === '}') { + depth--; + if (depth === 0) + return i; + } + } + return text.length; +} +function parseScopes(text) { + const scopes = []; + const reClass = /\bclass\s+([A-Za-z0-9_]+)(?:\s+extends\s+([A-Za-z0-9_]+))?/g; + let m; + while ((m = reClass.exec(text)) !== null) { + const brace = text.indexOf('{', m.index + m[0].length); + scopes.push({ + name: m[1], pos: m.index, end: braceEnd(text, brace), parent: m[2], + }); + } + // the older platforms are plain functions assigned to a variable + const reFunc = /(?:var|const|let)\s+([A-Za-z0-9_]+)\s*=\s*function\s*\(/g; + while ((m = reFunc.exec(text)) !== null) { + const brace = text.indexOf('{', m.index + m[0].length); + scopes.push({ name: m[1], pos: m.index, end: braceEnd(text, brace) }); + } + scopes.sort((a, b) => a.pos - b.pos); + return scopes; +} +/** Every array literal in a source file, with the preset ids it holds. */ function parseArrays(text) { + const arrays = new Map(); + const reDecl = /(?:const|var|let)\s+([A-Za-z0-9_]+)\b[^=;]*=\s*/g; + let m; + while ((m = reDecl.exec(text)) !== null) { + const name = m[1]; + const start = m.index + m[0].length; + const bracket = text.indexOf('[', start); + if (bracket < 0) + continue; + // whatever sits between the '=' and the '[' names another array + // whose entries are folded in ('Atari8_PRESETS.concat([...])') + const head = text.substring(start, bracket); + if (!/^[A-Za-z0-9_.\s()]*$/.test(head)) + continue; + const body = arrayBody(text, bracket); + const ids = []; + const reId = /\{\s*id\s*:\s*['"]([^'"]+)['"]/g; + let im; + while ((im = reId.exec(body)) !== null) + ids.push(im[1]); + for (const [other, value] of arrays) { + if (head.includes(other)) + ids.push(...value.ids); + } + arrays.set(name, { ids }); + } + return arrays; +} +/** + * The examples of an old release, with the tool that builds each one today. + * Files that are still examples in this tree take their platform and tool + * from there; the rest are matched by extension. + */ +async function listCorpus(corpus) { + const current = await (0, buildpresets_1.listPresets)(undefined, undefined, () => { }, () => { }); + const byPath = new Map(); + const platformByFolder = new Map(); + for (const e of current) { + byPath.set(e.preset, e); + const folder = e.preset.split('/')[0]; + if (!platformByFolder.has(folder)) + platformByFolder.set(folder, e.platform); + } + const { examples, problems } = parseOldExamples(corpus.tree); + const entries = []; + const skipped = []; + for (const p of problems) + skipped.push({ preset: p, why: 'cannot read the old platform list' }); + // the platform that owns a folder today, when no example of it is left + const folders = new Map(); + for (const id of Object.keys(emu_1.PLATFORMS).sort()) { + const folder = (0, util_1.getBasePlatform)(id); + const cur = folders.get(folder); + if (!cur || (cur.includes('.') && !id.includes('.'))) + folders.set(folder, id); + } + const skeletonTools = (0, buildpresets_1.toolsBySkeletonName)(); + const add = (rel, platform, tool, buildAs) => { + const abs = path.join(corpus.dir, rel); + if (!fs.existsSync(abs)) { + skipped.push({ preset: rel, why: 'not in this release' }); + return; + } + if (!platform) { + skipped.push({ preset: rel, why: 'no platform uses this folder' }); + return; + } + if (!tool) { + skipped.push({ preset: rel, why: 'no local tool for this file type' }); + return; + } + entries.push({ preset: rel, platform, tool, buildAs, abs }); + }; + for (const example of examples) { + const rel = example.folder + '/' + example.id; + const known = byPath.get(rel); + if (known) { + // still an example today: same platform, same tool + add(rel, known.platform, known.tool, known.buildAs); + continue; + } + const platform = platformByFolder.get(example.folder) || folders.get(example.folder) || null; + if (!platform) { + skipped.push({ preset: rel, why: 'no platform uses this folder' }); + continue; + } + // the tool that builds this file today + const name = path.basename(example.id); + const tool = (0, testlib_1.getToolForFilename)(name, platform); + add(rel, platform, tool && !tool.startsWith('remote:') ? tool : null); + } + // the templates a platform offers for a new file are worth building too + for (const folder of fs.readdirSync(corpus.dir).sort()) { + const fdir = path.join(corpus.dir, folder); + if (!fs.statSync(fdir).isDirectory()) + continue; + for (const name of fs.readdirSync(fdir).sort()) { + if (!name.startsWith('skeleton.')) + continue; + const rel = folder + '/' + name; + const known = byPath.get(rel); + if (known) { + // still a template today: same platform, same tool + add(rel, known.platform, known.tool, known.buildAs); + continue; + } + const skelname = name.substring('skeleton.'.length); + const tool = skeletonTools[skelname]; + const platform = platformByFolder.get(folder) || folders.get(folder) || null; + if (!tool || tool.startsWith('remote:')) { + skipped.push({ preset: rel, why: 'no local tool for this template' }); + continue; + } + add(rel, platform, tool, (0, buildpresets_1.skeletonBuildName)(tool, skelname)); + } + } + return { entries, skipped }; +} +// --- reporting ------------------------------------------------------------ +/** The version of each tool that took part, so a failure names a compiler. */ +function toolVersions(tools) { + const versions = []; + for (const tool of [...new Set(tools)].sort()) { + const meta = toolmeta_1.TOOL_META[tool]; + versions.push(`${tool}${meta && meta.version ? ' ' + meta.version : ''}`); + } + return versions.join(', '); +} +/** The baseline record of a build: what has to keep working. */ +function baselineRecord(r) { + const meta = toolmeta_1.TOOL_META[r.tool]; + return { + preset: r.preset, + platform: r.platform, + tool: r.tool, + toolVersion: meta ? meta.version : undefined, + ok: r.ok, + errors: r.errors, + warnings: r.warnings, + }; +} +async function main() { + const argv = process.argv.slice(2); + const tag = arg(argv, 'tag') || DEFAULT_TAG; + const dir = arg(argv, 'dir'); + const jsonFile = arg(argv, 'json'); + const baseline = arg(argv, 'baseline'); + const writeBaseline = arg(argv, 'write-baseline'); + const quiet = argv.includes('--quiet'); + const verbose = argv.includes('--verbose'); + const strict = argv.includes('--strict'); + const timeout = arg(argv, 'timeout') ? parseInt(arg(argv, 'timeout')) : undefined; + let corpus; + if (dir) { + // either the tree or its presets folder will do + const abs = path.resolve(dir); + const presets = fs.existsSync(path.join(abs, 'presets')) ? path.join(abs, 'presets') : abs; + const tree = fs.existsSync(path.join(abs, 'src', 'platform')) ? abs : path.dirname(abs); + if (!fs.existsSync(presets)) { + console.error(red(`error: no such directory: ${dir}`)); + return 2; + } + corpus = { dir: presets, tree, label: abs }; + } + else { + try { + corpus = checkoutTag(tag); + } + catch (e) { + console.error(red(`error: ${e.message || e}`)); + return 2; + } + } + let code = 0; + try { + const { entries, skipped } = await listCorpus(corpus); + console.log(bold(`building ${entries.length} examples from ${corpus.label} with today's toolchain...`)); + console.log(dim('tools: ' + toolVersions(entries.map((e) => e.tool)))); + if (skipped.length) { + console.log(dim(`skipped ${skipped.length} file(s)`)); + for (const s of skipped) + console.log(dim(` ${s.preset}: ${s.why}`)); + } + const results = await (0, buildpresets_1.buildAllPresets)({ + presets: entries, + presetsDir: corpus.dir, + timeout, verbose, strict, + onResult: (r) => { + if (quiet && r.ok && !r.warnings) + return; + const status = r.ok ? green('ok ') : red(bold('FAIL')); + const size = r.size != null ? `${r.size} bytes` : ''; + console.log(`${status} ${r.preset} ${cyan(`[${r.tool}/${r.platform}]`)} ${dim(size)} ${dim(r.ms + 'ms')}`); + for (const e of r.errors || []) + console.log(` ${yellow(e)}`); + if (r.ok) + for (const w of r.warnings || []) + console.log(` ${dim('warning: ' + w)}`); + if (r.internal) + console.log(` ${red(bold('CRASH'))} ${red(r.internal)}`); + if (r.log) + console.log(dim(r.log.split('\n').map((l) => ' | ' + l).join('\n'))); + }, + }); + const failed = results.filter((r) => !r.ok); + const built = results.length - failed.length; + const tally = `${built}/${results.length} examples build`; + console.log('\n' + bold(failed.length ? yellow(tally) : green(tally))); + if (failed.length) { + const byTool = {}; + for (const r of failed) + byTool[r.tool] = (byTool[r.tool] || 0) + 1; + console.log('\n' + bold('failures:')); + for (const r of failed) + console.log(` ${red(r.preset)} ${cyan(`[${r.tool}/${r.platform}]`)}`); + console.log('\nby tool: ' + Object.keys(byTool).sort() + .map((t) => `${cyan(t)}=${byTool[t]}`).join(' ')); + } + const warned = results.filter((r) => r.ok && r.warnings); + if (warned.length) { + const nwarn = warned.reduce((n, r) => n + r.warnings.length, 0); + console.log('\n' + yellow(`${nwarn} warning(s) in ${warned.length} example(s)`)); + } + if (jsonFile) { + const report = results.map((_a) => { + var { log } = _a, r = __rest(_a, ["log"]); + return (Object.assign(Object.assign({}, r), { log: undefined })); + }); + fs.writeFileSync(jsonFile, JSON.stringify(report, null, 1)); + console.log(dim(`\nwrote ${jsonFile}`)); + } + if (writeBaseline) { + fs.writeFileSync(writeBaseline, JSON.stringify(results.map(baselineRecord), null, 1) + '\n'); + console.log(dim(`wrote ${writeBaseline}`)); + } + if (baseline) { + // the gate is about new breakage: an example that already failed + // is in the baseline, and stays as it is + const broke = (0, buildpresets_1.compareToBaseline)(results, baseline); + if (broke) + code = 1; + } + else if (failed.length) { + code = 1; + } + } + finally { + // the worktree has to go before the process exits + if (corpus.cleanup) + corpus.cleanup(); + } + return code; +} +if (require.main === module) { + main().then((code) => process.exit(code)) + .catch((e) => { console.error(e); process.exit(2); }); +} +//# sourceMappingURL=compatcheck.js.map \ No newline at end of file diff --git a/gen/tools/compatcheck.js.map b/gen/tools/compatcheck.js.map new file mode 100644 index 00000000..104d1bf7 --- /dev/null +++ b/gen/tools/compatcheck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"compatcheck.js","sourceRoot":"","sources":["../../src/tools/compatcheck.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gen/tsconfig.tsbuildinfo b/gen/tsconfig.tsbuildinfo index 3be61feb..457edea7 100644 --- a/gen/tsconfig.tsbuildinfo +++ b/gen/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["../src/md.d.ts","../src/common/analysis.ts","../src/common/audio.ts","../src/common/baseplatform.ts","../src/common/binutils.ts","../src/common/books.ts","../src/common/breakcond.ts","../src/common/breakpoints.ts","../src/common/callgraph.ts","../src/common/callprofile.ts","../src/common/controls.ts","../src/common/debugcontroller.ts","../src/common/debugtree.ts","../src/common/detect.ts","../src/common/devices.ts","../src/common/emu.ts","../src/common/emucore.ts","../src/common/gbpalette.ts","../src/common/history.ts","../src/common/mameplatform.ts","../src/common/platformcore.ts","../src/common/probe.ts","../src/common/projectcore.ts","../src/common/recorder.ts","../src/common/searchtypes.ts","../src/common/stackwalk.ts","../src/common/statehash.ts","../src/common/telemetry.ts","../src/common/teletype.ts","../src/common/timeline.ts","../src/common/tokenizer.ts","../src/common/toolmeta.ts","../src/common/toolselect.ts","../src/common/util.ts","../src/common/vcd.ts","../src/common/vectorraster.ts","../src/common/vlist.ts","../src/common/vtextscroller.ts","../src/common/wasmplatform.ts","../src/common/waveform.ts","../src/common/waveformcore.ts","../src/common/workertypes.ts","../src/common/audio/CommodoreTape.ts","../src/common/basic/compiler.ts","../src/common/basic/fuzz.ts","../src/common/basic/run.ts","../src/common/basic/runtime.ts","../src/common/cpu/6809.ts","../src/common/cpu/ARM.ts","../src/common/cpu/F8.ts","../src/common/cpu/MOS6502.ts","../src/common/cpu/SM83.ts","../src/common/cpu/ZilogZ80.ts","../src/common/cpu/disasm6502.ts","../src/common/cpu/disasmF8.ts","../src/common/cpu/disasmHuC6280.ts","../src/common/cpu/disasmSM83.ts","../src/common/cpu/disasmz80.ts","../src/common/ecs/binpack.ts","../src/common/ecs/compiler.ts","../src/common/ecs/decoder.ts","../src/common/ecs/ecs.ts","../src/common/ecs/main.ts","../src/common/hdl/fuzz.ts","../src/common/hdl/hdlhost.ts","../src/common/hdl/hdlruntime.ts","../src/common/hdl/hdltypes.ts","../src/common/hdl/hdlwasm.ts","../src/common/hdl/vxmlparser.ts","../src/common/hdl/vxmltest.ts","../src/common/symbols/doccomment.ts","../src/common/symbols/dumplines.ts","../src/common/symbols/index.ts","../src/common/symbols/symbolfile.ts","../src/common/symbols/symbolvalue.ts","../src/common/wasi/libretro.ts","../src/common/wasi/wasishim.ts","../src/ide/breakpoints.ts","../src/ide/dialogs.ts","../src/ide/embedui.ts","../src/ide/errorreport.ts","../src/ide/hdlhost.ts","../src/ide/helptopics.ts","../src/ide/keys.ts","../src/ide/layout.ts","../src/ide/pixeleditor.ts","../src/ide/project.ts","../src/ide/services.ts","../src/ide/settings.ts","../src/ide/shareexport.ts","../src/ide/shortcutbar.ts","../src/ide/storage.ts","../src/ide/sync.ts","../src/ide/toolbar.ts","../src/ide/ui.ts","../src/ide/waveform.ts","../src/ide/windows.ts","../src/ide/search/debuggerhit.ts","../src/ide/search/docssource.ts","../src/ide/search/listinglocation.ts","../src/ide/search/projectsource.ts","../src/ide/search/searchview.ts","../src/ide/search/service.ts","../src/ide/search/symbolindex.ts","../src/ide/search/toolchainsource.ts","../src/ide/search/types.ts","../src/ide/views/assetdecorations.ts","../src/ide/views/asseteditor.ts","../src/ide/views/baseviews.ts","../src/ide/views/debug.ts","../src/ide/views/debugviews.ts","../src/ide/views/editors.ts","../src/ide/views/filters.ts","../src/ide/views/gutter.ts","../src/ide/views/helpview.ts","../src/ide/views/includedecorations.ts","../src/ide/views/memmaplayout.ts","../src/ide/views/tabs.ts","../src/ide/views/traceheat.ts","../src/ide/views/traceviews.ts","../src/ide/views/treeviews.ts","../src/ide/views/visuals.ts","../src/machine/apple2.ts","../src/machine/arm32.ts","../src/machine/astrocade.ts","../src/machine/atari7800.ts","../src/machine/atari8.ts","../src/machine/atari8disk.ts","../src/machine/c64.ts","../src/machine/channelf.ts","../src/machine/coleco.ts","../src/machine/cpc.ts","../src/machine/devel.ts","../src/machine/exidy.ts","../src/machine/galaxian.ts","../src/machine/gb.ts","../src/machine/kim1.ts","../src/machine/mcr.ts","../src/machine/msx.ts","../src/machine/mw8080bw.ts","../src/machine/pacman.ts","../src/machine/sms.ts","../src/machine/vcs.ts","../src/machine/vdp_z80.ts","../src/machine/vic20.ts","../src/machine/vicdual.ts","../src/machine/williams.ts","../src/machine/zx.ts","../src/machine/chips/antic.ts","../src/machine/chips/gtia.ts","../src/machine/chips/pokey.ts","../src/machine/chips/tms9918a.ts","../src/machine/chips/via6522.ts","../src/parser/asmkeywords.ts","../src/parser/lang-6502.ts","../src/parser/lang-basic.ts","../src/parser/lang-bataribasic.ts","../src/parser/lang-c.ts","../src/parser/lang-dialog.ts","../src/parser/lang-fastbasic.ts","../src/parser/lang-inform6.ts","../src/parser/lang-verilog.ts","../src/parser/lang-wiz.ts","../src/parser/lang-z80.ts","../src/parser/registry.ts","../src/parser/tokens-6502.ts","../src/parser/tokens-6809.ts","../src/parser/tokens-z80.ts","../src/platform/_index.ts","../src/platform/apple2.ts","../src/platform/arm32.ts","../src/platform/astrocade.ts","../src/platform/atari7800.ts","../src/platform/atari8.ts","../src/platform/basic.ts","../src/platform/c64.ts","../src/platform/channelf.ts","../src/platform/coleco.ts","../src/platform/cpc.ts","../src/platform/devel.ts","../src/platform/exidy.ts","../src/platform/galaxian.ts","../src/platform/gb.ts","../src/platform/kim1.ts","../src/platform/mcr.ts","../src/platform/msx.ts","../src/platform/mw8080bw.ts","../src/platform/nes.ts","../src/platform/pacman.ts","../src/platform/pce.ts","../src/platform/sms.ts","../src/platform/sound_konami.ts","../src/platform/sound_williams.ts","../src/platform/vcs.ts","../src/platform/vector.ts","../src/platform/vectrex.ts","../src/platform/verilog.ts","../src/platform/vic20.ts","../src/platform/vicdual.ts","../src/platform/williams.ts","../src/platform/x86.ts","../src/platform/zmachine.ts","../src/platform/zx.ts","../src/themes/cobalt.ts","../src/themes/disassemblyTheme.ts","../src/themes/editorTheme.ts","../src/themes/mbo.ts","../src/tools/8bws.ts","../src/tools/assetpacks.ts","../src/tools/assets.ts","../src/tools/buildpresets.ts","../src/tools/cliformat.ts","../src/tools/daplocal.ts","../src/tools/dapsession.ts","../src/tools/debugservice.ts","../src/tools/doctools.ts","../src/tools/emutarget.ts","../src/tools/exclusions.ts","../src/tools/nodemock.ts","../src/tools/presets.ts","../src/tools/presettypes.ts","../src/tools/runscript.ts","../src/tools/sim6502.ts","../src/tools/termimage.ts","../src/tools/testlib.ts","../src/tools/toolroot.ts","../src/tools/toolversions.ts","../src/tools/vcdfile.ts","../src/tools/verifyreplay.ts","../src/worker/assembler.ts","../src/worker/builder.ts","../src/worker/listingutils.ts","../src/worker/platforms.ts","../src/worker/wasiutils.ts","../src/worker/wasmutils.ts","../src/worker/workerlib.ts","../src/worker/workermain.ts","../src/worker/workertools.ts","../src/worker/server/buildenv.ts","../src/worker/server/clang.ts","../src/worker/server/server.ts","../src/worker/tools/acme.ts","../src/worker/tools/arm.ts","../src/worker/tools/bataribasic.ts","../src/worker/tools/cc2600.ts","../src/worker/tools/cc65.ts","../src/worker/tools/cc6502.ts","../src/worker/tools/cc65dbg.ts","../src/worker/tools/cc7800.ts","../src/worker/tools/dasm.ts","../src/worker/tools/dialog.ts","../src/worker/tools/ecs.ts","../src/worker/tools/m6502.ts","../src/worker/tools/m6809.ts","../src/worker/tools/mcpp.ts","../src/worker/tools/misc.ts","../src/worker/tools/oscar64.ts","../src/worker/tools/oscar64parse.ts","../src/worker/tools/remote.ts","../src/worker/tools/sdcc.ts","../src/worker/tools/verilog.ts","../src/worker/tools/x86.ts","../src/worker/tools/xa.ts","../src/worker/tools/z80.ts"],"version":"5.9.3"} \ No newline at end of file +{"root":["../src/md.d.ts","../src/common/analysis.ts","../src/common/audio.ts","../src/common/baseplatform.ts","../src/common/binutils.ts","../src/common/books.ts","../src/common/breakcond.ts","../src/common/breakpoints.ts","../src/common/callgraph.ts","../src/common/callprofile.ts","../src/common/controls.ts","../src/common/debugcontroller.ts","../src/common/debugtree.ts","../src/common/detect.ts","../src/common/devices.ts","../src/common/emu.ts","../src/common/emucore.ts","../src/common/gbpalette.ts","../src/common/history.ts","../src/common/links.ts","../src/common/mameplatform.ts","../src/common/platformcore.ts","../src/common/probe.ts","../src/common/projectcore.ts","../src/common/recorder.ts","../src/common/searchtypes.ts","../src/common/stackwalk.ts","../src/common/statehash.ts","../src/common/telemetry.ts","../src/common/teletype.ts","../src/common/timeline.ts","../src/common/tokenizer.ts","../src/common/toolmeta.ts","../src/common/toolselect.ts","../src/common/util.ts","../src/common/vcd.ts","../src/common/vectorraster.ts","../src/common/vlist.ts","../src/common/vtextscroller.ts","../src/common/wasmplatform.ts","../src/common/waveform.ts","../src/common/waveformcore.ts","../src/common/workertypes.ts","../src/common/audio/CommodoreTape.ts","../src/common/basic/compiler.ts","../src/common/basic/fuzz.ts","../src/common/basic/run.ts","../src/common/basic/runtime.ts","../src/common/cpu/6809.ts","../src/common/cpu/ARM.ts","../src/common/cpu/F8.ts","../src/common/cpu/MOS6502.ts","../src/common/cpu/SM83.ts","../src/common/cpu/ZilogZ80.ts","../src/common/cpu/disasm6502.ts","../src/common/cpu/disasmF8.ts","../src/common/cpu/disasmHuC6280.ts","../src/common/cpu/disasmSM83.ts","../src/common/cpu/disasmz80.ts","../src/common/ecs/binpack.ts","../src/common/ecs/compiler.ts","../src/common/ecs/decoder.ts","../src/common/ecs/ecs.ts","../src/common/ecs/main.ts","../src/common/hdl/fuzz.ts","../src/common/hdl/hdlhost.ts","../src/common/hdl/hdlruntime.ts","../src/common/hdl/hdltypes.ts","../src/common/hdl/hdlwasm.ts","../src/common/hdl/vxmlparser.ts","../src/common/hdl/vxmltest.ts","../src/common/symbols/doccomment.ts","../src/common/symbols/dumplines.ts","../src/common/symbols/index.ts","../src/common/symbols/symbolfile.ts","../src/common/symbols/symbolvalue.ts","../src/common/wasi/libretro.ts","../src/common/wasi/wasishim.ts","../src/ide/breakpoints.ts","../src/ide/dialogs.ts","../src/ide/embedui.ts","../src/ide/errorreport.ts","../src/ide/hdlhost.ts","../src/ide/helptopics.ts","../src/ide/keys.ts","../src/ide/layout.ts","../src/ide/pixeleditor.ts","../src/ide/project.ts","../src/ide/services.ts","../src/ide/settings.ts","../src/ide/shareexport.ts","../src/ide/shortcutbar.ts","../src/ide/storage.ts","../src/ide/sync.ts","../src/ide/toolbar.ts","../src/ide/ui.ts","../src/ide/waveform.ts","../src/ide/windows.ts","../src/ide/search/debuggerhit.ts","../src/ide/search/docssource.ts","../src/ide/search/listinglocation.ts","../src/ide/search/projectsource.ts","../src/ide/search/searchview.ts","../src/ide/search/service.ts","../src/ide/search/symbolindex.ts","../src/ide/search/toolchainsource.ts","../src/ide/search/types.ts","../src/ide/views/assetdecorations.ts","../src/ide/views/asseteditor.ts","../src/ide/views/baseviews.ts","../src/ide/views/debug.ts","../src/ide/views/debugviews.ts","../src/ide/views/editors.ts","../src/ide/views/filters.ts","../src/ide/views/gutter.ts","../src/ide/views/helpview.ts","../src/ide/views/includedecorations.ts","../src/ide/views/memmaplayout.ts","../src/ide/views/tabs.ts","../src/ide/views/traceheat.ts","../src/ide/views/traceviews.ts","../src/ide/views/treeviews.ts","../src/ide/views/visuals.ts","../src/machine/apple2.ts","../src/machine/arm32.ts","../src/machine/astrocade.ts","../src/machine/atari7800.ts","../src/machine/atari8.ts","../src/machine/atari8disk.ts","../src/machine/c64.ts","../src/machine/channelf.ts","../src/machine/coleco.ts","../src/machine/cpc.ts","../src/machine/devel.ts","../src/machine/exidy.ts","../src/machine/galaxian.ts","../src/machine/gb.ts","../src/machine/kim1.ts","../src/machine/mcr.ts","../src/machine/msx.ts","../src/machine/mw8080bw.ts","../src/machine/pacman.ts","../src/machine/sms.ts","../src/machine/vcs.ts","../src/machine/vdp_z80.ts","../src/machine/vic20.ts","../src/machine/vicdual.ts","../src/machine/williams.ts","../src/machine/zx.ts","../src/machine/chips/antic.ts","../src/machine/chips/gtia.ts","../src/machine/chips/pokey.ts","../src/machine/chips/tms9918a.ts","../src/machine/chips/via6522.ts","../src/parser/asmkeywords.ts","../src/parser/lang-6502.ts","../src/parser/lang-basic.ts","../src/parser/lang-bataribasic.ts","../src/parser/lang-c.ts","../src/parser/lang-dialog.ts","../src/parser/lang-fastbasic.ts","../src/parser/lang-inform6.ts","../src/parser/lang-verilog.ts","../src/parser/lang-wiz.ts","../src/parser/lang-z80.ts","../src/parser/registry.ts","../src/parser/tokens-6502.ts","../src/parser/tokens-6809.ts","../src/parser/tokens-z80.ts","../src/platform/_index.ts","../src/platform/apple2.ts","../src/platform/arm32.ts","../src/platform/astrocade.ts","../src/platform/atari7800.ts","../src/platform/atari8.ts","../src/platform/basic.ts","../src/platform/c64.ts","../src/platform/channelf.ts","../src/platform/coleco.ts","../src/platform/cpc.ts","../src/platform/devel.ts","../src/platform/exidy.ts","../src/platform/galaxian.ts","../src/platform/gb.ts","../src/platform/kim1.ts","../src/platform/mcr.ts","../src/platform/msx.ts","../src/platform/mw8080bw.ts","../src/platform/nes.ts","../src/platform/pacman.ts","../src/platform/pce.ts","../src/platform/sms.ts","../src/platform/sound_konami.ts","../src/platform/sound_williams.ts","../src/platform/vcs.ts","../src/platform/vector.ts","../src/platform/vectrex.ts","../src/platform/verilog.ts","../src/platform/vic20.ts","../src/platform/vicdual.ts","../src/platform/williams.ts","../src/platform/x86.ts","../src/platform/zmachine.ts","../src/platform/zx.ts","../src/themes/cobalt.ts","../src/themes/disassemblyTheme.ts","../src/themes/editorTheme.ts","../src/themes/mbo.ts","../src/tools/8bws.ts","../src/tools/assetpacks.ts","../src/tools/assets.ts","../src/tools/buildpresets.ts","../src/tools/cliformat.ts","../src/tools/compatcheck.ts","../src/tools/daplocal.ts","../src/tools/dapsession.ts","../src/tools/debugservice.ts","../src/tools/doctools.ts","../src/tools/emutarget.ts","../src/tools/exclusions.ts","../src/tools/nodemock.ts","../src/tools/presets.ts","../src/tools/presettypes.ts","../src/tools/runscript.ts","../src/tools/sim6502.ts","../src/tools/termimage.ts","../src/tools/testlib.ts","../src/tools/toolroot.ts","../src/tools/toolversions.ts","../src/tools/vcdfile.ts","../src/tools/verifyreplay.ts","../src/worker/assembler.ts","../src/worker/builder.ts","../src/worker/listingutils.ts","../src/worker/platforms.ts","../src/worker/wasiutils.ts","../src/worker/wasmutils.ts","../src/worker/workerlib.ts","../src/worker/workermain.ts","../src/worker/workertools.ts","../src/worker/server/buildenv.ts","../src/worker/server/clang.ts","../src/worker/server/server.ts","../src/worker/tools/acme.ts","../src/worker/tools/arm.ts","../src/worker/tools/bataribasic.ts","../src/worker/tools/cc2600.ts","../src/worker/tools/cc65.ts","../src/worker/tools/cc6502.ts","../src/worker/tools/cc65dbg.ts","../src/worker/tools/cc7800.ts","../src/worker/tools/dasm.ts","../src/worker/tools/dialog.ts","../src/worker/tools/ecs.ts","../src/worker/tools/m6502.ts","../src/worker/tools/m6809.ts","../src/worker/tools/mcpp.ts","../src/worker/tools/misc.ts","../src/worker/tools/oscar64.ts","../src/worker/tools/oscar64parse.ts","../src/worker/tools/remote.ts","../src/worker/tools/sdcc.ts","../src/worker/tools/verilog.ts","../src/worker/tools/x86.ts","../src/worker/tools/xa.ts","../src/worker/tools/z80.ts"],"version":"5.9.3"} \ No newline at end of file diff --git a/gen/ui.js b/gen/ui.js index 4686d66e..5d674a1e 100644 --- a/gen/ui.js +++ b/gen/ui.js @@ -1,30 +1,30 @@ -import{a as X0}from"./chunk-NTFEI2OH.js";import{a as z0}from"./chunk-SRBQMLE7.js";import"./chunk-JRMUDXWR.js";import{a as kc}from"./chunk-G3VBABUZ.js";import{a as W0,b as N0,c as IA}from"./chunk-3H6WIH6E.js";import{G as Pc,L as kf,j as L0,k as D0,q as Z0,x as I0,y as Pf}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{A as Nt,B as Mr,E as wc,G as hr,H as _0,J as vf,K as vo,M as wo,N as wf,O as E0,P as xf,Y as xo,Z as R0,a as Hr,aa as M0,b as La,d as yt,e as Da,f as Zt,g as _e,h as bf,i as k0,ia as xc,k as $0,m as yc,n as Q0,o as Sc,p as vc,q as T0,t as So,w as A0,x as yf,y as C0,z as Sf}from"./chunk-VZWSP3EG.js";import{a as Ue,b as zi,c as Ma,e as gf,g as Of}from"./chunk-N7W4C4V2.js";var Qf=gf((B0,$f)=>{(function(n){if(typeof B0=="object"&&typeof $f!="undefined")$f.exports=n();else if(typeof define=="function"&&define.amd)define([],n);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=n()}})(function(){var n,e,t;return(function r(i,s,o){function a(d,h){if(!s[d]){if(!i[d]){var u=typeof Ma=="function"&&Ma;if(!h&&u)return u(d,!0);if(l)return l(d,!0);var f=new Error("Cannot find module '"+d+"'");throw f.code="MODULE_NOT_FOUND",f}var m=s[d]={exports:{}};i[d][0].call(m.exports,function(O){var S=i[d][1][O];return a(S||O)},m,m.exports,r,i,s,o)}return s[d].exports}for(var l=typeof Ma=="function"&&Ma,c=0;c=43)}}).catch(function(){return!1})}function W(y){return typeof D=="boolean"?u.resolve(D):X(y).then(function(Q){return D=Q,D})}function ne(y){var Q=M[y.name],v={};v.promise=new u(function(C,E){v.resolve=C,v.reject=E}),Q.deferredOperations.push(v),Q.dbReady?Q.dbReady=Q.dbReady.then(function(){return v.promise}):Q.dbReady=v.promise}function de(y){var Q=M[y.name],v=Q.deferredOperations.pop();if(v)return v.resolve(),v.promise}function q(y,Q){var v=M[y.name],C=v.deferredOperations.pop();if(C)return C.reject(Q),C.promise}function pe(y,Q){return new u(function(v,C){if(M[y.name]=M[y.name]||Ot(),y.db)if(Q)ne(y),y.db.close();else return v(y.db);var E=[y.name];Q&&E.push(y.version);var A=c.open.apply(c,E);Q&&(A.onupgradeneeded=function(I){var j=A.result;try{j.createObjectStore(y.storeName),I.oldVersion<=1&&j.createObjectStore(x)}catch(U){if(U.name==="ConstraintError")console.warn('The database "'+y.name+'" has been upgraded from version '+I.oldVersion+" to version "+I.newVersion+', but the storage "'+y.storeName+'" already exists.');else throw U}}),A.onerror=function(I){I.preventDefault(),C(A.error)},A.onsuccess=function(){var I=A.result;I.onversionchange=function(j){j.target.close()},v(I),de(y)}})}function ve(y){return pe(y,!1)}function we(y){return pe(y,!0)}function B(y,Q){if(!y.db)return!0;var v=!y.db.objectStoreNames.contains(y.storeName),C=y.versiony.db.version;if(C&&(y.version!==Q&&console.warn('The database "'+y.name+`" can't be downgraded from version `+y.db.version+" to version "+y.version+"."),y.version=y.db.version),E||v){if(v){var A=y.db.version+1;A>y.version&&(y.version=A)}return!0}return!1}function ue(y){return new u(function(Q,v){var C=new FileReader;C.onerror=v,C.onloadend=function(E){var A=btoa(E.target.result||"");Q({__local_forage_encoded_blob:!0,data:A,type:y.type})},C.readAsBinaryString(y)})}function G(y){var Q=R(atob(y.data));return h([Q],{type:y.type})}function Pe(y){return y&&y.__local_forage_encoded_blob}function Qe(y){var Q=this,v=Q._initReady().then(function(){var C=M[Q._dbInfo.name];if(C&&C.dbReady)return C.dbReady});return m(v,y,y),v}function Ge(y){ne(y);for(var Q=M[y.name],v=Q.forages,C=0;C0&&(!y.db||A.name==="InvalidStateError"||A.name==="NotFoundError"))return u.resolve().then(function(){if(!y.db||A.name==="NotFoundError"&&!y.db.objectStoreNames.contains(y.storeName)&&y.version<=y.db.version)return y.db&&(y.version=y.db.version+1),we(y)}).then(function(){return Ge(y).then(function(){He(y,Q,v,C-1)})}).catch(v);v(A)}}function Ot(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function me(y){var Q=this,v={db:null};if(y)for(var C in y)v[C]=y[C];var E=M[v.name];E||(E=Ot(),M[v.name]=E),E.forages.push(Q),Q._initReady||(Q._initReady=Q.ready,Q.ready=Qe);var A=[];function I(){return u.resolve()}for(var j=0;j>4,J[E++]=(I&15)<<4|j>>2,J[E++]=(j&3)<<6|U&63;return H}function xt(y){var Q=new Uint8Array(y),v="",C;for(C=0;C>2],v+=be[(Q[C]&3)<<4|Q[C+1]>>4],v+=be[(Q[C+1]&15)<<2|Q[C+2]>>6],v+=be[Q[C+2]&63];return Q.length%3===2?v=v.substring(0,v.length-1)+"=":Q.length%3===1&&(v=v.substring(0,v.length-2)+"=="),v}function cr(y,Q){var v="";if(y&&(v=Le.call(y)),y&&(v==="[object ArrayBuffer]"||y.buffer&&Le.call(y.buffer)==="[object ArrayBuffer]")){var C,E=Lt;y instanceof ArrayBuffer?(C=y,E+=ft):(C=y.buffer,v==="[object Int8Array]"?E+=lr:v==="[object Uint8Array]"?E+=rn:v==="[object Uint8ClampedArray]"?E+=Ar:v==="[object Int16Array]"?E+=vt:v==="[object Uint16Array]"?E+=ie:v==="[object Int32Array]"?E+=Qt:v==="[object Uint32Array]"?E+=Y:v==="[object Float32Array]"?E+=te:v==="[object Float64Array]"?E+=ge:Q(new Error("Failed to get type for BinaryArray"))),Q(E+xt(C))}else if(v==="[object Blob]"){var A=new FileReader;A.onload=function(){var I=ar+y.type+"~"+xt(this.result);Q(Lt+Tr+I)},A.readAsArrayBuffer(y)}else try{Q(JSON.stringify(y))}catch(I){console.error("Couldn't convert value into a JSON string: ",y),Q(null,I)}}function dr(y){if(y.substring(0,Qr)!==Lt)return JSON.parse(y);var Q=y.substring(Ke),v=y.substring(Qr,Ke),C;if(v===Tr&&st.test(Q)){var E=Q.match(st);C=E[1],Q=Q.substring(E[0].length)}var A=ot(Q);switch(v){case ft:return A;case Tr:return h([A],{type:C});case lr:return new Int8Array(A);case rn:return new Uint8Array(A);case Ar:return new Uint8ClampedArray(A);case vt:return new Int16Array(A);case ie:return new Uint16Array(A);case Qt:return new Int32Array(A);case Y:return new Uint32Array(A);case te:return new Float32Array(A);case ge:return new Float64Array(A);default:throw new Error("Unkown type: "+v)}}var hi={serialize:cr,deserialize:dr,stringToBuffer:ot,bufferToString:xt};function Gr(y,Q,v,C){y.executeSql("CREATE TABLE IF NOT EXISTS "+Q.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],v,C)}function ui(y){var Q=this,v={db:null};if(y)for(var C in y)v[C]=typeof y[C]!="string"?y[C].toString():y[C];var E=new u(function(A,I){try{v.db=openDatabase(v.name,String(v.version),v.description,v.size)}catch(j){return I(j)}v.db.transaction(function(j){Gr(j,v,function(){Q._dbInfo=v,A()},function(U,H){I(H)})},I)});return v.serializer=hi,E}function wt(y,Q,v,C,E,A){y.executeSql(v,C,E,function(I,j){j.code===j.SYNTAX_ERR?I.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[Q.storeName],function(U,H){H.rows.length?A(U,j):Gr(U,Q,function(){U.executeSql(v,C,E,A)},A)},A):A(I,j)},A)}function pn(y,Q){var v=this;y=O(y);var C=new u(function(E,A){v.ready().then(function(){var I=v._dbInfo;I.db.transaction(function(j){wt(j,I,"SELECT * FROM "+I.storeName+" WHERE key = ? LIMIT 1",[y],function(U,H){var J=H.rows.length?H.rows.item(0).value:null;J&&(J=I.serializer.deserialize(J)),E(J)},function(U,H){A(H)})})}).catch(A)});return f(C,Q),C}function Ss(y,Q){var v=this,C=new u(function(E,A){v.ready().then(function(){var I=v._dbInfo;I.db.transaction(function(j){wt(j,I,"SELECT * FROM "+I.storeName,[],function(U,H){for(var J=H.rows,ce=J.length,Ce=0;Ce0){I(Ii.apply(E,[y,U,v,C-1]));return}j(Ce)}})})}).catch(j)});return f(A,v),A}function vs(y,Q,v){return Ii.apply(this,[y,Q,v,1])}function ws(y,Q){var v=this;y=O(y);var C=new u(function(E,A){v.ready().then(function(){var I=v._dbInfo;I.db.transaction(function(j){wt(j,I,"DELETE FROM "+I.storeName+" WHERE key = ?",[y],function(){E()},function(U,H){A(H)})})}).catch(A)});return f(C,Q),C}function xs(y){var Q=this,v=new u(function(C,E){Q.ready().then(function(){var A=Q._dbInfo;A.db.transaction(function(I){wt(I,A,"DELETE FROM "+A.storeName,[],function(){C()},function(j,U){E(U)})})}).catch(E)});return f(v,y),v}function Cr(y){var Q=this,v=new u(function(C,E){Q.ready().then(function(){var A=Q._dbInfo;A.db.transaction(function(I){wt(I,A,"SELECT COUNT(key) as c FROM "+A.storeName,[],function(j,U){var H=U.rows.item(0).c;C(H)},function(j,U){E(U)})})}).catch(E)});return f(v,y),v}function _r(y,Q){var v=this,C=new u(function(E,A){v.ready().then(function(){var I=v._dbInfo;I.db.transaction(function(j){wt(j,I,"SELECT key FROM "+I.storeName+" WHERE id = ? LIMIT 1",[y+1],function(U,H){var J=H.rows.length?H.rows.item(0).key:null;E(J)},function(U,H){A(H)})})}).catch(A)});return f(C,Q),C}function bt(y){var Q=this,v=new u(function(C,E){Q.ready().then(function(){var A=Q._dbInfo;A.db.transaction(function(I){wt(I,A,"SELECT key FROM "+A.storeName,[],function(j,U){for(var H=[],J=0;J '__WebKitDatabaseInfoTable__'",[],function(E,A){for(var I=[],j=0;j0}function gi(y){var Q=this,v={};if(y)for(var C in y)v[C]=y[C];return v.keyPrefix=Xi(y,Q._defaultConfig),Ps()?(Q._dbInfo=v,v.serializer=hi,u.resolve()):u.reject()}function $a(y){var Q=this,v=Q.ready().then(function(){for(var C=Q._dbInfo.keyPrefix,E=localStorage.length-1;E>=0;E--){var A=localStorage.key(E);A.indexOf(C)===0&&localStorage.removeItem(A)}});return f(v,y),v}function Zn(y,Q){var v=this;y=O(y);var C=v.ready().then(function(){var E=v._dbInfo,A=localStorage.getItem(E.keyPrefix+y);return A&&(A=E.serializer.deserialize(A)),A});return f(C,Q),C}function Qa(y,Q){var v=this,C=v.ready().then(function(){for(var E=v._dbInfo,A=E.keyPrefix,I=A.length,j=localStorage.length,U=1,H=0;H=0;I--){var j=localStorage.key(I);j.indexOf(A)===0&&localStorage.removeItem(j)}}):E=u.reject("Invalid arguments"),f(E,Q),E}var $s={_driver:"localStorageWrapper",_initStorage:gi,_support:ka(),iterate:Qa,getItem:Zn,setItem:ks,removeItem:Aa,clear:$a,length:gn,key:Ta,keys:Te,dropInstance:Oi},Qs=function(Q,v){return Q===v||typeof Q=="number"&&typeof v=="number"&&isNaN(Q)&&isNaN(v)},Ca=function(Q,v){for(var C=Q.length,E=0;E{(function(n,e){typeof Vf=="object"&&typeof Ff!="undefined"?Ff.exports=e():typeof define=="function"&&define.amd?define(e):(n=typeof globalThis!="undefined"?globalThis:n||self,n.Split=e())})(Vf,(function(){"use strict";var n=typeof window!="undefined"?window:null,e=n===null,t=e?void 0:n.document,r="addEventListener",i="removeEventListener",s="getBoundingClientRect",o="_a",a="_b",l="_c",c="horizontal",d=function(){return!1},h=e?"calc":["","-webkit-","-moz-","-o-"].filter(function(Z){var k=t.createElement("div");return k.style.cssText="width:"+Z+"calc(9px)",!!k.style.length}).shift()+"calc",u=function(Z){return typeof Z=="string"||Z instanceof String},f=function(Z){if(u(Z)){var k=t.querySelector(Z);if(!k)throw new Error("Selector "+Z+" did not match a DOM element");return k}return Z},m=function(Z,k,w){var R=Z[k];return R!==void 0?R:w},O=function(Z,k,w,R){if(k){if(R==="end")return 0;if(R==="center")return Z/2}else if(w){if(R==="start")return 0;if(R==="center")return Z/2}return Z},S=function(Z,k){var w=t.createElement("div");return w.className="gutter gutter-"+k,w},x=function(Z,k,w){var R={};return u(k)?R[Z]=k:R[Z]=h+"("+k+"% - "+w+"px)",R},D=function(Z,k){var w;return w={},w[Z]=k+"px",w},M=function(Z,k){if(k===void 0&&(k={}),e)return{};var w=Z,R,X,W,ne,de,q;Array.from&&(w=Array.from(w));var pe=f(w[0]),ve=pe.parentNode,we=getComputedStyle?getComputedStyle(ve):null,B=we?we.flexDirection:null,ue=m(k,"sizes")||w.map(function(){return 100/w.length}),G=m(k,"minSize",100),Pe=Array.isArray(G)?G:w.map(function(){return G}),Qe=m(k,"maxSize",1/0),Ge=Array.isArray(Qe)?Qe:w.map(function(){return Qe}),He=m(k,"expandToMin",!1),Ot=m(k,"gutterSize",10),me=m(k,"gutterAlign","center"),nn=m(k,"snapOffset",30),ir=Array.isArray(nn)?nn:w.map(function(){return nn}),sr=m(k,"dragInterval",1),or=m(k,"direction",c),di=m(k,"cursor",or===c?"col-resize":"row-resize"),bs=m(k,"gutter",S),qr=m(k,"elementStyle",x),ys=m(k,"gutterStyle",D);or===c?(R="width",X="clientX",W="left",ne="right",de="clientWidth"):or==="vertical"&&(R="height",X="clientY",W="top",ne="bottom",de="clientHeight");function Dn(ie,Y,te,ge){var Ke=qr(R,Y,te,ge);Object.keys(Ke).forEach(function(Le){ie.style[Le]=Ke[Le]})}function ke(ie,Y,te){var ge=ys(R,Y,te);Object.keys(ge).forEach(function(Ke){ie.style[Ke]=ge[Ke]})}function kn(){return q.map(function(ie){return ie.size})}function be(ie){return"touches"in ie?ie.touches[0][X]:ie[X]}function ar(ie){var Y=q[this.a],te=q[this.b],ge=Y.size+te.size;Y.size=ie/this.size*ge,te.size=ge-ie/this.size*ge,Dn(Y.element,Y.size,this[a],Y.i),Dn(te.element,te.size,this[l],te.i)}function st(ie){var Y,te=q[this.a],ge=q[this.b];this.dragging&&(Y=be(ie)-this.start+(this[a]-this.dragOffset),sr>1&&(Y=Math.round(Y/sr)*sr),Y<=te.minSize+te.snapOffset+this[a]?Y=te.minSize+this[a]:Y>=this.size-(ge.minSize+ge.snapOffset+this[l])&&(Y=this.size-(ge.minSize+this[l])),Y>=te.maxSize-te.snapOffset+this[a]?Y=te.maxSize+this[a]:Y<=this.size-(ge.maxSize-ge.snapOffset+this[l])&&(Y=this.size-(ge.maxSize+this[l])),ar.call(this,Y),m(k,"onDrag",d)(kn()))}function Lt(){var ie=q[this.a].element,Y=q[this.b].element,te=ie[s](),ge=Y[s]();this.size=te[R]+ge[R]+this[a]+this[l],this.start=te[W],this.end=te[ne]}function Qr(ie){if(!getComputedStyle)return null;var Y=getComputedStyle(ie);if(!Y)return null;var te=ie[de];return te===0?null:(or===c?te-=parseFloat(Y.paddingLeft)+parseFloat(Y.paddingRight):te-=parseFloat(Y.paddingTop)+parseFloat(Y.paddingBottom),te)}function ft(ie){var Y=Qr(ve);if(Y===null||Pe.reduce(function(Le,ot){return Le+ot},0)>Y)return ie;var te=0,ge=[],Ke=ie.map(function(Le,ot){var xt=Y*Le/100,cr=O(Ot,ot===0,ot===ie.length-1,me),dr=Pe[ot]+cr;return xt0&&ge[ot]-te>0){var cr=Math.min(te,ge[ot]-te);te-=cr,xt=Le-cr}return xt/Y*100})}function Tr(){var ie=this,Y=q[ie.a].element,te=q[ie.b].element;ie.dragging&&m(k,"onDragEnd",d)(kn()),ie.dragging=!1,n[i]("mouseup",ie.stop),n[i]("touchend",ie.stop),n[i]("touchcancel",ie.stop),n[i]("mousemove",ie.move),n[i]("touchmove",ie.move),ie.stop=null,ie.move=null,Y[i]("selectstart",d),Y[i]("dragstart",d),te[i]("selectstart",d),te[i]("dragstart",d),Y.style.userSelect="",Y.style.webkitUserSelect="",Y.style.MozUserSelect="",Y.style.pointerEvents="",te.style.userSelect="",te.style.webkitUserSelect="",te.style.MozUserSelect="",te.style.pointerEvents="",ie.gutter.style.cursor="",ie.parent.style.cursor="",t.body.style.cursor=""}function lr(ie){if(!("button"in ie&&ie.button!==0)){var Y=this,te=q[Y.a].element,ge=q[Y.b].element;Y.dragging||m(k,"onDragStart",d)(kn()),ie.preventDefault(),Y.dragging=!0,Y.move=st.bind(Y),Y.stop=Tr.bind(Y),n[r]("mouseup",Y.stop),n[r]("touchend",Y.stop),n[r]("touchcancel",Y.stop),n[r]("mousemove",Y.move),n[r]("touchmove",Y.move),te[r]("selectstart",d),te[r]("dragstart",d),ge[r]("selectstart",d),ge[r]("dragstart",d),te.style.userSelect="none",te.style.webkitUserSelect="none",te.style.MozUserSelect="none",te.style.pointerEvents="none",ge.style.userSelect="none",ge.style.webkitUserSelect="none",ge.style.MozUserSelect="none",ge.style.pointerEvents="none",Y.gutter.style.cursor=di,Y.parent.style.cursor=di,t.body.style.cursor=di,Lt.call(Y),Y.dragOffset=be(ie)-Y.end}}ue=ft(ue);var rn=[];q=w.map(function(ie,Y){var te={element:f(ie),size:ue[Y],minSize:Pe[Y],maxSize:Ge[Y],snapOffset:ir[Y],i:Y},ge;if(Y>0&&(ge={a:Y-1,b:Y,dragging:!1,direction:or,parent:ve},ge[a]=O(Ot,Y-1===0,!1,me),ge[l]=O(Ot,!1,Y===w.length-1,me),B==="row-reverse"||B==="column-reverse")){var Ke=ge.a;ge.a=ge.b,ge.b=Ke}if(Y>0){var Le=bs(Y,or,te.element);ke(Le,Ot,Y),ge[o]=lr.bind(ge),Le[r]("mousedown",ge[o]),Le[r]("touchstart",ge[o]),ve.insertBefore(Le,te.element),ge.gutter=Le}return Dn(te.element,te.size,O(Ot,Y===0,Y===w.length-1,me),Y),Y>0&&rn.push(ge),te});function Ar(ie){var Y=ie.i===rn.length,te=Y?rn[ie.i-1]:rn[ie.i];Lt.call(te);var ge=Y?te.size-ie.minSize-te[l]:ie.minSize+te[a];ar.call(te,ge)}q.forEach(function(ie){var Y=ie.element[s]()[R];Y0){var Ke=rn[ge-1],Le=q[Ke.a],ot=q[Ke.b];Le.size=Y[ge-1],ot.size=te,Dn(Le.element,Le.size,Ke[a],Le.i),Dn(ot.element,ot.size,Ke[l],ot.i)}})}function Qt(ie,Y){rn.forEach(function(te){if(Y!==!0?te.parent.removeChild(te.gutter):(te.gutter[i]("mousedown",te[o]),te.gutter[i]("touchstart",te[o])),ie!==!0){var ge=qr(R,te.a.size,te[a]);Object.keys(ge).forEach(function(Ke){q[te.a].element.style[Ke]="",q[te.b].element.style[Ke]=""})}})}return{setSizes:vt,getSizes:kn,collapse:function(Y){Ar(q[Y])},destroy:Qt,parent:ve,pairs:rn}};return M}))});var o0=gf((NY,FT)=>{"use strict";function dz(n,e){this.v=n,this.k=e}function $T(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,r=Array(e);t2?r-2:0),s=2;s1?t-1:0),i=1;i1?t-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:ac;if(QT&&QT(n,null),!Sa(e))return n;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let s=t(i);s!==i&&(gz(e)||(e[r]=s),i=s)}n[i]=!0}return n}function kz(n){for(let e=0;e/g),Ez=jt(/\${[\w\W]*/g),Rz=jt(/^data-[\-\w.\u00B7-\uFFFF]+$/),Mz=jt(/^aria-[\-\w]+$/),ZT=jt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Lz=jt(/^(?:\w+script|data):/i),Dz=jt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Zz=jt(/^html$/i),Iz=jt(/^[a-z][.\w]*(-[.\w]+)+$/i),IT=jt(/<[/\w!]/g),XT=jt(/<[/\w]/g),Xz=jt(/<\/no(script|embed|frames)/i),zz=jt(/\/>/i),er={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},BT=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],Wz=Wt(Fe({},BT)),Nz=(function(){let n={};return fo(BT,e=>{n[e]=jt(new RegExp("])","i"))}),Wt(n)})(),Bz=function(){return typeof window=="undefined"?null:window},Vz=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(r=t.getAttribute(i));let s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch(o){return console.warn("TrustedTypes policy "+s+" could not be created."),null}},zT=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},ms=function(e,t,r,i){return Ln(e,t)&&Sa(e[t])?Fe(i.base?tr(i.base):{},e[t],i.transform):r},r0=function(e,t,r){let i=Ln(e,t)?e[t]:void 0;return i&&typeof i=="object"?tr(i):r()};function VT(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Bz(),e=_=>VT(_);if(e.version="3.4.16",e.removed=[],!n||!n.document||n.document.nodeType!==er.document||!n.Element)return e.isSupported=!1,e;let t=n.document,r=t,i=r.currentScript;n.DocumentFragment;let s=n.HTMLTemplateElement,o=n.Node,a=n.Element,l=n.NodeFilter;n.NamedNodeMap===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;let c=n.DOMParser,d=n.trustedTypes,h=a.prototype,u=kr(h,"cloneNode"),f=kr(h,"remove"),m=kr(h,"removeAttributeNode"),O=kr(h,"nextSibling"),S=kr(h,"childNodes"),x=kr(h,"parentNode"),D=kr(h,"shadowRoot"),M=kr(h,"attributes"),Z=o&&o.prototype?kr(o.prototype,"nodeType"):null,k=o&&o.prototype?kr(o.prototype,"nodeName"):null,w=o&&o.prototype?kr(o.prototype,"ownerDocument"):null,R=function(p){return Z?Z(p):p.nodeType},X=function(p){return k?k(p):p.nodeName};if(typeof s=="function"){let _=t.createElement("template");_.content&&_.content.ownerDocument&&(t=_.content.ownerDocument)}let W,ne="",de,q=!1,pe=0,ve=function(){if(pe>0)throw ps('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},we=function(p){ve(),pe++;try{return W.createHTML(p)}finally{pe--}},B=function(p){ve(),pe++;try{return W.createScriptURL(p)}finally{pe--}},ue=function(){return q||(de=Vz(d,i),q=!0),de},G=t,Pe=G.implementation,Qe=G.createNodeIterator,Ge=G.createDocumentFragment,He=G.getElementsByTagName,Ot=r.importNode,me=zT();e.isSupported=typeof WT=="function"&&typeof x=="function"&&Pe&&Pe.createHTMLDocument!==void 0;let nn=Cz,ir=_z,sr=Ez,or=Rz,di=Mz,bs=Lz,qr=Dz,ys=Iz,Dn=ZT,ke=null,kn=Fe({},[...RT,...Jb,...e0,...t0,...MT]),be=null,ar=Fe({},[...LT,...n0,...DT,...Fu]),st=Object.seal(ya(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Lt=null,Qr=null,ft=Object.seal(ya(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Tr=!0,lr=!0,rn=!1,Ar=!0,vt=!1,Qt=!0,ie=!1,Y=!1,te=null,ge=null,Ke=!1,Le=!1,ot=!1,xt=!1,cr=!0,dr=!1,hi="user-content-",Gr=!0,ui=!1,wt={},pn=null,Ss=Fe({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Ii=null,vs=Fe({},["audio","video","img","source","image","track"]),ws=null,xs=Fe({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Cr="http://www.w3.org/1998/Math/MathML",_r="http://www.w3.org/2000/svg",bt="http://www.w3.org/1999/xhtml",mn=bt,fi=!1,pi=null,ka=Fe({},[Cr,_r,bt],Kb),Xi=Wt(["mi","mo","mn","ms","mtext"]),mi=Fe({},Xi),Ps=Wt(["annotation-xml"]),gi=Fe({},Ps),$a=Fe({},["title","style","font","a","script"]),Zn=null,Qa=["application/xhtml+xml","text/html"],Ta="text/html",Te=null,gn=null,Aa=t.createElement("form"),ks=function(p){return p instanceof RegExp||p instanceof Function},Oi=function(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(gn&&gn===p)return;(!p||typeof p!="object")&&(p={}),p=tr(p),Zn=Qa.indexOf(p.PARSER_MEDIA_TYPE)===-1?Ta:p.PARSER_MEDIA_TYPE,Te=Zn==="application/xhtml+xml"?Kb:ac,ke=ms(p,"ALLOWED_TAGS",kn,{transform:Te}),be=ms(p,"ALLOWED_ATTR",ar,{transform:Te}),pi=ms(p,"ALLOWED_NAMESPACES",ka,{transform:Kb}),ws=ms(p,"ADD_URI_SAFE_ATTR",xs,{transform:Te,base:xs}),Ii=ms(p,"ADD_DATA_URI_TAGS",vs,{transform:Te,base:vs}),pn=ms(p,"FORBID_CONTENTS",Ss,{transform:Te}),Lt=ms(p,"FORBID_TAGS",tr({}),{transform:Te}),Qr=ms(p,"FORBID_ATTR",tr({}),{transform:Te}),wt=Ln(p,"USE_PROFILES")?p.USE_PROFILES&&typeof p.USE_PROFILES=="object"?tr(p.USE_PROFILES):p.USE_PROFILES:!1,Tr=p.ALLOW_ARIA_ATTR!==!1,lr=p.ALLOW_DATA_ATTR!==!1,rn=p.ALLOW_UNKNOWN_PROTOCOLS||!1,Ar=p.ALLOW_SELF_CLOSE_IN_ATTR!==!1,vt=p.SAFE_FOR_TEMPLATES||!1,Qt=p.SAFE_FOR_XML!==!1,ie=p.WHOLE_DOCUMENT||!1,Le=p.RETURN_DOM||!1,ot=p.RETURN_DOM_FRAGMENT||!1,xt=p.RETURN_TRUSTED_TYPE||!1,Ke=p.FORCE_BODY||!1,cr=p.SANITIZE_DOM!==!1,dr=p.SANITIZE_NAMED_PROPS||!1,Gr=p.KEEP_CONTENT!==!1,ui=p.IN_PLACE||!1,Dn=Qz(p.ALLOWED_URI_REGEXP)?p.ALLOWED_URI_REGEXP:ZT,mn=typeof p.NAMESPACE=="string"?p.NAMESPACE:bt,mi=r0(p,"MATHML_TEXT_INTEGRATION_POINTS",()=>Fe({},Xi)),gi=r0(p,"HTML_INTEGRATION_POINTS",()=>Fe({},Ps));let b=r0(p,"CUSTOM_ELEMENT_HANDLING",()=>ya(null));if(st=ya(null),Ln(b,"tagNameCheck")&&ks(b.tagNameCheck)&&(st.tagNameCheck=b.tagNameCheck),Ln(b,"attributeNameCheck")&&ks(b.attributeNameCheck)&&(st.attributeNameCheck=b.attributeNameCheck),Ln(b,"allowCustomizedBuiltInElements")&&typeof b.allowCustomizedBuiltInElements=="boolean"&&(st.allowCustomizedBuiltInElements=b.allowCustomizedBuiltInElements),jt(st),vt&&(lr=!1),ot&&(Le=!0),wt&&(ke=Fe({},MT),be=ya(null),wt.html===!0&&(Fe(ke,RT),Fe(be,LT)),wt.svg===!0&&(Fe(ke,Jb),Fe(be,n0),Fe(be,Fu)),wt.svgFilters===!0&&(Fe(ke,e0),Fe(be,n0),Fe(be,Fu)),wt.mathMl===!0&&(Fe(ke,t0),Fe(be,DT),Fe(be,Fu))),ft.tagCheck=null,ft.attributeCheck=null,Ln(p,"ADD_TAGS")&&(typeof p.ADD_TAGS=="function"?ft.tagCheck=p.ADD_TAGS:Sa(p.ADD_TAGS)&&(ke===kn&&(ke=tr(ke)),Fe(ke,p.ADD_TAGS,Te))),Ln(p,"ADD_ATTR")&&(typeof p.ADD_ATTR=="function"?ft.attributeCheck=p.ADD_ATTR:Sa(p.ADD_ATTR)&&(be===ar&&(be=tr(be)),Fe(be,p.ADD_ATTR,Te))),Ln(p,"ADD_FORBID_CONTENTS")&&Sa(p.ADD_FORBID_CONTENTS)&&(pn===Ss&&(pn=tr(pn)),Fe(pn,p.ADD_FORBID_CONTENTS,Te)),Gr&&(ke["#text"]=!0),ie&&Fe(ke,["html","head","body"]),ke.table&&(Fe(ke,["tbody"]),delete Lt.tbody),p.TRUSTED_TYPES_POLICY){if(typeof p.TRUSTED_TYPES_POLICY.createHTML!="function")throw ps('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof p.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw ps('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let T=W;W=p.TRUSTED_TYPES_POLICY;try{ne=we("")}catch(L){throw W=T,L}}else p.TRUSTED_TYPES_POLICY===null?(W=void 0,ne=""):(W===void 0&&(W=ue()),W&&typeof ne=="string"&&(ne=we("")));Wt&&Wt(p),gn=p},$s=Fe({},[...Jb,...e0,...Tz]),Qs=Fe({},[...t0,...Az]),Ca=function(p,b,T){return b.namespaceURI===bt?p==="svg":b.namespaceURI===Cr?p==="svg"&&(T==="annotation-xml"||mi[T]):!!$s[p]},bo=function(p,b,T){return b.namespaceURI===bt?p==="math":b.namespaceURI===_r?p==="math"&&gi[T]:!!Qs[p]},bi=function(p,b,T){return b.namespaceURI===_r&&!gi[T]||b.namespaceURI===Cr&&!mi[T]?!1:!Qs[p]&&($a[p]||!$s[p])},yo=function(p){let b=x(p);(!b||!b.tagName)&&(b={namespaceURI:mn,tagName:"template"});let T=ac(p.tagName),L=ac(b.tagName);return pi[p.namespaceURI]?p.namespaceURI===_r?Ca(T,b,L):p.namespaceURI===Cr?bo(T,b,L):p.namespaceURI===bt?bi(T,b,L):!!(Zn==="application/xhtml+xml"&&pi[p.namespaceURI]):!1},pt=function(p){ic(e.removed,{element:p});try{x(p).removeChild(p)}catch(b){if(f(p),!x(p))throw ps("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Ts=function(p,b,T){try{m(p,b)}catch(L){try{p.removeAttribute(T)}catch(V){}}},$n=function(p){Er(p);let b=S(p);if(b){let L=[];fo(b,V=>{ic(L,V)}),fo(L,V=>{try{f(V)}catch(le){}})}let T=M(p);if(T)for(let L=T.length-1;L>=0;--L){let V=T[L],le=V&&V.name;typeof le=="string"&&Ts(p,V,le)}},Dt=function(p,b,T){if(!T)try{T=b.getAttributeNode(p)}catch(L){T=null}ic(e.removed,{attribute:T||null,from:b});try{T?m(b,T):b.removeAttribute(p)}catch(L){try{b.removeAttribute(p)}catch(V){}}if(p==="is")if(Le||ot)try{pt(b)}catch(L){}else try{b.setAttribute(p,"")}catch(L){}},_a=function(p){let b=M(p);if(b)for(let T=b.length-1;T>=0;--T){let L=b[T],V=L&&L.name;typeof V!="string"||be[Te(V)]||Ts(p,L,V)}},Er=function(p){let b=[p];for(;b.length>0;){let T=b.pop();R(T)===er.element&&_a(T);let L=S(T);if(L)for(let V=L.length-1;V>=0;--V)b.push(L[V])}},yi=function(p,b){return Qt?p==="patchsrc"?!0:p==="for"&&b!=="label"&&b!=="output":!1},Ea=function(p){if(!Qt)return;let b=[p];for(;b.length>0;){let T=b.pop(),L=R(T);if(L===er.processingInstruction||L===er.comment&&fn(XT,T.data)){try{f(T)}catch(le){}continue}if(L===er.element){let le=T,fe=Te(X(T));try{le.hasAttribute&&le.hasAttribute("patchsrc")&&le.removeAttribute("patchsrc"),le.hasAttribute&&le.hasAttribute("for")&&yi("for",fe)&&le.removeAttribute("for")}catch(Ae){}}let V=S(T);if(V)for(let le=V.length-1;le>=0;--le)b.push(V[le])}},As=function(p){let b=null,T=null;if(Ke)p=""+p;else{let le=AT(p,/^[\r\n\t ]+/);T=le&&le[0]}Zn==="application/xhtml+xml"&&mn===bt&&(p=''+p+"");let L=W?we(p):p;if(mn===bt)try{b=new c().parseFromString(L,Zn)}catch(le){}if(!b||!b.documentElement){b=Pe.createDocument(mn,"template",null);try{b.documentElement.innerHTML=fi?ne:L}catch(le){}}let V=b.body||b.documentElement;return p&&T&&V.insertBefore(t.createTextNode(T),V.childNodes[0]||null),mn===bt?He.call(b,ie?"html":"body")[0]:ie?b.documentElement:V},y=function(p){let b=w?w(p):p.ownerDocument;return Qe.call(b||p,p,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Q=function(p){return p=sc(p,nn," "),p=sc(p,ir," "),p=sc(p,sr," "),p},v=function(p){var b;p.normalize();let T=w?w(p):p.ownerDocument,L=Qe.call(T||p,p,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),V=L.nextNode();for(;V;)V.data=Q(V.data),V=L.nextNode();let le=(b=p.querySelectorAll)===null||b===void 0?void 0:b.call(p,"template");le&&fo(le,fe=>{E(fe.content)&&v(fe.content)})},C=function(p){let b=k?k(p):null;return typeof b!="string"||Te(b)!=="form"?!1:typeof p.nodeName!="string"||typeof p.textContent!="string"||typeof p.removeChild!="function"||p.attributes!==M(p)||typeof p.removeAttribute!="function"||typeof p.removeAttributeNode!="function"||typeof p.getAttributeNode!="function"||typeof p.setAttribute!="function"||typeof p.namespaceURI!="string"||typeof p.insertBefore!="function"||typeof p.hasChildNodes!="function"||p.nodeType!==Z(p)||p.childNodes!==S(p)},E=function(p){if(!Z||typeof p!="object"||p===null)return!1;try{return Z(p)===er.documentFragment}catch(b){return!1}},A=function(p){if(!Z||typeof p!="object"||p===null)return!1;try{return typeof Z(p)=="number"}catch(b){return!1}};function I(_,p,b){_.length!==0&&fo(_,T=>{T.call(e,p,b,gn)})}let j=function(p,b){return!!(Qt&&p.hasChildNodes()&&!A(p.firstElementChild)&&fn(IT,p.textContent)&&fn(IT,p.innerHTML)||Qt&&p.namespaceURI===bt&&Wz[b]&&(A(p.firstElementChild)||typeof p.textContent=="string"&&fn(Nz[b],p.textContent))||p.nodeType===er.processingInstruction||Qt&&p.nodeType===er.comment&&fn(XT,p.data))},U=function(p,b){if(p instanceof RegExp)return fn(p,b);if(p instanceof Function){for(var T=arguments.length,L=new Array(T>2?T-2:0),V=2;V=0;--fe){let Ae=p===T?u(V[fe],!0):V[fe];L.insertBefore(Ae,O(p))}}}return pt(p),!0},J=function(p,b,T,L){return p.length===0?b:b===T||b===L?tr(b):b},ce=function(p,b){return p===b||x(p)!==null?!1:(ui&&Er(p),!0)},Ce=function(p,b){if(I(me.beforeSanitizeElements,p,null),ce(p,b))return!0;if(C(p))return pt(p),!0;let T=Te(X(p));if(ke=J(me.uponSanitizeElement,ke,kn,te),I(me.uponSanitizeElement,p,{tagName:T,allowedTags:ke}),ce(p,b))return!0;if(j(p,T))return pt(p),!0;if(Lt[T]||!(ft.tagCheck instanceof Function&&ft.tagCheck(T))&&!ke[T]){let L=H(p,T,b);return L===!1&&(I(me.afterSanitizeElements,p,null),ce(p,b))?!0:L}if(R(p)===er.element&&!yo(p)||(T==="noscript"||T==="noembed"||T==="noframes")&&fn(Xz,p.innerHTML))return pt(p),!0;if(vt&&p.nodeType===er.text){let L=Q(p.textContent);p.textContent!==L&&(ic(e.removed,{element:p.cloneNode()}),p.textContent=L)}return I(me.afterSanitizeElements,p,null),ce(p,b)},Ie=function(p,b,T){if(Qr[b]||yi(b,p)||cr&&(b==="id"||b==="name")&&(T in t||T in Aa))return!1;let L=be[b]||ft.attributeCheck instanceof Function&&ft.attributeCheck(b,p);return lr&&fn(or,b)||Tr&&fn(di,b)?!0:L?ws[b]||fn(Dn,sc(T,qr,""))||(b==="src"||b==="xlink:href"||b==="href")&&p!=="script"&&CT(T,"data:")===0&&Ii[p]||rn&&!fn(bs,sc(T,qr,""))?!0:!T:at(p)&&U(st.tagNameCheck,p)&&U(st.attributeNameCheck,b,p)||b==="is"&&st.allowCustomizedBuiltInElements&&U(st.tagNameCheck,T)},Be=Fe({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),at=function(p){return!Be[ac(p)]&&fn(ys,p)},dt=function(p,b,T,L){if(W&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!T)switch(d.getAttributeType(p,b)){case"TrustedHTML":return we(L);case"TrustedScriptURL":return B(L)}return L},sn=function(p,b,T,L){try{return T?p.setAttributeNS(T,b,L):p.setAttribute(b,L),C(p)?(pt(p),!1):!0}catch(V){return Dt(b,p),!1}},Rr=function(p,b){if(I(me.beforeSanitizeAttributes,p,null),ce(p,b))return;let T=p.attributes;if(!T||C(p))return;be=J(me.uponSanitizeAttribute,be,ar,ge);let L={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:be,forceKeepAttr:void 0},V=T.length,le=Te(p.nodeName);for(;V--;){let fe=T[V],Ae=fe.name,ht=fe.namespaceURI,tt=fe.value,Xn=Te(Ae),Cs=tt,je=Ae==="value"?Cs:vz(Cs),Ra=!1;if(L.attrName=Xn,L.attrValue=je,L.keepAttr=!0,L.forceKeepAttr=void 0,I(me.uponSanitizeAttribute,p,L),je=L.attrValue,dr&&(Xn==="id"||Xn==="name")&&CT(je,hi)!==0&&(Dt(Ae,p,fe),je=hi+je,Ra=!0),Qt&&fn(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,je)){Dt(Ae,p,fe);continue}if(Xn==="attributename"&&AT(je,"href")){Dt(Ae,p,fe);continue}if(!L.forceKeepAttr){if(!L.keepAttr){Dt(Ae,p,fe);continue}if(!Ar&&fn(zz,je)){Dt(Ae,p,fe);continue}if(vt&&(je=Q(je)),!Ie(le,Xn,je)){Dt(Ae,p,fe);continue}je=dt(le,Xn,ht,je),je!==Cs&&sn(p,Ae,ht,je)&&Ra&&TT(e.removed)}}I(me.afterSanitizeAttributes,p,null),ce(p,b)},In=function(p){let b=null,T=y(p);for(I(me.beforeSanitizeShadowDOM,p,null);b=T.nextNode();)if(I(me.uponSanitizeShadowNode,b,null),Ce(b,p),Rr(b,p),E(b.content)&&In(b.content),R(b)===er.element){let L=D(b);E(L)&&(Si(L),In(L))}I(me.afterSanitizeShadowDOM,p,null)},Si=function(p){let b=[{node:p,shadow:null}];for(;b.length>0;){let T=b.pop();if(T.shadow){In(T.shadow);continue}let L=T.node,V=R(L)===er.element,le=S(L);if(le)for(let fe=le.length-1;fe>=0;--fe)b.push({node:le[fe],shadow:null});if(V){let fe=k?k(L):null;if(typeof fe=="string"&&Te(fe)==="template"){let Ae=L.content;E(Ae)&&b.push({node:Ae,shadow:null})}}if(V){let fe=D(L);E(fe)&&b.push({node:null,shadow:fe},{node:fe,shadow:null})}}};return e.sanitize=function(_){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},b=null,T=null,L=null,V=null;if(fi=!_,fi&&(_=""),typeof _!="string"&&!A(_)&&(_=$z(_),typeof _!="string"))throw ps("dirty is not a string, aborting");if(!e.isSupported)return _;Y?(ke=te,be=ge):Oi(p),(me.uponSanitizeElement.length>0||me.uponSanitizeAttribute.length>0)&&(ke=tr(ke)),me.uponSanitizeAttribute.length>0&&(be=tr(be)),e.removed=[];let le=ui&&typeof _!="string"&&A(_);if(le){Ea(_);let ht=X(_);if(typeof ht=="string"){let tt=Te(ht);if(!ke[tt]||Lt[tt])throw $n(_),ps("root node is forbidden and cannot be sanitized in-place")}if(C(_))throw $n(_),ps("root node is clobbered and cannot be sanitized in-place");try{Si(_)}catch(tt){throw $n(_),tt}}else if(A(_))b=As(""),T=b.ownerDocument.importNode(_,!0),T.nodeType===er.element&&T.nodeName==="BODY"||T.nodeName==="HTML"?b=T:b.appendChild(T),Si(b);else{if(!Le&&!vt&&!ie&&_.indexOf("<")===-1)return W&&xt?we(_):_;if(b=As(_),!b)return Le?null:xt?ne:""}b&&Ke&&pt(b.firstChild);let fe=le?_:b;try{let ht=y(fe);for(;L=ht.nextNode();)Ce(L,fe),Rr(L,fe),E(L.content)&&In(L.content)}catch(ht){throw le&&($n(_),fo(e.removed,tt=>{tt.element&&Er(tt.element)})),ht}if(le){let ht=!1;if(fo(e.removed,tt=>{tt.element&&(tt.element===_&&(ht=!0),Er(tt.element))}),ht)throw ps("a node selected for removal could not be safely returned; refusing to sanitize in place");return vt&&v(_),_}if(Le){if(vt&&v(b),ot)for(V=Ge.call(b.ownerDocument);b.firstChild;)V.appendChild(b.firstChild);else V=b;return(be.shadowroot||be.shadowrootmode)&&(V=Ot.call(r,V,!0)),V}let Ae=ie?b.outerHTML:b.innerHTML;return ie&&ke["!doctype"]&&b.ownerDocument&&b.ownerDocument.doctype&&b.ownerDocument.doctype.name&&fn(Zz,b.ownerDocument.doctype.name)&&(Ae=" -`+Ae),vt&&(Ae=Q(Ae)),W&&xt?we(Ae):Ae},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oi(_),Y=!0,te=ke,ge=be},e.clearConfig=function(){gn=null,Y=!1,te=null,ge=null,W=de,ne=""},e.isValidAttribute=function(_,p,b){gn||Oi({});let T=Te(_),L=Te(p);return Ie(T,L,b)},e.addHook=function(_,p){typeof p=="function"&&Ln(me,_)&&ic(me[_],p)},e.removeHook=function(_,p){if(Ln(me,_)){if(p!==void 0){let b=yz(me[_],p);return b===-1?void 0:Sz(me[_],b,1)[0]}return TT(me[_])}},e.removeHooks=function(_){Ln(me,_)&&(me[_]=[])},e.removeAllHooks=function(){me=zT()},e}var Fz=VT();FT.exports=Fz});var y0=Of(Qf());var $c=[{id:"vcs",title:"Making Games For The Atari 2600",url:"https://www.amazon.com/dp/1541021304",image:"book_a2600.png",platforms:["vcs"]},{id:"arcade",title:"Making 8-bit Arcade Games in C",url:"https://www.amazon.com/dp/1545484759",image:"book_arcade.png",platforms:["mw8080bw","vicdual","galaxian","galaxian-scramble","vector-z80color","williams-z80"]},{id:"verilog",title:"Designing Video Game Hardware in Verilog",url:"https://www.amazon.com/dp/1728619440",image:"book_verilog.png",platforms:["verilog"]},{id:"nes",title:"Making Games for the NES",url:"https://www.amazon.com/dp/1075952727",image:"book_nes.png",platforms:["nes"]},{id:"c64",title:"Making Games for the C-64",url:"https://www.amazon.com/dp/B0DMKH8NGL",image:"book_c64.png",platforms:["c64"]}];function V0(n){var e=Nt(n),t=Mr(n);return $c.find(r=>r.platforms.includes(e))||$c.find(r=>r.platforms.includes(t))}var _s="\u2190\u2191\u2193\u2192";var Tc=[{keys:[_s],action:"Joypad"},{keys:["Space"],action:"Button A"},{keys:["Shift"],action:"Button B"}],Tf=[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Button 1"},{keys:["Shift"],action:"Button 2"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"}],Qc=[...Tc,{keys:["\\"],action:"Select"},{keys:["Enter"],action:"Start"}],F0=[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Button"}],Y0={vcs:F0,c64:F0,apple2:[{keys:["Mouse"],action:"Paddles/Joystick"},{keys:["Click"],action:"Button 1"},{keys:["SHIFT-Click"],action:"Button 2"},{keys:["ALT-Click"],action:"Button 3"}],nes:Qc,atari7800:Qc,pce:Qc,gb:Qc,msx:Tc,coleco:Tc,sms:[...Tc,{keys:["Enter"],action:"Start"}],vicdual:Tf,galaxian:Tf,vector:Tf,mw8080bw:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"}],williams:[{keys:["A W S D"],action:"Move"},{keys:[_s],action:"Fire"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"},{keys:["6 7 8 9"],action:"Extra"}],astrocade:[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Trigger"},{keys:["Mouse X"],action:"Knob"},{keys:[`U I O P +import{a as X0}from"./chunk-NTFEI2OH.js";import{a as z0}from"./chunk-SRBQMLE7.js";import"./chunk-JRMUDXWR.js";import{a as kc}from"./chunk-G3VBABUZ.js";import{a as W0,b as N0,c as zA}from"./chunk-3H6WIH6E.js";import{G as Pc,L as kf,j as L0,k as D0,q as Z0,x as I0,y as Pf}from"./chunk-4YTESWOC.js";import"./chunk-UXRCACYH.js";import{A as Nt,B as Mr,E as wc,G as hr,H as _0,J as vf,K as vo,M as wo,N as wf,O as E0,P as xf,Y as xo,Z as R0,a as Hr,aa as M0,b as La,d as yt,e as Da,f as Zt,g as _e,h as bf,i as k0,ia as xc,k as $0,m as yc,n as Q0,o as Sc,p as vc,q as T0,t as So,w as A0,x as yf,y as C0,z as Sf}from"./chunk-VZWSP3EG.js";import{a as Ue,b as zi,c as Ma,e as gf,g as Of}from"./chunk-N7W4C4V2.js";var Qf=gf((B0,$f)=>{(function(n){if(typeof B0=="object"&&typeof $f!="undefined")$f.exports=n();else if(typeof define=="function"&&define.amd)define([],n);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=n()}})(function(){var n,e,t;return(function r(i,s,o){function a(d,h){if(!s[d]){if(!i[d]){var u=typeof Ma=="function"&&Ma;if(!h&&u)return u(d,!0);if(l)return l(d,!0);var f=new Error("Cannot find module '"+d+"'");throw f.code="MODULE_NOT_FOUND",f}var m=s[d]={exports:{}};i[d][0].call(m.exports,function(O){var S=i[d][1][O];return a(S||O)},m,m.exports,r,i,s,o)}return s[d].exports}for(var l=typeof Ma=="function"&&Ma,c=0;c=43)}}).catch(function(){return!1})}function W(y){return typeof D=="boolean"?u.resolve(D):X(y).then(function(Q){return D=Q,D})}function ne(y){var Q=M[y.name],v={};v.promise=new u(function(C,E){v.resolve=C,v.reject=E}),Q.deferredOperations.push(v),Q.dbReady?Q.dbReady=Q.dbReady.then(function(){return v.promise}):Q.dbReady=v.promise}function de(y){var Q=M[y.name],v=Q.deferredOperations.pop();if(v)return v.resolve(),v.promise}function q(y,Q){var v=M[y.name],C=v.deferredOperations.pop();if(C)return C.reject(Q),C.promise}function pe(y,Q){return new u(function(v,C){if(M[y.name]=M[y.name]||Ot(),y.db)if(Q)ne(y),y.db.close();else return v(y.db);var E=[y.name];Q&&E.push(y.version);var A=c.open.apply(c,E);Q&&(A.onupgradeneeded=function(I){var j=A.result;try{j.createObjectStore(y.storeName),I.oldVersion<=1&&j.createObjectStore(x)}catch(U){if(U.name==="ConstraintError")console.warn('The database "'+y.name+'" has been upgraded from version '+I.oldVersion+" to version "+I.newVersion+', but the storage "'+y.storeName+'" already exists.');else throw U}}),A.onerror=function(I){I.preventDefault(),C(A.error)},A.onsuccess=function(){var I=A.result;I.onversionchange=function(j){j.target.close()},v(I),de(y)}})}function ve(y){return pe(y,!1)}function we(y){return pe(y,!0)}function B(y,Q){if(!y.db)return!0;var v=!y.db.objectStoreNames.contains(y.storeName),C=y.versiony.db.version;if(C&&(y.version!==Q&&console.warn('The database "'+y.name+`" can't be downgraded from version `+y.db.version+" to version "+y.version+"."),y.version=y.db.version),E||v){if(v){var A=y.db.version+1;A>y.version&&(y.version=A)}return!0}return!1}function ue(y){return new u(function(Q,v){var C=new FileReader;C.onerror=v,C.onloadend=function(E){var A=btoa(E.target.result||"");Q({__local_forage_encoded_blob:!0,data:A,type:y.type})},C.readAsBinaryString(y)})}function G(y){var Q=R(atob(y.data));return h([Q],{type:y.type})}function Pe(y){return y&&y.__local_forage_encoded_blob}function Qe(y){var Q=this,v=Q._initReady().then(function(){var C=M[Q._dbInfo.name];if(C&&C.dbReady)return C.dbReady});return m(v,y,y),v}function Ge(y){ne(y);for(var Q=M[y.name],v=Q.forages,C=0;C0&&(!y.db||A.name==="InvalidStateError"||A.name==="NotFoundError"))return u.resolve().then(function(){if(!y.db||A.name==="NotFoundError"&&!y.db.objectStoreNames.contains(y.storeName)&&y.version<=y.db.version)return y.db&&(y.version=y.db.version+1),we(y)}).then(function(){return Ge(y).then(function(){He(y,Q,v,C-1)})}).catch(v);v(A)}}function Ot(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function me(y){var Q=this,v={db:null};if(y)for(var C in y)v[C]=y[C];var E=M[v.name];E||(E=Ot(),M[v.name]=E),E.forages.push(Q),Q._initReady||(Q._initReady=Q.ready,Q.ready=Qe);var A=[];function I(){return u.resolve()}for(var j=0;j>4,J[E++]=(I&15)<<4|j>>2,J[E++]=(j&3)<<6|U&63;return H}function xt(y){var Q=new Uint8Array(y),v="",C;for(C=0;C>2],v+=be[(Q[C]&3)<<4|Q[C+1]>>4],v+=be[(Q[C+1]&15)<<2|Q[C+2]>>6],v+=be[Q[C+2]&63];return Q.length%3===2?v=v.substring(0,v.length-1)+"=":Q.length%3===1&&(v=v.substring(0,v.length-2)+"=="),v}function cr(y,Q){var v="";if(y&&(v=Le.call(y)),y&&(v==="[object ArrayBuffer]"||y.buffer&&Le.call(y.buffer)==="[object ArrayBuffer]")){var C,E=Lt;y instanceof ArrayBuffer?(C=y,E+=ft):(C=y.buffer,v==="[object Int8Array]"?E+=lr:v==="[object Uint8Array]"?E+=rn:v==="[object Uint8ClampedArray]"?E+=Ar:v==="[object Int16Array]"?E+=vt:v==="[object Uint16Array]"?E+=ie:v==="[object Int32Array]"?E+=Qt:v==="[object Uint32Array]"?E+=Y:v==="[object Float32Array]"?E+=te:v==="[object Float64Array]"?E+=ge:Q(new Error("Failed to get type for BinaryArray"))),Q(E+xt(C))}else if(v==="[object Blob]"){var A=new FileReader;A.onload=function(){var I=ar+y.type+"~"+xt(this.result);Q(Lt+Tr+I)},A.readAsArrayBuffer(y)}else try{Q(JSON.stringify(y))}catch(I){console.error("Couldn't convert value into a JSON string: ",y),Q(null,I)}}function dr(y){if(y.substring(0,Qr)!==Lt)return JSON.parse(y);var Q=y.substring(Ke),v=y.substring(Qr,Ke),C;if(v===Tr&&st.test(Q)){var E=Q.match(st);C=E[1],Q=Q.substring(E[0].length)}var A=ot(Q);switch(v){case ft:return A;case Tr:return h([A],{type:C});case lr:return new Int8Array(A);case rn:return new Uint8Array(A);case Ar:return new Uint8ClampedArray(A);case vt:return new Int16Array(A);case ie:return new Uint16Array(A);case Qt:return new Int32Array(A);case Y:return new Uint32Array(A);case te:return new Float32Array(A);case ge:return new Float64Array(A);default:throw new Error("Unkown type: "+v)}}var hi={serialize:cr,deserialize:dr,stringToBuffer:ot,bufferToString:xt};function Gr(y,Q,v,C){y.executeSql("CREATE TABLE IF NOT EXISTS "+Q.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],v,C)}function ui(y){var Q=this,v={db:null};if(y)for(var C in y)v[C]=typeof y[C]!="string"?y[C].toString():y[C];var E=new u(function(A,I){try{v.db=openDatabase(v.name,String(v.version),v.description,v.size)}catch(j){return I(j)}v.db.transaction(function(j){Gr(j,v,function(){Q._dbInfo=v,A()},function(U,H){I(H)})},I)});return v.serializer=hi,E}function wt(y,Q,v,C,E,A){y.executeSql(v,C,E,function(I,j){j.code===j.SYNTAX_ERR?I.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[Q.storeName],function(U,H){H.rows.length?A(U,j):Gr(U,Q,function(){U.executeSql(v,C,E,A)},A)},A):A(I,j)},A)}function pn(y,Q){var v=this;y=O(y);var C=new u(function(E,A){v.ready().then(function(){var I=v._dbInfo;I.db.transaction(function(j){wt(j,I,"SELECT * FROM "+I.storeName+" WHERE key = ? LIMIT 1",[y],function(U,H){var J=H.rows.length?H.rows.item(0).value:null;J&&(J=I.serializer.deserialize(J)),E(J)},function(U,H){A(H)})})}).catch(A)});return f(C,Q),C}function Ss(y,Q){var v=this,C=new u(function(E,A){v.ready().then(function(){var I=v._dbInfo;I.db.transaction(function(j){wt(j,I,"SELECT * FROM "+I.storeName,[],function(U,H){for(var J=H.rows,ce=J.length,Ce=0;Ce0){I(Ii.apply(E,[y,U,v,C-1]));return}j(Ce)}})})}).catch(j)});return f(A,v),A}function vs(y,Q,v){return Ii.apply(this,[y,Q,v,1])}function ws(y,Q){var v=this;y=O(y);var C=new u(function(E,A){v.ready().then(function(){var I=v._dbInfo;I.db.transaction(function(j){wt(j,I,"DELETE FROM "+I.storeName+" WHERE key = ?",[y],function(){E()},function(U,H){A(H)})})}).catch(A)});return f(C,Q),C}function xs(y){var Q=this,v=new u(function(C,E){Q.ready().then(function(){var A=Q._dbInfo;A.db.transaction(function(I){wt(I,A,"DELETE FROM "+A.storeName,[],function(){C()},function(j,U){E(U)})})}).catch(E)});return f(v,y),v}function Cr(y){var Q=this,v=new u(function(C,E){Q.ready().then(function(){var A=Q._dbInfo;A.db.transaction(function(I){wt(I,A,"SELECT COUNT(key) as c FROM "+A.storeName,[],function(j,U){var H=U.rows.item(0).c;C(H)},function(j,U){E(U)})})}).catch(E)});return f(v,y),v}function _r(y,Q){var v=this,C=new u(function(E,A){v.ready().then(function(){var I=v._dbInfo;I.db.transaction(function(j){wt(j,I,"SELECT key FROM "+I.storeName+" WHERE id = ? LIMIT 1",[y+1],function(U,H){var J=H.rows.length?H.rows.item(0).key:null;E(J)},function(U,H){A(H)})})}).catch(A)});return f(C,Q),C}function bt(y){var Q=this,v=new u(function(C,E){Q.ready().then(function(){var A=Q._dbInfo;A.db.transaction(function(I){wt(I,A,"SELECT key FROM "+A.storeName,[],function(j,U){for(var H=[],J=0;J '__WebKitDatabaseInfoTable__'",[],function(E,A){for(var I=[],j=0;j0}function gi(y){var Q=this,v={};if(y)for(var C in y)v[C]=y[C];return v.keyPrefix=Xi(y,Q._defaultConfig),Ps()?(Q._dbInfo=v,v.serializer=hi,u.resolve()):u.reject()}function $a(y){var Q=this,v=Q.ready().then(function(){for(var C=Q._dbInfo.keyPrefix,E=localStorage.length-1;E>=0;E--){var A=localStorage.key(E);A.indexOf(C)===0&&localStorage.removeItem(A)}});return f(v,y),v}function Zn(y,Q){var v=this;y=O(y);var C=v.ready().then(function(){var E=v._dbInfo,A=localStorage.getItem(E.keyPrefix+y);return A&&(A=E.serializer.deserialize(A)),A});return f(C,Q),C}function Qa(y,Q){var v=this,C=v.ready().then(function(){for(var E=v._dbInfo,A=E.keyPrefix,I=A.length,j=localStorage.length,U=1,H=0;H=0;I--){var j=localStorage.key(I);j.indexOf(A)===0&&localStorage.removeItem(j)}}):E=u.reject("Invalid arguments"),f(E,Q),E}var $s={_driver:"localStorageWrapper",_initStorage:gi,_support:ka(),iterate:Qa,getItem:Zn,setItem:ks,removeItem:Aa,clear:$a,length:gn,key:Ta,keys:Te,dropInstance:Oi},Qs=function(Q,v){return Q===v||typeof Q=="number"&&typeof v=="number"&&isNaN(Q)&&isNaN(v)},Ca=function(Q,v){for(var C=Q.length,E=0;E{(function(n,e){typeof Vf=="object"&&typeof Ff!="undefined"?Ff.exports=e():typeof define=="function"&&define.amd?define(e):(n=typeof globalThis!="undefined"?globalThis:n||self,n.Split=e())})(Vf,(function(){"use strict";var n=typeof window!="undefined"?window:null,e=n===null,t=e?void 0:n.document,r="addEventListener",i="removeEventListener",s="getBoundingClientRect",o="_a",a="_b",l="_c",c="horizontal",d=function(){return!1},h=e?"calc":["","-webkit-","-moz-","-o-"].filter(function(Z){var k=t.createElement("div");return k.style.cssText="width:"+Z+"calc(9px)",!!k.style.length}).shift()+"calc",u=function(Z){return typeof Z=="string"||Z instanceof String},f=function(Z){if(u(Z)){var k=t.querySelector(Z);if(!k)throw new Error("Selector "+Z+" did not match a DOM element");return k}return Z},m=function(Z,k,w){var R=Z[k];return R!==void 0?R:w},O=function(Z,k,w,R){if(k){if(R==="end")return 0;if(R==="center")return Z/2}else if(w){if(R==="start")return 0;if(R==="center")return Z/2}return Z},S=function(Z,k){var w=t.createElement("div");return w.className="gutter gutter-"+k,w},x=function(Z,k,w){var R={};return u(k)?R[Z]=k:R[Z]=h+"("+k+"% - "+w+"px)",R},D=function(Z,k){var w;return w={},w[Z]=k+"px",w},M=function(Z,k){if(k===void 0&&(k={}),e)return{};var w=Z,R,X,W,ne,de,q;Array.from&&(w=Array.from(w));var pe=f(w[0]),ve=pe.parentNode,we=getComputedStyle?getComputedStyle(ve):null,B=we?we.flexDirection:null,ue=m(k,"sizes")||w.map(function(){return 100/w.length}),G=m(k,"minSize",100),Pe=Array.isArray(G)?G:w.map(function(){return G}),Qe=m(k,"maxSize",1/0),Ge=Array.isArray(Qe)?Qe:w.map(function(){return Qe}),He=m(k,"expandToMin",!1),Ot=m(k,"gutterSize",10),me=m(k,"gutterAlign","center"),nn=m(k,"snapOffset",30),ir=Array.isArray(nn)?nn:w.map(function(){return nn}),sr=m(k,"dragInterval",1),or=m(k,"direction",c),di=m(k,"cursor",or===c?"col-resize":"row-resize"),bs=m(k,"gutter",S),qr=m(k,"elementStyle",x),ys=m(k,"gutterStyle",D);or===c?(R="width",X="clientX",W="left",ne="right",de="clientWidth"):or==="vertical"&&(R="height",X="clientY",W="top",ne="bottom",de="clientHeight");function Dn(ie,Y,te,ge){var Ke=qr(R,Y,te,ge);Object.keys(Ke).forEach(function(Le){ie.style[Le]=Ke[Le]})}function ke(ie,Y,te){var ge=ys(R,Y,te);Object.keys(ge).forEach(function(Ke){ie.style[Ke]=ge[Ke]})}function kn(){return q.map(function(ie){return ie.size})}function be(ie){return"touches"in ie?ie.touches[0][X]:ie[X]}function ar(ie){var Y=q[this.a],te=q[this.b],ge=Y.size+te.size;Y.size=ie/this.size*ge,te.size=ge-ie/this.size*ge,Dn(Y.element,Y.size,this[a],Y.i),Dn(te.element,te.size,this[l],te.i)}function st(ie){var Y,te=q[this.a],ge=q[this.b];this.dragging&&(Y=be(ie)-this.start+(this[a]-this.dragOffset),sr>1&&(Y=Math.round(Y/sr)*sr),Y<=te.minSize+te.snapOffset+this[a]?Y=te.minSize+this[a]:Y>=this.size-(ge.minSize+ge.snapOffset+this[l])&&(Y=this.size-(ge.minSize+this[l])),Y>=te.maxSize-te.snapOffset+this[a]?Y=te.maxSize+this[a]:Y<=this.size-(ge.maxSize-ge.snapOffset+this[l])&&(Y=this.size-(ge.maxSize+this[l])),ar.call(this,Y),m(k,"onDrag",d)(kn()))}function Lt(){var ie=q[this.a].element,Y=q[this.b].element,te=ie[s](),ge=Y[s]();this.size=te[R]+ge[R]+this[a]+this[l],this.start=te[W],this.end=te[ne]}function Qr(ie){if(!getComputedStyle)return null;var Y=getComputedStyle(ie);if(!Y)return null;var te=ie[de];return te===0?null:(or===c?te-=parseFloat(Y.paddingLeft)+parseFloat(Y.paddingRight):te-=parseFloat(Y.paddingTop)+parseFloat(Y.paddingBottom),te)}function ft(ie){var Y=Qr(ve);if(Y===null||Pe.reduce(function(Le,ot){return Le+ot},0)>Y)return ie;var te=0,ge=[],Ke=ie.map(function(Le,ot){var xt=Y*Le/100,cr=O(Ot,ot===0,ot===ie.length-1,me),dr=Pe[ot]+cr;return xt0&&ge[ot]-te>0){var cr=Math.min(te,ge[ot]-te);te-=cr,xt=Le-cr}return xt/Y*100})}function Tr(){var ie=this,Y=q[ie.a].element,te=q[ie.b].element;ie.dragging&&m(k,"onDragEnd",d)(kn()),ie.dragging=!1,n[i]("mouseup",ie.stop),n[i]("touchend",ie.stop),n[i]("touchcancel",ie.stop),n[i]("mousemove",ie.move),n[i]("touchmove",ie.move),ie.stop=null,ie.move=null,Y[i]("selectstart",d),Y[i]("dragstart",d),te[i]("selectstart",d),te[i]("dragstart",d),Y.style.userSelect="",Y.style.webkitUserSelect="",Y.style.MozUserSelect="",Y.style.pointerEvents="",te.style.userSelect="",te.style.webkitUserSelect="",te.style.MozUserSelect="",te.style.pointerEvents="",ie.gutter.style.cursor="",ie.parent.style.cursor="",t.body.style.cursor=""}function lr(ie){if(!("button"in ie&&ie.button!==0)){var Y=this,te=q[Y.a].element,ge=q[Y.b].element;Y.dragging||m(k,"onDragStart",d)(kn()),ie.preventDefault(),Y.dragging=!0,Y.move=st.bind(Y),Y.stop=Tr.bind(Y),n[r]("mouseup",Y.stop),n[r]("touchend",Y.stop),n[r]("touchcancel",Y.stop),n[r]("mousemove",Y.move),n[r]("touchmove",Y.move),te[r]("selectstart",d),te[r]("dragstart",d),ge[r]("selectstart",d),ge[r]("dragstart",d),te.style.userSelect="none",te.style.webkitUserSelect="none",te.style.MozUserSelect="none",te.style.pointerEvents="none",ge.style.userSelect="none",ge.style.webkitUserSelect="none",ge.style.MozUserSelect="none",ge.style.pointerEvents="none",Y.gutter.style.cursor=di,Y.parent.style.cursor=di,t.body.style.cursor=di,Lt.call(Y),Y.dragOffset=be(ie)-Y.end}}ue=ft(ue);var rn=[];q=w.map(function(ie,Y){var te={element:f(ie),size:ue[Y],minSize:Pe[Y],maxSize:Ge[Y],snapOffset:ir[Y],i:Y},ge;if(Y>0&&(ge={a:Y-1,b:Y,dragging:!1,direction:or,parent:ve},ge[a]=O(Ot,Y-1===0,!1,me),ge[l]=O(Ot,!1,Y===w.length-1,me),B==="row-reverse"||B==="column-reverse")){var Ke=ge.a;ge.a=ge.b,ge.b=Ke}if(Y>0){var Le=bs(Y,or,te.element);ke(Le,Ot,Y),ge[o]=lr.bind(ge),Le[r]("mousedown",ge[o]),Le[r]("touchstart",ge[o]),ve.insertBefore(Le,te.element),ge.gutter=Le}return Dn(te.element,te.size,O(Ot,Y===0,Y===w.length-1,me),Y),Y>0&&rn.push(ge),te});function Ar(ie){var Y=ie.i===rn.length,te=Y?rn[ie.i-1]:rn[ie.i];Lt.call(te);var ge=Y?te.size-ie.minSize-te[l]:ie.minSize+te[a];ar.call(te,ge)}q.forEach(function(ie){var Y=ie.element[s]()[R];Y0){var Ke=rn[ge-1],Le=q[Ke.a],ot=q[Ke.b];Le.size=Y[ge-1],ot.size=te,Dn(Le.element,Le.size,Ke[a],Le.i),Dn(ot.element,ot.size,Ke[l],ot.i)}})}function Qt(ie,Y){rn.forEach(function(te){if(Y!==!0?te.parent.removeChild(te.gutter):(te.gutter[i]("mousedown",te[o]),te.gutter[i]("touchstart",te[o])),ie!==!0){var ge=qr(R,te.a.size,te[a]);Object.keys(ge).forEach(function(Ke){q[te.a].element.style[Ke]="",q[te.b].element.style[Ke]=""})}})}return{setSizes:vt,getSizes:kn,collapse:function(Y){Ar(q[Y])},destroy:Qt,parent:ve,pairs:rn}};return M}))});var o0=gf((YY,jT)=>{"use strict";function uz(n,e){this.v=n,this.k=e}function TT(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,r=Array(e);t2?r-2:0),s=2;s1?t-1:0),i=1;i1?t-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:ac;if(AT&&AT(n,null),!Sa(e))return n;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let s=t(i);s!==i&&(bz(e)||(e[r]=s),i=s)}n[i]=!0}return n}function Qz(n){for(let e=0;e/g),Mz=jt(/\${[\w\W]*/g),Lz=jt(/^data-[\-\w.\u00B7-\uFFFF]+$/),Dz=jt(/^aria-[\-\w]+$/),XT=jt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Zz=jt(/^(?:\w+script|data):/i),Iz=jt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Xz=jt(/^html$/i),zz=jt(/^[a-z][.\w]*(-[.\w]+)+$/i),zT=jt(/<[/\w!]/g),WT=jt(/<[/\w]/g),Wz=jt(/<\/no(script|embed|frames)/i),Nz=jt(/\/>/i),er={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},FT=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],Bz=Wt(Fe({},FT)),Vz=(function(){let n={};return fo(FT,e=>{n[e]=jt(new RegExp("])","i"))}),Wt(n)})(),Fz=function(){return typeof window=="undefined"?null:window},Yz=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(r=t.getAttribute(i));let s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch(o){return console.warn("TrustedTypes policy "+s+" could not be created."),null}},NT=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},ms=function(e,t,r,i){return Ln(e,t)&&Sa(e[t])?Fe(i.base?tr(i.base):{},e[t],i.transform):r},r0=function(e,t,r){let i=Ln(e,t)?e[t]:void 0;return i&&typeof i=="object"?tr(i):r()};function YT(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Fz(),e=_=>YT(_);if(e.version="3.4.16",e.removed=[],!n||!n.document||n.document.nodeType!==er.document||!n.Element)return e.isSupported=!1,e;let t=n.document,r=t,i=r.currentScript;n.DocumentFragment;let s=n.HTMLTemplateElement,o=n.Node,a=n.Element,l=n.NodeFilter;n.NamedNodeMap===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;let c=n.DOMParser,d=n.trustedTypes,h=a.prototype,u=kr(h,"cloneNode"),f=kr(h,"remove"),m=kr(h,"removeAttributeNode"),O=kr(h,"nextSibling"),S=kr(h,"childNodes"),x=kr(h,"parentNode"),D=kr(h,"shadowRoot"),M=kr(h,"attributes"),Z=o&&o.prototype?kr(o.prototype,"nodeType"):null,k=o&&o.prototype?kr(o.prototype,"nodeName"):null,w=o&&o.prototype?kr(o.prototype,"ownerDocument"):null,R=function(p){return Z?Z(p):p.nodeType},X=function(p){return k?k(p):p.nodeName};if(typeof s=="function"){let _=t.createElement("template");_.content&&_.content.ownerDocument&&(t=_.content.ownerDocument)}let W,ne="",de,q=!1,pe=0,ve=function(){if(pe>0)throw ps('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},we=function(p){ve(),pe++;try{return W.createHTML(p)}finally{pe--}},B=function(p){ve(),pe++;try{return W.createScriptURL(p)}finally{pe--}},ue=function(){return q||(de=Yz(d,i),q=!0),de},G=t,Pe=G.implementation,Qe=G.createNodeIterator,Ge=G.createDocumentFragment,He=G.getElementsByTagName,Ot=r.importNode,me=NT();e.isSupported=typeof BT=="function"&&typeof x=="function"&&Pe&&Pe.createHTMLDocument!==void 0;let nn=Ez,ir=Rz,sr=Mz,or=Lz,di=Dz,bs=Zz,qr=Iz,ys=zz,Dn=XT,ke=null,kn=Fe({},[...LT,...Jb,...e0,...t0,...DT]),be=null,ar=Fe({},[...ZT,...n0,...IT,...Fu]),st=Object.seal(ya(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Lt=null,Qr=null,ft=Object.seal(ya(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Tr=!0,lr=!0,rn=!1,Ar=!0,vt=!1,Qt=!0,ie=!1,Y=!1,te=null,ge=null,Ke=!1,Le=!1,ot=!1,xt=!1,cr=!0,dr=!1,hi="user-content-",Gr=!0,ui=!1,wt={},pn=null,Ss=Fe({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Ii=null,vs=Fe({},["audio","video","img","source","image","track"]),ws=null,xs=Fe({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Cr="http://www.w3.org/1998/Math/MathML",_r="http://www.w3.org/2000/svg",bt="http://www.w3.org/1999/xhtml",mn=bt,fi=!1,pi=null,ka=Fe({},[Cr,_r,bt],Kb),Xi=Wt(["mi","mo","mn","ms","mtext"]),mi=Fe({},Xi),Ps=Wt(["annotation-xml"]),gi=Fe({},Ps),$a=Fe({},["title","style","font","a","script"]),Zn=null,Qa=["application/xhtml+xml","text/html"],Ta="text/html",Te=null,gn=null,Aa=t.createElement("form"),ks=function(p){return p instanceof RegExp||p instanceof Function},Oi=function(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(gn&&gn===p)return;(!p||typeof p!="object")&&(p={}),p=tr(p),Zn=Qa.indexOf(p.PARSER_MEDIA_TYPE)===-1?Ta:p.PARSER_MEDIA_TYPE,Te=Zn==="application/xhtml+xml"?Kb:ac,ke=ms(p,"ALLOWED_TAGS",kn,{transform:Te}),be=ms(p,"ALLOWED_ATTR",ar,{transform:Te}),pi=ms(p,"ALLOWED_NAMESPACES",ka,{transform:Kb}),ws=ms(p,"ADD_URI_SAFE_ATTR",xs,{transform:Te,base:xs}),Ii=ms(p,"ADD_DATA_URI_TAGS",vs,{transform:Te,base:vs}),pn=ms(p,"FORBID_CONTENTS",Ss,{transform:Te}),Lt=ms(p,"FORBID_TAGS",tr({}),{transform:Te}),Qr=ms(p,"FORBID_ATTR",tr({}),{transform:Te}),wt=Ln(p,"USE_PROFILES")?p.USE_PROFILES&&typeof p.USE_PROFILES=="object"?tr(p.USE_PROFILES):p.USE_PROFILES:!1,Tr=p.ALLOW_ARIA_ATTR!==!1,lr=p.ALLOW_DATA_ATTR!==!1,rn=p.ALLOW_UNKNOWN_PROTOCOLS||!1,Ar=p.ALLOW_SELF_CLOSE_IN_ATTR!==!1,vt=p.SAFE_FOR_TEMPLATES||!1,Qt=p.SAFE_FOR_XML!==!1,ie=p.WHOLE_DOCUMENT||!1,Le=p.RETURN_DOM||!1,ot=p.RETURN_DOM_FRAGMENT||!1,xt=p.RETURN_TRUSTED_TYPE||!1,Ke=p.FORCE_BODY||!1,cr=p.SANITIZE_DOM!==!1,dr=p.SANITIZE_NAMED_PROPS||!1,Gr=p.KEEP_CONTENT!==!1,ui=p.IN_PLACE||!1,Dn=Az(p.ALLOWED_URI_REGEXP)?p.ALLOWED_URI_REGEXP:XT,mn=typeof p.NAMESPACE=="string"?p.NAMESPACE:bt,mi=r0(p,"MATHML_TEXT_INTEGRATION_POINTS",()=>Fe({},Xi)),gi=r0(p,"HTML_INTEGRATION_POINTS",()=>Fe({},Ps));let b=r0(p,"CUSTOM_ELEMENT_HANDLING",()=>ya(null));if(st=ya(null),Ln(b,"tagNameCheck")&&ks(b.tagNameCheck)&&(st.tagNameCheck=b.tagNameCheck),Ln(b,"attributeNameCheck")&&ks(b.attributeNameCheck)&&(st.attributeNameCheck=b.attributeNameCheck),Ln(b,"allowCustomizedBuiltInElements")&&typeof b.allowCustomizedBuiltInElements=="boolean"&&(st.allowCustomizedBuiltInElements=b.allowCustomizedBuiltInElements),jt(st),vt&&(lr=!1),ot&&(Le=!0),wt&&(ke=Fe({},DT),be=ya(null),wt.html===!0&&(Fe(ke,LT),Fe(be,ZT)),wt.svg===!0&&(Fe(ke,Jb),Fe(be,n0),Fe(be,Fu)),wt.svgFilters===!0&&(Fe(ke,e0),Fe(be,n0),Fe(be,Fu)),wt.mathMl===!0&&(Fe(ke,t0),Fe(be,IT),Fe(be,Fu))),ft.tagCheck=null,ft.attributeCheck=null,Ln(p,"ADD_TAGS")&&(typeof p.ADD_TAGS=="function"?ft.tagCheck=p.ADD_TAGS:Sa(p.ADD_TAGS)&&(ke===kn&&(ke=tr(ke)),Fe(ke,p.ADD_TAGS,Te))),Ln(p,"ADD_ATTR")&&(typeof p.ADD_ATTR=="function"?ft.attributeCheck=p.ADD_ATTR:Sa(p.ADD_ATTR)&&(be===ar&&(be=tr(be)),Fe(be,p.ADD_ATTR,Te))),Ln(p,"ADD_FORBID_CONTENTS")&&Sa(p.ADD_FORBID_CONTENTS)&&(pn===Ss&&(pn=tr(pn)),Fe(pn,p.ADD_FORBID_CONTENTS,Te)),Gr&&(ke["#text"]=!0),ie&&Fe(ke,["html","head","body"]),ke.table&&(Fe(ke,["tbody"]),delete Lt.tbody),p.TRUSTED_TYPES_POLICY){if(typeof p.TRUSTED_TYPES_POLICY.createHTML!="function")throw ps('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof p.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw ps('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let T=W;W=p.TRUSTED_TYPES_POLICY;try{ne=we("")}catch(L){throw W=T,L}}else p.TRUSTED_TYPES_POLICY===null?(W=void 0,ne=""):(W===void 0&&(W=ue()),W&&typeof ne=="string"&&(ne=we("")));Wt&&Wt(p),gn=p},$s=Fe({},[...Jb,...e0,...Cz]),Qs=Fe({},[...t0,..._z]),Ca=function(p,b,T){return b.namespaceURI===bt?p==="svg":b.namespaceURI===Cr?p==="svg"&&(T==="annotation-xml"||mi[T]):!!$s[p]},bo=function(p,b,T){return b.namespaceURI===bt?p==="math":b.namespaceURI===_r?p==="math"&&gi[T]:!!Qs[p]},bi=function(p,b,T){return b.namespaceURI===_r&&!gi[T]||b.namespaceURI===Cr&&!mi[T]?!1:!Qs[p]&&($a[p]||!$s[p])},yo=function(p){let b=x(p);(!b||!b.tagName)&&(b={namespaceURI:mn,tagName:"template"});let T=ac(p.tagName),L=ac(b.tagName);return pi[p.namespaceURI]?p.namespaceURI===_r?Ca(T,b,L):p.namespaceURI===Cr?bo(T,b,L):p.namespaceURI===bt?bi(T,b,L):!!(Zn==="application/xhtml+xml"&&pi[p.namespaceURI]):!1},pt=function(p){ic(e.removed,{element:p});try{x(p).removeChild(p)}catch(b){if(f(p),!x(p))throw ps("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Ts=function(p,b,T){try{m(p,b)}catch(L){try{p.removeAttribute(T)}catch(V){}}},$n=function(p){Er(p);let b=S(p);if(b){let L=[];fo(b,V=>{ic(L,V)}),fo(L,V=>{try{f(V)}catch(le){}})}let T=M(p);if(T)for(let L=T.length-1;L>=0;--L){let V=T[L],le=V&&V.name;typeof le=="string"&&Ts(p,V,le)}},Dt=function(p,b,T){if(!T)try{T=b.getAttributeNode(p)}catch(L){T=null}ic(e.removed,{attribute:T||null,from:b});try{T?m(b,T):b.removeAttribute(p)}catch(L){try{b.removeAttribute(p)}catch(V){}}if(p==="is")if(Le||ot)try{pt(b)}catch(L){}else try{b.setAttribute(p,"")}catch(L){}},_a=function(p){let b=M(p);if(b)for(let T=b.length-1;T>=0;--T){let L=b[T],V=L&&L.name;typeof V!="string"||be[Te(V)]||Ts(p,L,V)}},Er=function(p){let b=[p];for(;b.length>0;){let T=b.pop();R(T)===er.element&&_a(T);let L=S(T);if(L)for(let V=L.length-1;V>=0;--V)b.push(L[V])}},yi=function(p,b){return Qt?p==="patchsrc"?!0:p==="for"&&b!=="label"&&b!=="output":!1},Ea=function(p){if(!Qt)return;let b=[p];for(;b.length>0;){let T=b.pop(),L=R(T);if(L===er.processingInstruction||L===er.comment&&fn(WT,T.data)){try{f(T)}catch(le){}continue}if(L===er.element){let le=T,fe=Te(X(T));try{le.hasAttribute&&le.hasAttribute("patchsrc")&&le.removeAttribute("patchsrc"),le.hasAttribute&&le.hasAttribute("for")&&yi("for",fe)&&le.removeAttribute("for")}catch(Ae){}}let V=S(T);if(V)for(let le=V.length-1;le>=0;--le)b.push(V[le])}},As=function(p){let b=null,T=null;if(Ke)p=""+p;else{let le=_T(p,/^[\r\n\t ]+/);T=le&&le[0]}Zn==="application/xhtml+xml"&&mn===bt&&(p=''+p+"");let L=W?we(p):p;if(mn===bt)try{b=new c().parseFromString(L,Zn)}catch(le){}if(!b||!b.documentElement){b=Pe.createDocument(mn,"template",null);try{b.documentElement.innerHTML=fi?ne:L}catch(le){}}let V=b.body||b.documentElement;return p&&T&&V.insertBefore(t.createTextNode(T),V.childNodes[0]||null),mn===bt?He.call(b,ie?"html":"body")[0]:ie?b.documentElement:V},y=function(p){let b=w?w(p):p.ownerDocument;return Qe.call(b||p,p,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Q=function(p){return p=sc(p,nn," "),p=sc(p,ir," "),p=sc(p,sr," "),p},v=function(p){var b;p.normalize();let T=w?w(p):p.ownerDocument,L=Qe.call(T||p,p,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),V=L.nextNode();for(;V;)V.data=Q(V.data),V=L.nextNode();let le=(b=p.querySelectorAll)===null||b===void 0?void 0:b.call(p,"template");le&&fo(le,fe=>{E(fe.content)&&v(fe.content)})},C=function(p){let b=k?k(p):null;return typeof b!="string"||Te(b)!=="form"?!1:typeof p.nodeName!="string"||typeof p.textContent!="string"||typeof p.removeChild!="function"||p.attributes!==M(p)||typeof p.removeAttribute!="function"||typeof p.removeAttributeNode!="function"||typeof p.getAttributeNode!="function"||typeof p.setAttribute!="function"||typeof p.namespaceURI!="string"||typeof p.insertBefore!="function"||typeof p.hasChildNodes!="function"||p.nodeType!==Z(p)||p.childNodes!==S(p)},E=function(p){if(!Z||typeof p!="object"||p===null)return!1;try{return Z(p)===er.documentFragment}catch(b){return!1}},A=function(p){if(!Z||typeof p!="object"||p===null)return!1;try{return typeof Z(p)=="number"}catch(b){return!1}};function I(_,p,b){_.length!==0&&fo(_,T=>{T.call(e,p,b,gn)})}let j=function(p,b){return!!(Qt&&p.hasChildNodes()&&!A(p.firstElementChild)&&fn(zT,p.textContent)&&fn(zT,p.innerHTML)||Qt&&p.namespaceURI===bt&&Bz[b]&&(A(p.firstElementChild)||typeof p.textContent=="string"&&fn(Vz[b],p.textContent))||p.nodeType===er.processingInstruction||Qt&&p.nodeType===er.comment&&fn(WT,p.data))},U=function(p,b){if(p instanceof RegExp)return fn(p,b);if(p instanceof Function){for(var T=arguments.length,L=new Array(T>2?T-2:0),V=2;V=0;--fe){let Ae=p===T?u(V[fe],!0):V[fe];L.insertBefore(Ae,O(p))}}}return pt(p),!0},J=function(p,b,T,L){return p.length===0?b:b===T||b===L?tr(b):b},ce=function(p,b){return p===b||x(p)!==null?!1:(ui&&Er(p),!0)},Ce=function(p,b){if(I(me.beforeSanitizeElements,p,null),ce(p,b))return!0;if(C(p))return pt(p),!0;let T=Te(X(p));if(ke=J(me.uponSanitizeElement,ke,kn,te),I(me.uponSanitizeElement,p,{tagName:T,allowedTags:ke}),ce(p,b))return!0;if(j(p,T))return pt(p),!0;if(Lt[T]||!(ft.tagCheck instanceof Function&&ft.tagCheck(T))&&!ke[T]){let L=H(p,T,b);return L===!1&&(I(me.afterSanitizeElements,p,null),ce(p,b))?!0:L}if(R(p)===er.element&&!yo(p)||(T==="noscript"||T==="noembed"||T==="noframes")&&fn(Wz,p.innerHTML))return pt(p),!0;if(vt&&p.nodeType===er.text){let L=Q(p.textContent);p.textContent!==L&&(ic(e.removed,{element:p.cloneNode()}),p.textContent=L)}return I(me.afterSanitizeElements,p,null),ce(p,b)},Ie=function(p,b,T){if(Qr[b]||yi(b,p)||cr&&(b==="id"||b==="name")&&(T in t||T in Aa))return!1;let L=be[b]||ft.attributeCheck instanceof Function&&ft.attributeCheck(b,p);return lr&&fn(or,b)||Tr&&fn(di,b)?!0:L?ws[b]||fn(Dn,sc(T,qr,""))||(b==="src"||b==="xlink:href"||b==="href")&&p!=="script"&&ET(T,"data:")===0&&Ii[p]||rn&&!fn(bs,sc(T,qr,""))?!0:!T:at(p)&&U(st.tagNameCheck,p)&&U(st.attributeNameCheck,b,p)||b==="is"&&st.allowCustomizedBuiltInElements&&U(st.tagNameCheck,T)},Be=Fe({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),at=function(p){return!Be[ac(p)]&&fn(ys,p)},dt=function(p,b,T,L){if(W&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!T)switch(d.getAttributeType(p,b)){case"TrustedHTML":return we(L);case"TrustedScriptURL":return B(L)}return L},sn=function(p,b,T,L){try{return T?p.setAttributeNS(T,b,L):p.setAttribute(b,L),C(p)?(pt(p),!1):!0}catch(V){return Dt(b,p),!1}},Rr=function(p,b){if(I(me.beforeSanitizeAttributes,p,null),ce(p,b))return;let T=p.attributes;if(!T||C(p))return;be=J(me.uponSanitizeAttribute,be,ar,ge);let L={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:be,forceKeepAttr:void 0},V=T.length,le=Te(p.nodeName);for(;V--;){let fe=T[V],Ae=fe.name,ht=fe.namespaceURI,tt=fe.value,Xn=Te(Ae),Cs=tt,je=Ae==="value"?Cs:xz(Cs),Ra=!1;if(L.attrName=Xn,L.attrValue=je,L.keepAttr=!0,L.forceKeepAttr=void 0,I(me.uponSanitizeAttribute,p,L),je=L.attrValue,dr&&(Xn==="id"||Xn==="name")&&ET(je,hi)!==0&&(Dt(Ae,p,fe),je=hi+je,Ra=!0),Qt&&fn(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,je)){Dt(Ae,p,fe);continue}if(Xn==="attributename"&&_T(je,"href")){Dt(Ae,p,fe);continue}if(!L.forceKeepAttr){if(!L.keepAttr){Dt(Ae,p,fe);continue}if(!Ar&&fn(Nz,je)){Dt(Ae,p,fe);continue}if(vt&&(je=Q(je)),!Ie(le,Xn,je)){Dt(Ae,p,fe);continue}je=dt(le,Xn,ht,je),je!==Cs&&sn(p,Ae,ht,je)&&Ra&&CT(e.removed)}}I(me.afterSanitizeAttributes,p,null),ce(p,b)},In=function(p){let b=null,T=y(p);for(I(me.beforeSanitizeShadowDOM,p,null);b=T.nextNode();)if(I(me.uponSanitizeShadowNode,b,null),Ce(b,p),Rr(b,p),E(b.content)&&In(b.content),R(b)===er.element){let L=D(b);E(L)&&(Si(L),In(L))}I(me.afterSanitizeShadowDOM,p,null)},Si=function(p){let b=[{node:p,shadow:null}];for(;b.length>0;){let T=b.pop();if(T.shadow){In(T.shadow);continue}let L=T.node,V=R(L)===er.element,le=S(L);if(le)for(let fe=le.length-1;fe>=0;--fe)b.push({node:le[fe],shadow:null});if(V){let fe=k?k(L):null;if(typeof fe=="string"&&Te(fe)==="template"){let Ae=L.content;E(Ae)&&b.push({node:Ae,shadow:null})}}if(V){let fe=D(L);E(fe)&&b.push({node:null,shadow:fe},{node:fe,shadow:null})}}};return e.sanitize=function(_){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},b=null,T=null,L=null,V=null;if(fi=!_,fi&&(_=""),typeof _!="string"&&!A(_)&&(_=Tz(_),typeof _!="string"))throw ps("dirty is not a string, aborting");if(!e.isSupported)return _;Y?(ke=te,be=ge):Oi(p),(me.uponSanitizeElement.length>0||me.uponSanitizeAttribute.length>0)&&(ke=tr(ke)),me.uponSanitizeAttribute.length>0&&(be=tr(be)),e.removed=[];let le=ui&&typeof _!="string"&&A(_);if(le){Ea(_);let ht=X(_);if(typeof ht=="string"){let tt=Te(ht);if(!ke[tt]||Lt[tt])throw $n(_),ps("root node is forbidden and cannot be sanitized in-place")}if(C(_))throw $n(_),ps("root node is clobbered and cannot be sanitized in-place");try{Si(_)}catch(tt){throw $n(_),tt}}else if(A(_))b=As(""),T=b.ownerDocument.importNode(_,!0),T.nodeType===er.element&&T.nodeName==="BODY"||T.nodeName==="HTML"?b=T:b.appendChild(T),Si(b);else{if(!Le&&!vt&&!ie&&_.indexOf("<")===-1)return W&&xt?we(_):_;if(b=As(_),!b)return Le?null:xt?ne:""}b&&Ke&&pt(b.firstChild);let fe=le?_:b;try{let ht=y(fe);for(;L=ht.nextNode();)Ce(L,fe),Rr(L,fe),E(L.content)&&In(L.content)}catch(ht){throw le&&($n(_),fo(e.removed,tt=>{tt.element&&Er(tt.element)})),ht}if(le){let ht=!1;if(fo(e.removed,tt=>{tt.element&&(tt.element===_&&(ht=!0),Er(tt.element))}),ht)throw ps("a node selected for removal could not be safely returned; refusing to sanitize in place");return vt&&v(_),_}if(Le){if(vt&&v(b),ot)for(V=Ge.call(b.ownerDocument);b.firstChild;)V.appendChild(b.firstChild);else V=b;return(be.shadowroot||be.shadowrootmode)&&(V=Ot.call(r,V,!0)),V}let Ae=ie?b.outerHTML:b.innerHTML;return ie&&ke["!doctype"]&&b.ownerDocument&&b.ownerDocument.doctype&&b.ownerDocument.doctype.name&&fn(Xz,b.ownerDocument.doctype.name)&&(Ae=" +`+Ae),vt&&(Ae=Q(Ae)),W&&xt?we(Ae):Ae},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oi(_),Y=!0,te=ke,ge=be},e.clearConfig=function(){gn=null,Y=!1,te=null,ge=null,W=de,ne=""},e.isValidAttribute=function(_,p,b){gn||Oi({});let T=Te(_),L=Te(p);return Ie(T,L,b)},e.addHook=function(_,p){typeof p=="function"&&Ln(me,_)&&ic(me[_],p)},e.removeHook=function(_,p){if(Ln(me,_)){if(p!==void 0){let b=vz(me[_],p);return b===-1?void 0:wz(me[_],b,1)[0]}return CT(me[_])}},e.removeHooks=function(_){Ln(me,_)&&(me[_]=[])},e.removeAllHooks=function(){me=NT()},e}var jz=YT();jT.exports=jz});var y0=Of(Qf());var $c=[{id:"vcs",title:"Making Games For The Atari 2600",url:"https://www.amazon.com/dp/1541021304",image:"book_a2600.png",platforms:["vcs"]},{id:"arcade",title:"Making 8-bit Arcade Games in C",url:"https://www.amazon.com/dp/1545484759",image:"book_arcade.png",platforms:["mw8080bw","vicdual","galaxian","galaxian-scramble","vector-z80color","williams-z80"]},{id:"verilog",title:"Designing Video Game Hardware in Verilog",url:"https://www.amazon.com/dp/1728619440",image:"book_verilog.png",platforms:["verilog"]},{id:"nes",title:"Making Games for the NES",url:"https://www.amazon.com/dp/1075952727",image:"book_nes.png",platforms:["nes"]},{id:"c64",title:"Making Games for the C-64",url:"https://www.amazon.com/dp/B0DMKH8NGL",image:"book_c64.png",platforms:["c64"]}];function V0(n){var e=Nt(n),t=Mr(n);return $c.find(r=>r.platforms.includes(e))||$c.find(r=>r.platforms.includes(t))}var _s="\u2190\u2191\u2193\u2192";var Tc=[{keys:[_s],action:"Joypad"},{keys:["Space"],action:"Button A"},{keys:["Shift"],action:"Button B"}],Tf=[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Button 1"},{keys:["Shift"],action:"Button 2"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"}],Qc=[...Tc,{keys:["\\"],action:"Select"},{keys:["Enter"],action:"Start"}],F0=[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Button"}],Y0={vcs:F0,c64:F0,apple2:[{keys:["Mouse"],action:"Paddles/Joystick"},{keys:["Click"],action:"Button 1"},{keys:["SHIFT-Click"],action:"Button 2"},{keys:["ALT-Click"],action:"Button 3"}],nes:Qc,atari7800:Qc,pce:Qc,gb:Qc,msx:Tc,coleco:Tc,sms:[...Tc,{keys:["Enter"],action:"Start"}],vicdual:Tf,galaxian:Tf,vector:Tf,mw8080bw:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"}],williams:[{keys:["A W S D"],action:"Move"},{keys:[_s],action:"Fire"},{keys:["\\"],action:"Coin"},{keys:["Enter"],action:"Start"},{keys:["6 7 8 9"],action:"Extra"}],astrocade:[{keys:[_s],action:"Joystick"},{keys:["Space"],action:"Trigger"},{keys:["Mouse X"],action:"Knob"},{keys:[`U I O P J K L / 7 8 9 X 4 5 6 - 1 2 3 , -\\ 0 . =`],action:"Keypad"}],vectrex:[{keys:[_s],action:"Joystick"},{keys:["Z X C V"],action:"Buttons"}],atari8:[{keys:[_s],action:"Joystick"},{keys:["Shift"],action:"Button"},{keys:["F1"],action:"Start"},{keys:["F2"],action:"Select"},{keys:["F3"],action:"Option"}],pacman:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"},{keys:["5","6"],action:"Coin"},{keys:["Enter","2"],action:"Start"}]};var XA={left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown"},Af=null;function Po(){if(Af===null){var n=typeof navigator!="undefined"?navigator:null;Af=!!n&&/mac|iphone|ipad|ipod/i.test(n.platform||n.userAgent||"")}return Af}function _f(n){var e=n.toLowerCase().split("+"),t=e.pop(),r={mod:!1,shift:!1,key:""};for(var i of e)if(i=="mod"||i=="ctrl"||i=="meta"||i=="cmd")r.mod=!0;else if(i=="shift")r.shift=!0;else return console.warn('Keyboard shortcut "'+n+'": unsupported modifier "'+i+'" (alt is layout-dependent), skipping'),null;t=XA[t]||t;var s=/^[a-z]$/.test(t),o=/^f([1-9]|1[0-2])$/.test(t);return!s&&!o&&!/^[0-9]$/.test(t)&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+n+'": key "'+t+'" is layout-dependent (use a-z, 0-9, f1-f12), skipping'),null):r.shift&&!s&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+n+'": shift is only allowed with letters and arrows, skipping'),null):(r.key=t,r)}function zA(n,e){if(e.altKey)return!1;var t=Po(),r=t?e.metaKey:e.ctrlKey,i=t?e.ctrlKey:e.metaKey;return n.mod!==r||i||n.shift!==e.shiftKey?!1:(e.key||"").toLowerCase()===n.key}var Ac=class{constructor(){this.bindings=[];this.handler=e=>{if(!e.defaultPrevented)for(var t=0;te.indexOf(c)>=0);for(var o of e)s.indexOf(o)<0&&s.push(o);var a=s.map(c=>r?VA[c]||c:FA[c]||c).join(r?"":"+"),l=/^[a-z][0-9]?$/.test(t)?t.toUpperCase():YA[t]||(r?t:t.charAt(0).toUpperCase()+t.slice(1));return(a?a+(r?"":"+"):"")+l}var Mf=class{constructor(e){this.shortcutsSig="";this.status={};this.visible=!0;this.pendingShortcuts=!1;this.pendingStatus=!1;this.div=e,this.shortcutsZone=$(document.createElement("span")).addClass("shortcuts_zone"),this.statusZone=$(document.createElement("span")).addClass("status_zone"),$(e).append(this.shortcutsZone).append(this.statusZone)}setShortcuts(e){if(this.visible){var t=e.map(s=>s.key+""+s.label).join("");if(t!==this.shortcutsSig){if(Za){this.pendingShortcuts=!0;return}this.shortcutsSig=t,this.shortcutsZone.empty();for(var r of e){var i=$(document.createElement("span")).addClass("shortcut");i.append($(document.createElement("kbd")).text(Lf(r.key))),i.append(document.createTextNode(" "+r.label)),r.fn&&U0(i,r.fn),this.shortcutsZone.append(i)}}}}setStatus(e,t){t?this.status[e]=t:delete this.status[e],this.renderStatus()}renderStatus(){if(this.visible){if(Za){this.pendingStatus=!0;return}this.statusZone.empty();for(var e of Object.keys(this.status)){var t=this.status[e],r=$(document.createElement("span")).addClass("status_item");t.cls&&r.addClass(t.cls),t.title&&r.prop("title",t.title),r.text(t.text),t.fn&&U0(r,t.fn),this.statusZone.append(r)}}}};function U0(n,e){n.addClass("clickable"),n.mousedown(t=>t.preventDefault()),n.click(e)}var Za=!1;function q0(){zn&&(zn.pendingShortcuts&&(zn.pendingShortcuts=!1,Wn()),zn.pendingStatus&&(zn.pendingStatus=!1,zn.renderStatus()))}function jA(){$(document).on("mousedown.shortcutbar",()=>{Za=!0}),$(document).on("mouseup.shortcutbar",()=>{Za=!1,q0()}),$(window).on("blur.shortcutbar",()=>{Za=!1,q0()})}var zn=null;function G0(n){zn=new Mf(n),jA()}var H0=()=>[],K0=()=>[];function J0(n){H0=n}function ey(n){K0=n}function Cc(n){$(document.body).toggleClass("statusbar-hidden",!n),zn&&(zn.visible=n,n&&(zn.shortcutsSig="",zn.renderStatus(),Wn()))}function Wn(){if(zn){var n=[...H0(),...K0()],e=document.activeElement;for(var t of ty)e&&t.div.contains(e)&&(n=n.concat(t.fn()));zn.setShortcuts(n.filter(r=>!UA(r.key)))}}var ty=[];function ny(n,e){ty.push({div:n,fn:e})}function UA(n){var e=n.toLowerCase();return!Po()&&(e=="mod+shift+i"||e=="mod+shift+j"||e=="mod+shift+k"||e=="ctrl+alt+t"||e=="ctrl+alt+l")}function qA(){return z0()}function GA(n){if(n._8bwPatched)return n;var e=n.stopCallback;return n.stopCallback=function(t,r,i,s){return t&&(t.ctrlKey||t.altKey||t.metaKey)?t.getModifierState&&t.getModifierState("AltGraph")?e.call(this,t,r,i,s):!1:e.call(this,t,r,i,s)},n._8bwPatched=!0,n}var Wi=class{constructor(e,t){this.boundkeys=[];let r=GA(qA());this.focusDiv=t,this.keybinder=new Ac,this.keybinder.attach(),this.mousetrap=t?new r(t):r,this.span=$(document.createElement("span")).addClass("btn_toolbar"),e.appendChild(this.span[0]),this.newGroup()}destroy(){if(this.span&&(this.span.remove(),this.span=null),this.keybinder&&(this.keybinder.detach(),this.keybinder.unbindAll(),this.keybinder=null),this.mousetrap){for(var e of this.boundkeys)this.mousetrap.unbind(e);this.mousetrap=null}}newGroup(){return this.grp=$(document.createElement("span")).addClass("btn_group").appendTo(this.span).hide()}add(e,t,r,i){var s=null;return r&&(s=$(document.createElement("button")).addClass("btn"),r.startsWith("glyphicon")&&(r=''),s.html(r),s.prop("title",e?t+" ("+Lf(e)+")":t),s.click(i),this.grp.append(s).show()),e&&(!this.focusDiv&&_f(e)?this.keybinder.bind(e,i):(this.mousetrap.bind(e,(o,a)=>(i(o,a),!1)),this.boundkeys.push(e))),s}};var ry=[];function iy(n,e){ry.push({div:n,id:e})}function sy(){let n=document.activeElement;if(!n)return null;for(let e of ry)if(e.div.contains(n))return e.id;return null}function Nn(n){var e=n&&n.w+"px"||"100%",t=n&&n.h+"px"||"100%",r=this.itemHeight=n.itemHeight;this.items=n.items,this.generatorFn=n.generatorFn,this.totalRows=n.totalRows||n.items&&n.items.length;var i=Nn.createScroller(r*this.totalRows);this.container=Nn.createContainer(e,t),this.container.appendChild(i);var s=Math.ceil(n.h/r);this.cachedItemsLen=s*3,this._renderChunk(this.container,0);var o=this,a,l=s*r,c=0;this.rmNodeInterval=setInterval(function(){if(Date.now()-c>100)for(var h=document.querySelectorAll('[data-rm="1"]'),u=0,f=h.length;ul){var f=Math.floor(u/r)-s;o._renderChunk(o.container,f<0?0:f),a=u}c=Date.now(),h.preventDefault&&h.preventDefault()}this.container.addEventListener("scroll",d)}Nn.prototype.createRow=function(n){var e;if(this.generatorFn)e=this.generatorFn(n);else if(this.items)if(typeof this.items[n]=="string"){var t=document.createTextNode(this.items[n]);e=document.createElement("div"),e.style.height=this.itemHeight+"px",e.appendChild(t)}else e=this.items[n];return e.classList.add("vrow"),e.setAttribute("data-index",""+n),e.style.position="absolute",e.style.top=n*this.itemHeight+"px",e};Nn.prototype._renderChunk=function(n,e){var t=e+this.cachedItemsLen;t>this.totalRows&&(t=this.totalRows);for(var r=document.createDocumentFragment(),i=e;ithis.setZoom(this.zoom*2)},{key:"-",label:"Zoom Out",icon:"glyphicon-zoom-out",fn:()=>this.setZoom(this.zoom/2)},{key:"ctrl+shift+left",label:"To Start",icon:"glyphicon-backward",fn:()=>{this.setSelTime(0),this.setOrgTime(0)}},{key:"shift+left",label:"Page Left",icon:"glyphicon-fast-backward",fn:()=>this.setSelTime(this.tsel-this.clocksPerPage/4)},{key:"left",label:"Left",icon:"glyphicon-step-backward",fn:()=>this.setSelTime(this.tsel-1)},{key:"right",label:"Right",icon:"glyphicon-step-forward",fn:()=>this.setSelTime(this.tsel+1)},{key:"shift+right",label:"Page Right",icon:"glyphicon-fast-forward",fn:()=>this.setSelTime(this.tsel+this.clocksPerPage/4)},{key:"space",label:"Go To Current",icon:"glyphicon-flash",fn:()=>{this.setOrgTime(this.tnow),this.setSelTime(this.tnow)}},{key:"h",label:"Hex/Dec",icon:"glyphicon-barcode",fn:()=>{this.hexformat=!this.hexformat,this.refresh()}}]}roundT(e){return e=Math.round(e),e=Math.max(0,e),e=Math.min(this.clockMax+this.clocksPerPage/2,e),e}setOrgTime(e){this.t0=this.roundT(e),this.refresh()}setCurrentTime(e){this.tnow=this.roundT(e),this.refresh()}setSelTime(e){e=this.roundT(e),e>=this.t0+this.clocksPerPage-1&&(this.t0+=this.clocksPerPage/4),e<=this.t0+2&&(this.t0-=this.clocksPerPage/4),this.tsel=e,this.setOrgTime(this.t0),this.selectionChanged()}setClocksPerPage(){this.clocksPerPage=Math.floor(this.pageWidth/this.zoom)-1}setZoom(e){this.zoom=Math.max(1/16,Math.min(64,e)),this.setClocksPerPage(),this.t0=Math.max(0,Math.round(this.tsel-this.clocksPerPage/2)),this.refresh()}refresh(){if(this.meta||this.recreate(),!!this.meta)for(var e=0;e3&&(i=`${t.len}'h${i}`),i}isEditable(e){return e&&e.input&&HA.indexOf(e.label)<0}refreshRow(e){var t=this.lines[e],r=this.meta[e];if(!t||!r)return;var i=r.label=="clk",s=t.width,o=t.height,a=t.getContext("2d"),l="14px Andale Mono, Lucida Console, monospace",c="10px Andale Mono, Lucida Console, monospace";a.font=l,a.clearRect(0,0,t.width,t.height);var d=[];this.isEditable(r)&&d.push("input");var h=12,u=h+4,f=4,m=o-u-f,O=r.len==32?4294967296:(1<1&&this.zoom>=32,D=u+m-4;a.fillStyle="#336633",a.fillRect(0,h/2,3,u+m-h/2);let M=a.strokeStyle="#33dd33",Z=a.fillStyle="#66ffff",k="#dddddd";a.beginPath();for(var w=0,R=0,X=-1,W=0;W4&&(a.font=c),a.fillText(q,w+this.zoom/4,de)}W>0&&a.lineTo(w,R),R=u+(1-ne/O)*m,i||(w+=this.zoom*(1/8)),W==0?a.moveTo(w,R):a.lineTo(w,R),this.zoom>.75&&X!=ne&&Math.abs(X-ne)=this.t0){a.strokeStyle=a.fillStyle="#ff66ff",a.beginPath(),w=(this.tsel-this.t0)*this.zoom+this.zoom/2,a.moveTo(w,0),a.lineTo(w,o),a.stroke();var ne=S[this.tsel-this.t0];if(a.textAlign="right",ne!==void 0){var pe=this.value2str(ne,r),w=s-h,ve=a.measureText(pe);a.fillStyle="black",a.fillRect(w-ve.width-2,D-13,ve.width+4,17),a.fillStyle="#ff66ff",a.fillText(pe,w,D)}}this.tnow>=this.t0&&(a.strokeStyle=a.fillStyle="#6666cc",a.beginPath(),w=(this.tnow-this.t0)*this.zoom+this.zoom/2,a.moveTo(w,0),a.lineTo(w,o),a.stroke()),a.fillStyle=k,a.textAlign="left";var we=r.label;d.length>0&&(we+=" ("+d.join(", ")+")"),a.fillText(we,5,h)}changeInputValue(e){var t=this.meta[e];if(t){var r=this.wfp.getSignalData(e,this.t0,1),i=r[0]||0,s=0,o=(1<0?0:1):this.promptValue(t,i,s,o).then(a=>{a!=null&&a>=s&&a<=o&&this.wfp.setSignalValue(e,a)})}}};function KA(n,e){this.v=n,this.k=e}function oy(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,r=Array(e);t2?r-2:0),s=2;s1?t-1:0),i=1;i1?t-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:Wa;if(ay&&ay(n,null),!$o(e))return n;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let s=t(i);s!==i&&(iC(e)||(e[r]=s),i=s)}n[i]=!0}return n}function fC(n){for(let e=0;e/g),SC=Bt(/\${[\w\W]*/g),vC=Bt(/^data-[\-\w.\u00B7-\uFFFF]+$/),wC=Bt(/^aria-[\-\w]+$/),Oy=Bt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),xC=Bt(/^(?:\w+script|data):/i),PC=Bt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),kC=Bt(/^html$/i),$C=Bt(/^[a-z][.\w]*(-[.\w]+)+$/i),by=Bt(/<[/\w!]/g),yy=Bt(/<[/\w]/g),QC=Bt(/<\/no(script|embed|frames)/i),TC=Bt(/\/>/i),Bn={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},xy=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],AC=It(Ve({},xy)),CC=(function(){let n={};return Es(xy,e=>{n[e]=Bt(new RegExp("])","i"))}),It(n)})(),_C=function(){return typeof window=="undefined"?null:window},EC=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(r=t.getAttribute(i));let s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch(o){return console.warn("TrustedTypes policy "+s+" could not be created."),null}},Sy=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Bi=function(e,t,r,i){return Qn(e,t)&&$o(e[t])?Ve(i.base?Vn(i.base):{},e[t],i.transform):r},Wf=function(e,t,r){let i=Qn(e,t)?e[t]:void 0;return i&&typeof i=="object"?Vn(i):r()};function Py(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_C(),e=_=>Py(_);if(e.version="3.4.16",e.removed=[],!n||!n.document||n.document.nodeType!==Bn.document||!n.Element)return e.isSupported=!1,e;let t=n.document,r=t,i=r.currentScript;n.DocumentFragment;let s=n.HTMLTemplateElement,o=n.Node,a=n.Element,l=n.NodeFilter;n.NamedNodeMap===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;let c=n.DOMParser,d=n.trustedTypes,h=a.prototype,u=ur(h,"cloneNode"),f=ur(h,"remove"),m=ur(h,"removeAttributeNode"),O=ur(h,"nextSibling"),S=ur(h,"childNodes"),x=ur(h,"parentNode"),D=ur(h,"shadowRoot"),M=ur(h,"attributes"),Z=o&&o.prototype?ur(o.prototype,"nodeType"):null,k=o&&o.prototype?ur(o.prototype,"nodeName"):null,w=o&&o.prototype?ur(o.prototype,"ownerDocument"):null,R=function(p){return Z?Z(p):p.nodeType},X=function(p){return k?k(p):p.nodeName};if(typeof s=="function"){let _=t.createElement("template");_.content&&_.content.ownerDocument&&(t=_.content.ownerDocument)}let W,ne="",de,q=!1,pe=0,ve=function(){if(pe>0)throw Ni('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},we=function(p){ve(),pe++;try{return W.createHTML(p)}finally{pe--}},B=function(p){ve(),pe++;try{return W.createScriptURL(p)}finally{pe--}},ue=function(){return q||(de=EC(d,i),q=!0),de},G=t,Pe=G.implementation,Qe=G.createNodeIterator,Ge=G.createDocumentFragment,He=G.getElementsByTagName,Ot=r.importNode,me=Sy();e.isSupported=typeof vy=="function"&&typeof x=="function"&&Pe&&Pe.createHTMLDocument!==void 0;let nn=bC,ir=yC,sr=SC,or=vC,di=wC,bs=xC,qr=PC,ys=$C,Dn=Oy,ke=null,kn=Ve({},[...fy,...Zf,...If,...Xf,...py]),be=null,ar=Ve({},[...my,...zf,...gy,...Rc]),st=Object.seal(ko(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Lt=null,Qr=null,ft=Object.seal(ko(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Tr=!0,lr=!0,rn=!1,Ar=!0,vt=!1,Qt=!0,ie=!1,Y=!1,te=null,ge=null,Ke=!1,Le=!1,ot=!1,xt=!1,cr=!0,dr=!1,hi="user-content-",Gr=!0,ui=!1,wt={},pn=null,Ss=Ve({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Ii=null,vs=Ve({},["audio","video","img","source","image","track"]),ws=null,xs=Ve({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Cr="http://www.w3.org/1998/Math/MathML",_r="http://www.w3.org/2000/svg",bt="http://www.w3.org/1999/xhtml",mn=bt,fi=!1,pi=null,ka=Ve({},[Cr,_r,bt],Df),Xi=It(["mi","mo","mn","ms","mtext"]),mi=Ve({},Xi),Ps=It(["annotation-xml"]),gi=Ve({},Ps),$a=Ve({},["title","style","font","a","script"]),Zn=null,Qa=["application/xhtml+xml","text/html"],Ta="text/html",Te=null,gn=null,Aa=t.createElement("form"),ks=function(p){return p instanceof RegExp||p instanceof Function},Oi=function(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(gn&&gn===p)return;(!p||typeof p!="object")&&(p={}),p=Vn(p),Zn=Qa.indexOf(p.PARSER_MEDIA_TYPE)===-1?Ta:p.PARSER_MEDIA_TYPE,Te=Zn==="application/xhtml+xml"?Df:Wa,ke=Bi(p,"ALLOWED_TAGS",kn,{transform:Te}),be=Bi(p,"ALLOWED_ATTR",ar,{transform:Te}),pi=Bi(p,"ALLOWED_NAMESPACES",ka,{transform:Df}),ws=Bi(p,"ADD_URI_SAFE_ATTR",xs,{transform:Te,base:xs}),Ii=Bi(p,"ADD_DATA_URI_TAGS",vs,{transform:Te,base:vs}),pn=Bi(p,"FORBID_CONTENTS",Ss,{transform:Te}),Lt=Bi(p,"FORBID_TAGS",Vn({}),{transform:Te}),Qr=Bi(p,"FORBID_ATTR",Vn({}),{transform:Te}),wt=Qn(p,"USE_PROFILES")?p.USE_PROFILES&&typeof p.USE_PROFILES=="object"?Vn(p.USE_PROFILES):p.USE_PROFILES:!1,Tr=p.ALLOW_ARIA_ATTR!==!1,lr=p.ALLOW_DATA_ATTR!==!1,rn=p.ALLOW_UNKNOWN_PROTOCOLS||!1,Ar=p.ALLOW_SELF_CLOSE_IN_ATTR!==!1,vt=p.SAFE_FOR_TEMPLATES||!1,Qt=p.SAFE_FOR_XML!==!1,ie=p.WHOLE_DOCUMENT||!1,Le=p.RETURN_DOM||!1,ot=p.RETURN_DOM_FRAGMENT||!1,xt=p.RETURN_TRUSTED_TYPE||!1,Ke=p.FORCE_BODY||!1,cr=p.SANITIZE_DOM!==!1,dr=p.SANITIZE_NAMED_PROPS||!1,Gr=p.KEEP_CONTENT!==!1,ui=p.IN_PLACE||!1,Dn=mC(p.ALLOWED_URI_REGEXP)?p.ALLOWED_URI_REGEXP:Oy,mn=typeof p.NAMESPACE=="string"?p.NAMESPACE:bt,mi=Wf(p,"MATHML_TEXT_INTEGRATION_POINTS",()=>Ve({},Xi)),gi=Wf(p,"HTML_INTEGRATION_POINTS",()=>Ve({},Ps));let b=Wf(p,"CUSTOM_ELEMENT_HANDLING",()=>ko(null));if(st=ko(null),Qn(b,"tagNameCheck")&&ks(b.tagNameCheck)&&(st.tagNameCheck=b.tagNameCheck),Qn(b,"attributeNameCheck")&&ks(b.attributeNameCheck)&&(st.attributeNameCheck=b.attributeNameCheck),Qn(b,"allowCustomizedBuiltInElements")&&typeof b.allowCustomizedBuiltInElements=="boolean"&&(st.allowCustomizedBuiltInElements=b.allowCustomizedBuiltInElements),Bt(st),vt&&(lr=!1),ot&&(Le=!0),wt&&(ke=Ve({},py),be=ko(null),wt.html===!0&&(Ve(ke,fy),Ve(be,my)),wt.svg===!0&&(Ve(ke,Zf),Ve(be,zf),Ve(be,Rc)),wt.svgFilters===!0&&(Ve(ke,If),Ve(be,zf),Ve(be,Rc)),wt.mathMl===!0&&(Ve(ke,Xf),Ve(be,gy),Ve(be,Rc))),ft.tagCheck=null,ft.attributeCheck=null,Qn(p,"ADD_TAGS")&&(typeof p.ADD_TAGS=="function"?ft.tagCheck=p.ADD_TAGS:$o(p.ADD_TAGS)&&(ke===kn&&(ke=Vn(ke)),Ve(ke,p.ADD_TAGS,Te))),Qn(p,"ADD_ATTR")&&(typeof p.ADD_ATTR=="function"?ft.attributeCheck=p.ADD_ATTR:$o(p.ADD_ATTR)&&(be===ar&&(be=Vn(be)),Ve(be,p.ADD_ATTR,Te))),Qn(p,"ADD_FORBID_CONTENTS")&&$o(p.ADD_FORBID_CONTENTS)&&(pn===Ss&&(pn=Vn(pn)),Ve(pn,p.ADD_FORBID_CONTENTS,Te)),Gr&&(ke["#text"]=!0),ie&&Ve(ke,["html","head","body"]),ke.table&&(Ve(ke,["tbody"]),delete Lt.tbody),p.TRUSTED_TYPES_POLICY){if(typeof p.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ni('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof p.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ni('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let T=W;W=p.TRUSTED_TYPES_POLICY;try{ne=we("")}catch(L){throw W=T,L}}else p.TRUSTED_TYPES_POLICY===null?(W=void 0,ne=""):(W===void 0&&(W=ue()),W&&typeof ne=="string"&&(ne=we("")));It&&It(p),gn=p},$s=Ve({},[...Zf,...If,...gC]),Qs=Ve({},[...Xf,...OC]),Ca=function(p,b,T){return b.namespaceURI===bt?p==="svg":b.namespaceURI===Cr?p==="svg"&&(T==="annotation-xml"||mi[T]):!!$s[p]},bo=function(p,b,T){return b.namespaceURI===bt?p==="math":b.namespaceURI===_r?p==="math"&&gi[T]:!!Qs[p]},bi=function(p,b,T){return b.namespaceURI===_r&&!gi[T]||b.namespaceURI===Cr&&!mi[T]?!1:!Qs[p]&&($a[p]||!$s[p])},yo=function(p){let b=x(p);(!b||!b.tagName)&&(b={namespaceURI:mn,tagName:"template"});let T=Wa(p.tagName),L=Wa(b.tagName);return pi[p.namespaceURI]?p.namespaceURI===_r?Ca(T,b,L):p.namespaceURI===Cr?bo(T,b,L):p.namespaceURI===bt?bi(T,b,L):!!(Zn==="application/xhtml+xml"&&pi[p.namespaceURI]):!1},pt=function(p){Ia(e.removed,{element:p});try{x(p).removeChild(p)}catch(b){if(f(p),!x(p))throw Ni("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Ts=function(p,b,T){try{m(p,b)}catch(L){try{p.removeAttribute(T)}catch(V){}}},$n=function(p){Er(p);let b=S(p);if(b){let L=[];Es(b,V=>{Ia(L,V)}),Es(L,V=>{try{f(V)}catch(le){}})}let T=M(p);if(T)for(let L=T.length-1;L>=0;--L){let V=T[L],le=V&&V.name;typeof le=="string"&&Ts(p,V,le)}},Dt=function(p,b,T){if(!T)try{T=b.getAttributeNode(p)}catch(L){T=null}Ia(e.removed,{attribute:T||null,from:b});try{T?m(b,T):b.removeAttribute(p)}catch(L){try{b.removeAttribute(p)}catch(V){}}if(p==="is")if(Le||ot)try{pt(b)}catch(L){}else try{b.setAttribute(p,"")}catch(L){}},_a=function(p){let b=M(p);if(b)for(let T=b.length-1;T>=0;--T){let L=b[T],V=L&&L.name;typeof V!="string"||be[Te(V)]||Ts(p,L,V)}},Er=function(p){let b=[p];for(;b.length>0;){let T=b.pop();R(T)===Bn.element&&_a(T);let L=S(T);if(L)for(let V=L.length-1;V>=0;--V)b.push(L[V])}},yi=function(p,b){return Qt?p==="patchsrc"?!0:p==="for"&&b!=="label"&&b!=="output":!1},Ea=function(p){if(!Qt)return;let b=[p];for(;b.length>0;){let T=b.pop(),L=R(T);if(L===Bn.processingInstruction||L===Bn.comment&&on(yy,T.data)){try{f(T)}catch(le){}continue}if(L===Bn.element){let le=T,fe=Te(X(T));try{le.hasAttribute&&le.hasAttribute("patchsrc")&&le.removeAttribute("patchsrc"),le.hasAttribute&&le.hasAttribute("for")&&yi("for",fe)&&le.removeAttribute("for")}catch(Ae){}}let V=S(T);if(V)for(let le=V.length-1;le>=0;--le)b.push(V[le])}},As=function(p){let b=null,T=null;if(Ke)p=""+p;else{let le=cy(p,/^[\r\n\t ]+/);T=le&&le[0]}Zn==="application/xhtml+xml"&&mn===bt&&(p=''+p+"");let L=W?we(p):p;if(mn===bt)try{b=new c().parseFromString(L,Zn)}catch(le){}if(!b||!b.documentElement){b=Pe.createDocument(mn,"template",null);try{b.documentElement.innerHTML=fi?ne:L}catch(le){}}let V=b.body||b.documentElement;return p&&T&&V.insertBefore(t.createTextNode(T),V.childNodes[0]||null),mn===bt?He.call(b,ie?"html":"body")[0]:ie?b.documentElement:V},y=function(p){let b=w?w(p):p.ownerDocument;return Qe.call(b||p,p,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Q=function(p){return p=Xa(p,nn," "),p=Xa(p,ir," "),p=Xa(p,sr," "),p},v=function(p){var b;p.normalize();let T=w?w(p):p.ownerDocument,L=Qe.call(T||p,p,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),V=L.nextNode();for(;V;)V.data=Q(V.data),V=L.nextNode();let le=(b=p.querySelectorAll)===null||b===void 0?void 0:b.call(p,"template");le&&Es(le,fe=>{E(fe.content)&&v(fe.content)})},C=function(p){let b=k?k(p):null;return typeof b!="string"||Te(b)!=="form"?!1:typeof p.nodeName!="string"||typeof p.textContent!="string"||typeof p.removeChild!="function"||p.attributes!==M(p)||typeof p.removeAttribute!="function"||typeof p.removeAttributeNode!="function"||typeof p.getAttributeNode!="function"||typeof p.setAttribute!="function"||typeof p.namespaceURI!="string"||typeof p.insertBefore!="function"||typeof p.hasChildNodes!="function"||p.nodeType!==Z(p)||p.childNodes!==S(p)},E=function(p){if(!Z||typeof p!="object"||p===null)return!1;try{return Z(p)===Bn.documentFragment}catch(b){return!1}},A=function(p){if(!Z||typeof p!="object"||p===null)return!1;try{return typeof Z(p)=="number"}catch(b){return!1}};function I(_,p,b){_.length!==0&&Es(_,T=>{T.call(e,p,b,gn)})}let j=function(p,b){return!!(Qt&&p.hasChildNodes()&&!A(p.firstElementChild)&&on(by,p.textContent)&&on(by,p.innerHTML)||Qt&&p.namespaceURI===bt&&AC[b]&&(A(p.firstElementChild)||typeof p.textContent=="string"&&on(CC[b],p.textContent))||p.nodeType===Bn.processingInstruction||Qt&&p.nodeType===Bn.comment&&on(yy,p.data))},U=function(p,b){if(p instanceof RegExp)return on(p,b);if(p instanceof Function){for(var T=arguments.length,L=new Array(T>2?T-2:0),V=2;V=0;--fe){let Ae=p===T?u(V[fe],!0):V[fe];L.insertBefore(Ae,O(p))}}}return pt(p),!0},J=function(p,b,T,L){return p.length===0?b:b===T||b===L?Vn(b):b},ce=function(p,b){return p===b||x(p)!==null?!1:(ui&&Er(p),!0)},Ce=function(p,b){if(I(me.beforeSanitizeElements,p,null),ce(p,b))return!0;if(C(p))return pt(p),!0;let T=Te(X(p));if(ke=J(me.uponSanitizeElement,ke,kn,te),I(me.uponSanitizeElement,p,{tagName:T,allowedTags:ke}),ce(p,b))return!0;if(j(p,T))return pt(p),!0;if(Lt[T]||!(ft.tagCheck instanceof Function&&ft.tagCheck(T))&&!ke[T]){let L=H(p,T,b);return L===!1&&(I(me.afterSanitizeElements,p,null),ce(p,b))?!0:L}if(R(p)===Bn.element&&!yo(p)||(T==="noscript"||T==="noembed"||T==="noframes")&&on(QC,p.innerHTML))return pt(p),!0;if(vt&&p.nodeType===Bn.text){let L=Q(p.textContent);p.textContent!==L&&(Ia(e.removed,{element:p.cloneNode()}),p.textContent=L)}return I(me.afterSanitizeElements,p,null),ce(p,b)},Ie=function(p,b,T){if(Qr[b]||yi(b,p)||cr&&(b==="id"||b==="name")&&(T in t||T in Aa))return!1;let L=be[b]||ft.attributeCheck instanceof Function&&ft.attributeCheck(b,p);return lr&&on(or,b)||Tr&&on(di,b)?!0:L?ws[b]||on(Dn,Xa(T,qr,""))||(b==="src"||b==="xlink:href"||b==="href")&&p!=="script"&&dy(T,"data:")===0&&Ii[p]||rn&&!on(bs,Xa(T,qr,""))?!0:!T:at(p)&&U(st.tagNameCheck,p)&&U(st.attributeNameCheck,b,p)||b==="is"&&st.allowCustomizedBuiltInElements&&U(st.tagNameCheck,T)},Be=Ve({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),at=function(p){return!Be[Wa(p)]&&on(ys,p)},dt=function(p,b,T,L){if(W&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!T)switch(d.getAttributeType(p,b)){case"TrustedHTML":return we(L);case"TrustedScriptURL":return B(L)}return L},sn=function(p,b,T,L){try{return T?p.setAttributeNS(T,b,L):p.setAttribute(b,L),C(p)?(pt(p),!1):!0}catch(V){return Dt(b,p),!1}},Rr=function(p,b){if(I(me.beforeSanitizeAttributes,p,null),ce(p,b))return;let T=p.attributes;if(!T||C(p))return;be=J(me.uponSanitizeAttribute,be,ar,ge);let L={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:be,forceKeepAttr:void 0},V=T.length,le=Te(p.nodeName);for(;V--;){let fe=T[V],Ae=fe.name,ht=fe.namespaceURI,tt=fe.value,Xn=Te(Ae),Cs=tt,je=Ae==="value"?Cs:cC(Cs),Ra=!1;if(L.attrName=Xn,L.attrValue=je,L.keepAttr=!0,L.forceKeepAttr=void 0,I(me.uponSanitizeAttribute,p,L),je=L.attrValue,dr&&(Xn==="id"||Xn==="name")&&dy(je,hi)!==0&&(Dt(Ae,p,fe),je=hi+je,Ra=!0),Qt&&on(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,je)){Dt(Ae,p,fe);continue}if(Xn==="attributename"&&cy(je,"href")){Dt(Ae,p,fe);continue}if(!L.forceKeepAttr){if(!L.keepAttr){Dt(Ae,p,fe);continue}if(!Ar&&on(TC,je)){Dt(Ae,p,fe);continue}if(vt&&(je=Q(je)),!Ie(le,Xn,je)){Dt(Ae,p,fe);continue}je=dt(le,Xn,ht,je),je!==Cs&&sn(p,Ae,ht,je)&&Ra&&ly(e.removed)}}I(me.afterSanitizeAttributes,p,null),ce(p,b)},In=function(p){let b=null,T=y(p);for(I(me.beforeSanitizeShadowDOM,p,null);b=T.nextNode();)if(I(me.uponSanitizeShadowNode,b,null),Ce(b,p),Rr(b,p),E(b.content)&&In(b.content),R(b)===Bn.element){let L=D(b);E(L)&&(Si(L),In(L))}I(me.afterSanitizeShadowDOM,p,null)},Si=function(p){let b=[{node:p,shadow:null}];for(;b.length>0;){let T=b.pop();if(T.shadow){In(T.shadow);continue}let L=T.node,V=R(L)===Bn.element,le=S(L);if(le)for(let fe=le.length-1;fe>=0;--fe)b.push({node:le[fe],shadow:null});if(V){let fe=k?k(L):null;if(typeof fe=="string"&&Te(fe)==="template"){let Ae=L.content;E(Ae)&&b.push({node:Ae,shadow:null})}}if(V){let fe=D(L);E(fe)&&b.push({node:null,shadow:fe},{node:fe,shadow:null})}}};return e.sanitize=function(_){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},b=null,T=null,L=null,V=null;if(fi=!_,fi&&(_=""),typeof _!="string"&&!A(_)&&(_=pC(_),typeof _!="string"))throw Ni("dirty is not a string, aborting");if(!e.isSupported)return _;Y?(ke=te,be=ge):Oi(p),(me.uponSanitizeElement.length>0||me.uponSanitizeAttribute.length>0)&&(ke=Vn(ke)),me.uponSanitizeAttribute.length>0&&(be=Vn(be)),e.removed=[];let le=ui&&typeof _!="string"&&A(_);if(le){Ea(_);let ht=X(_);if(typeof ht=="string"){let tt=Te(ht);if(!ke[tt]||Lt[tt])throw $n(_),Ni("root node is forbidden and cannot be sanitized in-place")}if(C(_))throw $n(_),Ni("root node is clobbered and cannot be sanitized in-place");try{Si(_)}catch(tt){throw $n(_),tt}}else if(A(_))b=As(""),T=b.ownerDocument.importNode(_,!0),T.nodeType===Bn.element&&T.nodeName==="BODY"||T.nodeName==="HTML"?b=T:b.appendChild(T),Si(b);else{if(!Le&&!vt&&!ie&&_.indexOf("<")===-1)return W&&xt?we(_):_;if(b=As(_),!b)return Le?null:xt?ne:""}b&&Ke&&pt(b.firstChild);let fe=le?_:b;try{let ht=y(fe);for(;L=ht.nextNode();)Ce(L,fe),Rr(L,fe),E(L.content)&&In(L.content)}catch(ht){throw le&&($n(_),Es(e.removed,tt=>{tt.element&&Er(tt.element)})),ht}if(le){let ht=!1;if(Es(e.removed,tt=>{tt.element&&(tt.element===_&&(ht=!0),Er(tt.element))}),ht)throw Ni("a node selected for removal could not be safely returned; refusing to sanitize in place");return vt&&v(_),_}if(Le){if(vt&&v(b),ot)for(V=Ge.call(b.ownerDocument);b.firstChild;)V.appendChild(b.firstChild);else V=b;return(be.shadowroot||be.shadowrootmode)&&(V=Ot.call(r,V,!0)),V}let Ae=ie?b.outerHTML:b.innerHTML;return ie&&ke["!doctype"]&&b.ownerDocument&&b.ownerDocument.doctype&&b.ownerDocument.doctype.name&&on(kC,b.ownerDocument.doctype.name)&&(Ae=" -`+Ae),vt&&(Ae=Q(Ae)),W&&xt?we(Ae):Ae},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oi(_),Y=!0,te=ke,ge=be},e.clearConfig=function(){gn=null,Y=!1,te=null,ge=null,W=de,ne=""},e.isValidAttribute=function(_,p,b){gn||Oi({});let T=Te(_),L=Te(p);return Ie(T,L,b)},e.addHook=function(_,p){typeof p=="function"&&Qn(me,_)&&Ia(me[_],p)},e.removeHook=function(_,p){if(Qn(me,_)){if(p!==void 0){let b=aC(me[_],p);return b===-1?void 0:lC(me[_],b,1)[0]}return ly(me[_])}},e.removeHooks=function(_){Qn(me,_)&&(me[_]=[])},e.removeAllHooks=function(){me=Sy()},e}var Vi=Py();var RC=Yf(),jf=class extends _c{constructor(t,r){super(r);this.scrollbarWidth=12;this.parent=t,this.parent.setAttribute("tabindex","-1"),this.parent.addEventListener("mousedown",i=>{i.preventDefault(),this.parent.focus()}),ny(this.parent,()=>this.getShortcuts()),iy(this.parent,"verilog-waveform"),this.recreate()}getShortcuts(){return this.getActions()}recreate(){clearTimeout(this.wtimer),this.wtimer=setTimeout(()=>{this.destroy(),this._recreate()},0)}destroy(){this.wavelist&&($(this.wavelist.container).remove(),this.wavelist=null),this.toolbar&&(this.toolbar.destroy(),this.toolbar=null),this.clklabel&&(this.clklabel.remove(),this.clklabel=null)}_recreate(){if(this.meta=this.wfp.getSignalMetadata(),!!this.meta){var t=$(this.parent).width();this.pageWidth=t-this.scrollbarWidth;var r=40;this.setClocksPerPage(),this.clockMax=0,this.wavelist=new Nn({w:t,h:$(this.parent).height(),itemHeight:r,totalRows:this.meta.length+1,generatorFn:a=>{var l=this.meta[a];let c=document.createElement("div"),d=document.createElement("canvas");return d.width=t-12,d.height=r,c.appendChild(d),c.classList.add("waverow"),this.lines[a]=d,this.refreshRow(a),this.isEditable(l)&&(c.onmousedown=h=>{var u=this.meta[a];u&&u.input&&this.changeInputValue(a)},c.classList.add("editable"),c.style.cursor="grab"),c}});var i=this.wavelist.container;i.tabIndex=-1,this.toolbar=new Wi(this.parent,this.parent),this.toolbar.span.css("display","inline-block"),this.clklabel=document.createElement("span"),this.clklabel.innerText="-",$(this.parent).append(this.clklabel),$(this.parent).append(i);var s=!1,o=a=>{this.setSelTime(a.offsetX/this.zoom+this.t0-.5)};$(i).mousedown(a=>{s=!0,o(a)}),$(i).mousemove(a=>{s&&o(a)}),$(i).mouseup(a=>{s=!1}),$(i).on("wheel",a=>{if(Math.abs(a.originalEvent.deltaX)>Math.abs(a.originalEvent.deltaY)){var l=Math.max(-1e3,Math.min(1e3,a.originalEvent.deltaX));l&&this.setOrgTime(this.t0+l)}});for(let a of this.getActions())this.toolbar.add(a.key,a.label,a.icon,a.fn);this.toolbar.add("+","Zoom In",null,()=>this.setZoom(this.zoom*2)),$(window).resize(()=>{this.recreate()})}}selectionChanged(){this.clklabel.innerText=" clk "+this.tsel}promptValue(t,r,i,s){return new Promise(o=>{bootbox.prompt({value:r+"",inputType:"number",title:`Enter new value for "${Vi.sanitize(t.label)}" (${i} to ${s}):`,callback:a=>o(a!=null?parseInt(a):null)})})}},Mc=class{constructor(e,t){this.provider=t;var r=$("#emuoverlay").show();this.topdiv=$('
').appendTo(r)[0],this.topdiv.appendChild(e),this.wavediv=$('
').appendTo(r)[0],this.split=RC([this.topdiv,this.wavediv],{minSize:[0,0],sizes:[99,1],direction:"vertical",gutterSize:16,onDrag:()=>this.resize()})}isVisible(){return this.split.getSizes()[1]>2}show(){this.split.setSizes([0,100])}setCurrentTime(e){this.waveview&&this.waveview.setCurrentTime(e)}update(){this.isVisible()&&(this.waveview?this.waveview.refresh():this.waveview=new jf(this.wavediv,this.provider))}resize(){this.waveview&&this.waveview.recreate()}};function ky(){X0({createScope:(n,e)=>new Mc(n,e),showVideoControls(n){$("#speed_bar, #run_bar, #dbg_record").toggle(n)},showSettleCount(n){n==null?$("#verilog_bar").hide():($("#verilog_bar").show(),$("#settle_label").text(n+""))}})}var nt=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],MC=[...nt,/^\s*[.]?(include|incbin)\s+([^\s;"]+)/gmi],LC=[...nt,/^\s*#pragma\s+compile\s*\(\s*"([^"]+)"\s*\)/gmi],lt=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],Na=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],DC=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function Ty(n){let e=n&&qt(n);return e&&e.includeDirs&&e.includeDirs.length?DC:[]}var $y=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],ZC=[/^[!]src\s+"(.+?)"/gmi],IC=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],XC=[/^\s*(import)\s*"(.+?)"/gmi],zC=[/^\s*%%\s*#include\s+"(.+?)"/gm],WC={cc65:{apple2:"https://cc65.github.io/doc/apple2.html",atari8:"https://cc65.github.io/doc/atari.html",c64:"https://cc65.github.io/doc/c64.html",nes:"https://cc65.github.io/doc/nes.html",pce:"https://cc65.github.io/doc/pce.html",vic20:"https://cc65.github.io/doc/vic20.html",lynx:"https://cc65.github.io/doc/lynx.html"}},qf=3,Uf={default:qf===3?{preloadFS:"sdcc",wasiFSZip:"sdcc-fs.zip"}:{wasiFSZip:"sdcc-fs.zip"},coleco:{preloadFS:"sdcc"},"msx-libcv":{preloadFS:"sdcc"},sms:{preloadFS:"sdcc"},gb:{preloadFS:"sdcc"},cpc:{preloadFS:"sdcc"}},Qy={apple2:{wasiFSZip:"cc65-fs-apple2.zip"},c64:{wasiFSZip:"cc65-fs-c64.zip"},vic20:{wasiFSZip:"cc65-fs-vic20.zip"},nes:{wasiFSZip:"cc65-fs-nes.zip"},atari8:{wasiFSZip:"cc65-fs-atari8.zip"},vector:{wasiFSZip:"cc65-fs-none.zip"},atari7800:{wasiFSZip:"cc65-fs-none.zip"},devel:{wasiFSZip:"cc65-fs-none.zip"},vcs:{wasiFSZip:"cc65-fs-atari2600.zip"},pce:{wasiFSZip:"cc65-fs-pce.zip"},exidy:{wasiFSZip:"cc65-fs-none.zip"}},Qo={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/dasm-assembler/dasm/refs/tags/v2.20.17/docs/dasm.txt",wasmModule:"dasm-wasisdk",version:"2.20.17",includePatterns:MC,linkPatterns:lt},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/8bitworkshop/acme/main/docs/QuickRef.txt",wasmModule:"acme",version:"0.97.1",includePatterns:[...nt,...ZC],linkPatterns:lt},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",version:"2.4.1",includePatterns:nt,linkPatterns:lt},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",helpURL:"https://github.com/camsaul/nesasm",wasmModule:"nesasm",version:"3.1",includePatterns:nt,linkPatterns:lt},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",helpURL:"https://github.com/apple2accumulator/merlin32",wasmModule:"merlin32",version:"1.1.1",includePatterns:[...nt,...$y],linkPatterns:lt},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],includeDirs:["/share/cc65/include","/share/cc65/asminc"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",version:"2.19",defineFlag:"-D",defineInline:!0,platforms:Qy,includePatterns:nt,linkPatterns:lt},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65",".inc"],includeDirs:["/share/cc65/include","/share/cc65/asminc"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",version:"2.19",defineFlag:"-D",defineInline:!1,platforms:Qy,includePatterns:nt,linkPatterns:lt},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65",version:"2.19",linkSymbolFlag:"-D",linkSymbolInline:!1},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h",".sdcc"],includeDirs:["/share/sdcc/include","/include"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc4",version:qf===3?"3.6.5":"4.6.0",versionAlt:qf===3?"4.6.0":"3.6.5",defineFlag:"-D",defineInline:!0,platforms:Uf,includePatterns:nt,linkPatterns:lt},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],includeDirs:["/share/sdcc/include","/include"],editorStyle:"z80",wasmModule:"sdasz80-4",version:"05.50.4+",platforms:Uf,includePatterns:nt,linkPatterns:lt},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:nt,linkPatterns:lt},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdld4",version:"05.50.4-",linkSymbolFlag:"-g",linkSymbolInline:!1},sdas6500:{id:"sdas6500",name:"sdas6500",kind:"assembler",arch:"6502",extensions:[],wasmModule:"sdas6500",version:"05.50.4+",platforms:Uf},sdld6808:{id:"sdld6808",name:"sdld6808",kind:"linker",arch:"6502",extensions:[],wasmModule:"sdld4",version:"05.50.4-",linkSymbolFlag:"-g",linkSymbolInline:!1},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{id:"naken",name:"Naken",kind:"assembler",extensions:[".ns"],helpURL:"https://github.com/mikeakohn/naken_asm",noWorkerBuild:!0},zmac:{id:"zmac",name:"zmac",kind:"assembler",arch:"z80",extensions:[".z"],editorStyle:"z80",helpURL:"https://raw.githubusercontent.com/8bitworkshop/zmac/master/doc.txt",wasmModule:"zmac",version:"28jul2018",includePatterns:nt,linkPatterns:lt},jsasm:{id:"jsasm",name:"JSASM",kind:"assembler",extensions:[".asm"],editorStyle:"z80",includePatterns:Na,linkPatterns:[]},xasm6809:{id:"xasm6809",name:"XASM6809",kind:"assembler",arch:"6809",extensions:[".xasm"],editorStyle:"6809",wasmModule:"xasm6809",includePatterns:[...nt,...$y],linkPatterns:lt},cmoc:{id:"cmoc",name:"CMOC",kind:"compiler",arch:"6809",extensions:[".c",".h"],editorStyle:"text/x-csrc",helpURL:"https://github.com/stahta01/cmoc/",wasmModule:"cmoc",version:"0.1.67",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},lwasm:{id:"lwasm",name:"LWASM",kind:"assembler",arch:"6809",extensions:[".lwasm"],editorStyle:"6809",wasmModule:"lwasm",version:"4.17",includePatterns:nt,linkPatterns:lt},lwlink:{id:"lwlink",name:"LWLINK",kind:"linker",arch:"6809",extensions:[],wasmModule:"lwlink",version:"4.17"},vasmarm:{id:"vasmarm",name:"vasm (ARM)",kind:"assembler",arch:"arm32",extensions:[".vasm"],editorStyle:"vasm",wasmModule:"vasmarm_std",version:"1.8k",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},armips:{id:"armips",name:"armips",kind:"assembler",arch:"arm32",extensions:[".armips"],editorStyle:"vasm",wasmModule:"armips",version:"0.11.0",includePatterns:nt,linkPatterns:lt},armtcc:{id:"armtcc",name:"TCC (ARM)",kind:"compiler",arch:"arm32",extensions:[".c",".s"],includeDirs:["/include"],wasiFSZip:"arm32-fs.zip",editorStyle:"text/x-csrc",wasmModule:"arm-tcc",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},armtcclink:{id:"armtcclink",name:"TCC (ARM) link",kind:"linker",arch:"arm32",extensions:[],wasmModule:"arm-tcc"},smlrc:{id:"smlrc",name:"SmallerC",kind:"compiler",arch:"x86",extensions:[".c"],helpURL:"https://github.com/alexfru/SmallerC/blob/master/v0100/doc/smlrc.md",editorStyle:"text/x-csrc",wasmModule:"smlrc",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},yasm:{id:"yasm",name:"YASM",kind:"assembler",arch:"x86",extensions:[".asm"],editorStyle:"gas",helpURL:"https://www.tortall.net/projects/yasm/manual/html/manual.html",wasmModule:"yasm",version:"1.3.0",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},oscar64:{id:"oscar64",name:"Oscar64",kind:"compiler",arch:"6502",extensions:[".c",".cpp",".cc",".o64"],includeDirs:["/include"],wasiFSZip:"oscar64-fs.zip",editorStyle:"text/x-csrc",helpURL:"https://github.com/drmortalwombat/oscar64/blob/v1.32.266/oscar64.md",defineFlag:"-d",defineInline:!0,wasmModule:"oscar64",version:"1.32.266",includePatterns:LC,linkPatterns:lt,compileLinkedSources:!0,platforms:{c64:{},atari8:{buildArgs:{compiler:["-tm=atari"]}},nes:{buildArgs:{compiler:["-tm=nes"]}}}},bataribasic:{id:"bataribasic",name:"batari Basic",kind:"compiler",arch:"6502",extensions:[".bb",".bas"],includeDirs:["/includes"],editorStyle:"bataribasic",helpURL:"help/bataribasic/manual.html",wasiFSZip:"bb-fs.zip",platforms:{default:{}},includePatterns:nt,linkPatterns:lt},fastbasic:{id:"fastbasic",name:"FastBasic",kind:"compiler",arch:"6502",extensions:[".bas",".fb",".fbi"],editorStyle:"fastbasic",helpURL:"https://github.com/dmsc/fastbasic/blob/v4.4/manual.md",wasmModule:"fastbasic-int",version:"4.4",platforms:{default:{wasiFSZip:"cc65-fs-atari8.zip"}},includePatterns:nt,linkPatterns:lt},cc2600:{id:"cc2600",name:"CC2600",kind:"compiler",arch:"6502",extensions:[".cc2600"],editorStyle:"text/x-csrc",helpURL:"https://github.com/steux/cc2600",wasmModule:"cc2600",version:"0.4.5",wasiFSZip:"cc2600-fs.zip",includeDirs:["/headers"],includePatterns:nt,linkPatterns:lt},cc7800:{id:"cc7800",name:"CC7800",kind:"compiler",arch:"6502",extensions:[".cc7800",".c78"],editorStyle:"text/x-csrc",helpURL:"https://github.com/steux/cc7800",wasmModule:"cc7800",version:"0.2.28",wasiFSZip:"cc7800-fs.zip",includeDirs:["/headers"],includePatterns:nt,linkPatterns:lt},basic:{id:"basic",name:"BASIC",kind:"interpreter",extensions:[".bas"],editorStyle:"basic"},wiz:{id:"wiz",name:"wiz",kind:"compiler",extensions:[".wiz"],includeDirs:["/common/$platform"],editorStyle:"text/x-wiz",helpURL:"https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz",wasmModule:"wiz",version:"0.1.2",platforms:{default:{preloadFS:"wiz"}},includePatterns:IC},ecs:{id:"ecs",name:"ECS",kind:"assembler",arch:"6502",extensions:[".ecs"],editorStyle:"ecs",platforms:{vcs:{wasiFSZip:"cc65-fs-atari2600.zip"},nes:{wasiFSZip:"cc65-fs-nes.zip"},c64:{wasiFSZip:"cc65-fs-c64.zip"}},includePatterns:[...nt,...XC]},inform6:{id:"inform6",name:"Inform 6",kind:"compiler",arch:"zmachine",extensions:[".inf"],editorStyle:"inform6",wasmModule:"inform",version:"6.34",platforms:{default:{preloadFS:"inform"}}},dialog:{id:"dialog",name:"Dialog",kind:"compiler",arch:"zmachine",extensions:[".dg"],editorStyle:"dialog",helpURL:"https://linusakesson.net/dialog/docs/",wasmModule:"dialogc",version:"1c/03-dev",wasiFSZip:"dialog-fs.zip",includeDirs:["/"],includePatterns:zC},verilator:{id:"verilator",name:"Verilator",kind:"hdl",arch:"verilog",extensions:[".v"],editorStyle:"verilog",helpURL:"https://verilator.org/guide/4.205/",wasmModule:"verilator_bin",version:"4.205",includePatterns:Na,linkPatterns:[]},yosys:{id:"yosys",name:"Yosys",kind:"hdl",arch:"verilog",extensions:[],wasmModule:"yosys",includePatterns:Na,linkPatterns:[]},silice:{id:"silice",name:"Silice",kind:"hdl",arch:"verilog",extensions:[".ice"],editorStyle:"verilog",helpURL:"https://github.com/sylefeb/Silice",wasmModule:"silice",version:"0.1",platforms:{default:{preloadFS:"Silice"}},includePatterns:Na,linkPatterns:[]},"llvm-mos":{id:"llvm-mos",name:"LLVM-MOS",kind:"compiler",arch:"6502",extensions:[".c",".cpp",".s",".S",".C"],editorStyle:"text/x-csrc",helpURL:"https://llvm-mos.org/wiki/Welcome",remote:!0,includePatterns:nt,linkPatterns:lt,server:{version:"latest",platforms:["atari8","c64","nes","pce","vcs"],binpath:"llvm-mos/bin",command:"mos-clang",args:["-Os","-g","-D","__8BITWORKSHOP__","-o","$OUTFILE","$INFILES"]}},remote:{id:"remote",name:"Remote build",kind:"remote",extensions:[],remote:!0}};function qt(n){return Qo[n.replace(/^remote:/,"")]}function Ay(n,e){let t=qt(n);if(!t||!e)return;let r=WC[t.id];if(!r)return;let i=r[e];if(!i){let s=Mr(e);s&&s!==e&&(i=r[s])}return i}function Cy(n){let e=[];for(let t in Qo){let r=Qo[t];for(let i of r.extensions)if(i&&n.endsWith(i)){e.push({meta:r,len:i.length});break}}return e.sort((t,r)=>r.len-t.len).map(t=>t.meta)}function NC(n,e){let t=n&&qt(n);if(!(!t||!t.platforms)){if(e){let r=t.platforms[e];if(r)return r;let i=Mr(e);if(i&&i!==e&&t.platforms[i])return t.platforms[i]}return t.platforms.default}}function BC(n,e){let t=qt(n);if(t&&t.platforms){if(e){let i=t.platforms[e];if(i&&i.preloadFS)return i.preloadFS;let s=Mr(e);if(s&&s!==e){let o=t.platforms[s];if(o&&o.preloadFS)return o.preloadFS}}let r=t.platforms.default;if(r&&r.preloadFS)return r.preloadFS}}function Gf(n){let e=qt(n);return e&&e.skeleton?e.skeleton:n.replace(/^remote:/,"")}function _y(n){return!n||!n.version?"\u2014":n.versionAlt?n.version+" (default) / "+n.versionAlt:n.version}function Lc(n,e){let t=n&&qt(n);return t&&t.includePatterns?t.includePatterns:e&&e.startsWith("verilog")?Na:nt}function Dc(n,e){let t=n&&qt(n);return t&&t.linkPatterns?t.linkPatterns:e&&e.startsWith("verilog")?[]:lt}function Ey(n){let e=n&&qt(n);return!!(e&&e.compileLinkedSources)}function Zc(n,e){e=e&&Mr(e);let t=n&&qt(n),r=t&&t.includeDirs||[];return r=r.map(i=>i.replace("$platform",e)),r}function Ic(n,e){var t=BC(n,e);if(t)return t;let r=NC(n,e);if(r&&r.wasiFSZip)return"wasi:"+r.wasiFSZip;let i=n&&qt(n);return i&&i.wasiFSZip?"wasi:"+i.wasiFSZip:void 0}function Ry(n,e){let t=[],r=n.split(` -`);for(let i of e||[]){let s=i instanceof RegExp?{re:i}:i;for(let o of r){let a;for(s.re.lastIndex=0;a=s.re.exec(o);){let l=a[s.group!=null?s.group:a.length-1];l&&t.push(s.suffix?l+s.suffix:l)}}}return t}var Lr={vcs:{arch:"6502",code_start:4096,code_size:61440,data_start:128,data_size:128,wiz_rom_ext:".a26",wiz_inc_dir:"2600",cfgfile:"atari2600.cfg",libargs:["crt0.o","atari2600.lib"],extra_link_files:["crt0.o","atari2600.cfg"],asm_cfgfile:"atari2600-asm.cfg",asm_libargs:[],asm_extra_link_files:["atari2600-asm.cfg"],extra_compile_files:["vcs.h","macro.h"],define:["__ATARI2600__"]},mw8080bw:{arch:"z80",code_start:0,rom_size:8192,data_start:8192,data_size:1024,stack_end:9216},vicdual:{arch:"z80",code_start:0,rom_size:16416,data_start:58368,data_size:1024,stack_end:59392},galaxian:{arch:"z80",code_start:0,rom_size:16384,data_start:16384,data_size:1024,stack_end:18432},"galaxian-scramble":{arch:"z80",code_start:0,rom_size:20512,data_start:16384,data_size:1024,stack_end:18432},pacman:{arch:"z80",code_start:0,codeseg_start:202,rom_size:32768,data_start:19456,data_size:652,stack_end:20416},williams:{arch:"6809",code_start:0,rom_size:49152,data_start:38912,data_size:10240,stack_end:49152,set_stack_end:49152,extra_link_files:["williams.scr","libcmoc-crt-vec.a","libcmoc-std-vec.a"],extra_link_args:["-swilliams.scr","-lcmoc-crt-vec","-lcmoc-std-vec"],extra_compile_files:["assert.h","cmoc.h","stdarg.h","stdlib.h"]},"williams-defender":{arch:"6809",code_start:0,rom_size:49152,data_start:38912,data_size:10240,stack_end:49152},"williams-z80":{arch:"z80",code_start:0,rom_size:38912,data_start:38912,data_size:10240,stack_end:49152},"vector-z80color":{arch:"z80",code_start:0,rom_size:32768,data_start:57344,data_size:8192,stack_end:0},"vector-ataricolor":{arch:"6502",define:["__VECTOR__"],cfgfile:"vector-color.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","vector-color.cfg"]},"sound_williams-z80":{arch:"z80",code_start:0,rom_size:16384,data_start:16384,data_size:1024,stack_end:32768},base_z80:{arch:"z80",code_start:0,rom_size:32768,data_start:32768,data_size:32768,stack_end:0},coleco:{arch:"z80",rom_start:32768,code_start:33024,rom_size:32768,data_start:28672,data_size:1024,stack_end:32768,extra_preproc_args:["-I","/share/include/coleco","-D","CV_CV"],extra_link_args:["-k","/share/lib/coleco","-l","libcv","-l","libcvu","crt0.rel"]},msx:{arch:"z80",rom_start:16384,code_start:16384,rom_size:32768,data_start:49152,data_size:12288,stack_end:65535,extra_link_args:["crt0-msx.rel"],extra_link_files:["crt0-msx.rel","crt0-msx.lst"],wiz_sys_type:"z80",wiz_inc_dir:"msx"},"msx-libcv":{arch:"z80",rom_start:16384,code_start:16384,rom_size:32768,data_start:49152,data_size:12288,stack_end:65535,extra_preproc_args:["-I",".","-D","CV_MSX"],extra_link_args:["-k",".","-l","libcv-msx","-l","libcvu-msx","crt0-msx.rel"],extra_link_files:["libcv-msx.lib","libcvu-msx.lib","crt0-msx.rel","crt0-msx.lst"],extra_compile_files:["cv.h","cv_graphics.h","cv_input.h","cv_sound.h","cv_support.h","cvu.h","cvu_c.h","cvu_compression.h","cvu_f.h","cvu_graphics.h","cvu_input.h","cvu_sound.h"]},"sms-sg1000-libcv":{arch:"z80",rom_start:0,code_start:256,rom_size:49152,data_start:49152,data_size:1024,stack_end:57344,extra_preproc_args:["-I",".","-D","CV_SMS"],extra_link_args:["-k",".","-l","libcv-sms","-l","libcvu-sms","crt0-sms.rel"],extra_link_files:["libcv-sms.lib","libcvu-sms.lib","crt0-sms.rel","crt0-sms.lst"],extra_compile_files:["cv.h","cv_graphics.h","cv_input.h","cv_sound.h","cv_support.h","cvu.h","cvu_c.h","cvu_compression.h","cvu_f.h","cvu_graphics.h","cvu_input.h","cvu_sound.h"]},nes:{arch:"6502",define:["__NES__"],cfgfile:"neslib2.cfg",libargs:["crt0.o","nes.lib","neslib2.lib","-D","NES_MAPPER=0","-D","NES_PRG_BANKS=2","-D","NES_CHR_BANKS=1","-D","NES_MIRRORING=0"],extra_link_files:["crt0.o","neslib2.lib","neslib2.cfg","nesbanked.cfg"],extra_compile_files:["neslib.h"],symbolConfigs:{NES_MAPPER:{4:"nesbanked.cfg"}},ignore_segments:["HEADER","CHARS"],wiz_rom_ext:".nes"},apple2:{arch:"6502",define:["__APPLE2__"],cfgfile:"apple2.cfg",libargs:["--lib-path","/share/target/apple2/drv","apple2.lib"],__CODE_RUN__:16384,code_start:2051,rom_size:35837,data_start:37888,zp_start:96,load_header:"dos33",acmeargs:["-f","apple"]},"apple2-e":{arch:"6502",define:["__APPLE2__"],cfgfile:"apple2.cfg",libargs:["apple2.lib"],acmeargs:["-f","apple"]},"atari8-800xl.disk":{arch:"6502",define:["__ATARI__"],cfgfile:"atari.cfg",libargs:["atari.lib"],fastbasic_cfgfile:"fastbasic-cart.cfg",ignore_segments:["EXEHDR","SYSCHKHDR","SYSCHKTRL","MAINHDR","AUTOSTRT"]},"atari8-800xl":{arch:"6502",define:["__ATARI__"],cfgfile:"atari-cart.cfg",libargs:["atari.lib","-D","__CARTFLAGS__=4"],fastbasic_cfgfile:"fastbasic-cart.cfg"},"atari8-800":{arch:"6502",define:["__ATARI__"],cfgfile:"atari-cart.cfg",libargs:["atari.lib","-D","__CARTFLAGS__=4"],fastbasic_cfgfile:"fastbasic-cart.cfg"},"atari8-5200":{arch:"6502",define:["__ATARI5200__"],cfgfile:"atari5200.cfg",libargs:["atari5200.lib","-D","__CARTFLAGS__=255"],fastbasic_cfgfile:"fastbasic-cart.cfg"},verilog:{arch:"verilog",extra_compile_files:["8bitworkshop.v"]},astrocade:{arch:"z80",code_start:8192,rom_size:8192,data_start:19984,data_size:496,stack_end:20480},"astrocade-arcade":{arch:"z80",code_start:0,rom_size:16384,data_start:32224,data_size:544,stack_end:32768},"astrocade-bios":{arch:"z80",code_start:0,rom_size:8192,data_start:20430,data_size:50,stack_end:20430},atari7800:{arch:"6502",define:["__ATARI7800__"],cfgfile:"atari7800.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","atari7800.cfg"]},c64:{arch:"6502",define:["__CBM__","__C64__"],cfgfile:"c64.cfg",libargs:["openroms-compat.o","c64.lib"],extra_link_files:["openroms-compat.o"],code_start:2061,rom_size:38899,data_start:49152,zp_start:2,load_header:"prg",acmeargs:["-f","cbm"]},vic20:{arch:"6502",define:["__CBM__","__VIC20__"],cfgfile:"vic20.cfg",libargs:["vic20.lib"],acmeargs:["-f","cbm"]},kim1:{arch:"6502"},vectrex:{arch:"6809",code_start:0,rom_size:32768,data_start:51328,data_size:896,stack_end:52224,extra_compile_files:["assert.h","cmoc.h","stdarg.h","vectrex.h","stdlib.h","bios.h"],extra_link_files:["vectrex.scr","libcmoc-crt-vec.a","libcmoc-std-vec.a"],extra_compile_args:["--vectrex"],extra_link_args:["-svectrex.scr","-lcmoc-crt-vec","-lcmoc-std-vec"]},x86:{arch:"x86"},zx:{arch:"z80",code_start:23755,rom_size:41613,data_start:61440,data_size:3584,stack_end:65368,extra_link_args:["crt0-zx.rel"],extra_link_files:["crt0-zx.rel","crt0-zx.lst"]},"devel-6502":{arch:"6502",cfgfile:"devel-6502.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","devel-6502.cfg"],code_start:32768,rom_size:32768,data_start:512},"cpc.rslib":{arch:"z80",code_start:16384,rom_size:28928,data_start:45312,data_size:-3840,stack_end:49152,extra_compile_files:["cpcrslib.h"],extra_link_args:["crt0-cpc.rel","cpcrslib.lib"],extra_link_files:["crt0-cpc.rel","crt0-cpc.lst","cpcrslib.lib","cpcrslib.lst"]},cpc:{arch:"z80",code_start:16384,rom_size:28928,data_start:45312,data_size:-3840,stack_end:49152,extra_compile_files:["cpctelera.h"],extra_link_args:["crt0-cpc.rel","cpctelera.lib"],extra_link_files:["crt0-cpc.rel","crt0-cpc.lst","cpctelera.lib","cpctelera.lst"]},pce:{arch:"huc6280",define:["__PCE__"],cfgfile:"pce.cfg",libargs:["pce.lib","-D","__CARTSIZE__=0x8000"]},exidy:{define:["__EXIDY__"],cfgfile:"exidy.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","exidy.cfg"]},arm32:{arch:"arm32",define:["__ARM__","DISABLE_UNIMPLEMENTED_LIBC_APIS","PRINTF_ALIAS_STANDARD_FUNCTION_NAMES_SOFT"],extra_compile_args:["-I./arch/arm/include","-I./openlibm/include","-I./openlibm/src","-I./printf/src"],extra_link_files:["crt0.c","libc.a"],extra_link_args:["crt0.c","-lc"]},gb:{arch:"gbz80",code_start:0,codeseg_start:512,rom_size:32768,rom_banking:{size:16384,window:16384},data_start:49312,data_size:8032,stack_end:57344,extra_link_files:["gbz80.lib","gb.lib","sfr.rel","sfr.lst","crt0.rel","crt0.lst"],startup_objs:["sfr.rel","crt0.rel"],asm_startup_objs:[],extra_compile_files:["gb/bgb_emu.h","gb/cgb.h","gb/crash_handler.h","gb/drawing.h","gb/emu_debug.h","gb/gb.h","gb/gbdecompress.h","gb/hardware.h","gb/isr.h","gb/metasprites.h","gb/sgb.h","gb/types.h"],extra_link_args:["-l","gb","-g","_shadow_OAM=0xC000","-g",".STACK=0xE000","-g",".refresh_OAM=0xFF80","-g","GB_MAPPER=0x0","-g","GB_ROM_SIZE=0x0","-g","GB_RAM_SIZE=0x0","-g","GB_CGB_FLAGS=0x0"],wiz_sys_type:"gb",wiz_inc_dir:"gb"},mcr:{arch:"z80",code_start:0,rom_size:106496,data_start:57344,data_size:2048,stack_end:59392}};Lr["sms-sms-libcv"]=zi(Ue({},Lr["sms-sg1000-libcv"]),{extra_preproc_args:["-I",".","-D","CV_SMS","-D","CV_MODE4"]});Lr["sms-gg-libcv"]=Lr["sms-sms-libcv"];Lr["gb.color"]=zi(Ue({},Lr.gb),{extra_link_args:Lr.gb.extra_link_args.map(n=>n==="GB_CGB_FLAGS=0x0"?"GB_CGB_FLAGS=0x80":n)});function VC(n){return n.severity==="warning"}function My(n){return n.some(e=>!VC(e))}var Rs=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var r of e)r.offset>=0&&(this.offset2loc.has(r.offset)||this.offset2loc.set(r.offset,r),this.line2offset.has(r.line)||this.line2offset.set(r.line,r.offset));this.sortedOffsets=Array.from(this.offset2loc.keys()).sort((i,s)=>i-s)}findLineForOffset(e,t,r){let i=this.sortedOffsets;for(var s=0,o=i.length-1,a=-1;s<=o;){var l=s+o>>1;i[l]<=e?(a=l,s=l+1):o=l-1}if(a<0)return null;var c=i[a];if(r!=null&&ct?null:this.offset2loc.get(c)}firstOffsetAtOrAfter(e,t){for(var r=0,i=t.length-1,s=-1;r<=i;){var o=r+i>>1;t[o]>=e?(s=o,i=o-1):r=o+1}return s<0?null:t[s]}lineCount(){return this.lines.length}};function Xc(n){return"errors"in n}function Ly(n){return"output"in n}function Hf(n,e){if(n==null)return"";try{var t=typeof n=="string"?n:typeof n=="object"?JSON.stringify(n):n+"";return t.substring(0,e)}catch(r){return""}}var FC=/bot\b|bot\/|crawl|spider|slurp|headless|lighthouse|facebookexternalhit|preview|inspectiontool|pingdom|python-requests|\bcurl\/|\bwget\//i;function Dy(n){return!!n&&FC.test(n)}function YC(n){return{msg:String(n&&n.message||n),stack:n&&n.stack}}var zc=class{constructor(e,t,r={}){this.source=e;this.send=t;this.common=r;this.sent=0;this.seen=new Set}report(e,t,r,i){i=i||this.source;var s=[i,r&&r.tool,e].join("|");if(this.sent>=10||this.seen.has(s))return!1;this.seen.add(s),this.sent++;var o={source:i,msg:Hf(e,500),stack:Hf(t,2e3),clientTime:new Date().toISOString()},a=Ue(Ue({},this.common),r);for(var l in a)!(l in o)&&a[l]!=null&&(o[l]=Hf(a[l],2e3));return this.send(o),!0}reportError(e,t,r){var i=YC(e);return this.report(i.msg,i.stack,t,r)}};var Zy="/error.php",jC=typeof navigator!="undefined"&&(navigator.webdriver||Dy(navigator.userAgent));function UC(n){if(!jC){n.url=window.location.href.substring(0,500),n.userAgent=navigator.userAgent.substring(0,500),n.language=navigator.language;var e=JSON.stringify(n);navigator.sendBeacon?navigator.sendBeacon(Zy,new Blob([e],{type:"application/json"})):fetch(Zy,{method:"POST",headers:{"Content-Type":"application/json"},body:e,keepalive:!0}).catch(t=>console.log("error report failed",t))}}var Iy=new zc("ide",UC);function Xy(n,e,t,r){try{Iy.report(n,e&&e.stack,t,r)}catch(i){console.log("error report failed",i)}}function zy(n,e,t){try{Iy.report(e.msg,e.stack,t,n)}catch(r){console.log("error report failed",r)}}function Je(n){n?(Dr(0),$("#pleaseWaitModal").modal("show")):(Dr(1),$("#pleaseWaitModal").modal("hide"))}function Dr(n){$("#pleaseWaitProgressBar").css("width",n*100+"%").show()}function Re(n){Je(!1),bootbox.alert({title:' Alert',message:Vi.sanitize(n)})}function an(n){Je(!1),bootbox.alert(Vi.sanitize(n))}function Wy(n){throw Re(n),new Error(n)}var Jf=[],Fy=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=Fy[r])e=r+1;else return!0;if(e==t)return!1}}function Ny(n){return n>=127462&&n<=127487}var By=8205;function Yy(n,e,t=!0,r=!0){return(t?jy:GC)(n,e,r)}function jy(n,e,t){if(e==n.length)return e;e&&Uy(n.charCodeAt(e))&&qy(n.charCodeAt(e-1))&&e--;let r=Kf(n,e);for(e+=Vy(r);e=0&&Ny(Kf(n,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function GC(n,e,t){for(;e>1;){let r=jy(n,e-2,t);if(r=56320&&n<57344}function qy(n){return n>=55296&&n<56320}function Vy(n){return n<65536?1:2}var De=class n{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,r){[e,t]=_o(this,e,t);let i=[];return this.decompose(0,e,i,2),r.length&&r.decompose(0,r.length,i,3),this.decompose(t,this.length,i,1),To.from(i,this.length-(t-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=_o(this,e,t);let r=[];return this.decompose(e,t,r,0),To.from(r,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),i=new Zs(this),s=new Zs(e);for(let o=t,a=t;;){if(i.next(o),s.next(o),o=0,i.lineBreak!=s.lineBreak||i.done!=s.done||i.value!=s.value)return!1;if(a+=i.value.length,i.done||a>=r)return!0}}iter(e=1){return new Zs(this,e)}iterRange(e,t=this.length){return new Fc(this,e,t)}iterLines(e,t){let r;if(e==null)r=this.iter();else{t==null&&(t=this.lines+1);let i=this.line(e).from;r=this.iterRange(i,Math.max(i,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Yc(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?n.empty:e.length<=32?new Fn(e):To.from(Fn.split(e,[]))}},Fn=class n extends De{constructor(e,t=HC(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,r,i){for(let s=0;;s++){let o=this.text[s],a=i+o.length;if((t?r:a)>=e)return new tp(i,a,r,o);i=a+1,r++}}decompose(e,t,r,i){let s=e<=0&&t>=this.length?this:new n(Gy(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(i&1){let o=r.pop(),a=Vc(s.text,o.text.slice(),0,s.length);if(a.length<=32)r.push(new n(a,o.length+s.length));else{let l=a.length>>1;r.push(new n(a.slice(0,l)),new n(a.slice(l)))}}else r.push(s)}replace(e,t,r){if(!(r instanceof n))return super.replace(e,t,r);[e,t]=_o(this,e,t);let i=Vc(this.text,Vc(r.text,Gy(this.text,0,e)),t),s=this.length+r.length-(t-e);return i.length<=32?new n(i,s):To.from(n.split(i,[]),s)}sliceString(e,t=this.length,r=` +\\ 0 . =`],action:"Keypad"}],vectrex:[{keys:[_s],action:"Joystick"},{keys:["Z X C V"],action:"Buttons"}],atari8:[{keys:[_s],action:"Joystick"},{keys:["Shift"],action:"Button"},{keys:["F1"],action:"Start"},{keys:["F2"],action:"Select"},{keys:["F3"],action:"Option"}],pacman:[{keys:["\u2190\xA0\u2192"],action:"Joystick"},{keys:["Space"],action:"Fire"},{keys:["5","6"],action:"Coin"},{keys:["Enter","2"],action:"Start"}]};var WA={left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown"},Af=null;function Po(){if(Af===null){var n=typeof navigator!="undefined"?navigator:null;Af=!!n&&/mac|iphone|ipad|ipod/i.test(n.platform||n.userAgent||"")}return Af}function _f(n){var e=n.toLowerCase().split("+"),t=e.pop(),r={mod:!1,shift:!1,key:""};for(var i of e)if(i=="mod"||i=="ctrl"||i=="meta"||i=="cmd")r.mod=!0;else if(i=="shift")r.shift=!0;else return console.warn('Keyboard shortcut "'+n+'": unsupported modifier "'+i+'" (alt is layout-dependent), skipping'),null;t=WA[t]||t;var s=/^[a-z]$/.test(t),o=/^f([1-9]|1[0-2])$/.test(t);return!s&&!o&&!/^[0-9]$/.test(t)&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+n+'": key "'+t+'" is layout-dependent (use a-z, 0-9, f1-f12), skipping'),null):r.shift&&!s&&!/^arrow/.test(t)?(console.warn('Keyboard shortcut "'+n+'": shift is only allowed with letters and arrows, skipping'),null):(r.key=t,r)}function NA(n,e){if(e.altKey)return!1;var t=Po(),r=t?e.metaKey:e.ctrlKey,i=t?e.ctrlKey:e.metaKey;return n.mod!==r||i||n.shift!==e.shiftKey?!1:(e.key||"").toLowerCase()===n.key}var Ac=class{constructor(){this.bindings=[];this.handler=e=>{if(!e.defaultPrevented)for(var t=0;te.indexOf(c)>=0);for(var o of e)s.indexOf(o)<0&&s.push(o);var a=s.map(c=>r?YA[c]||c:jA[c]||c).join(r?"":"+"),l=/^[a-z][0-9]?$/.test(t)?t.toUpperCase():UA[t]||(r?t:t.charAt(0).toUpperCase()+t.slice(1));return(a?a+(r?"":"+"):"")+l}var Mf=class{constructor(e){this.shortcutsSig="";this.status={};this.visible=!0;this.pendingShortcuts=!1;this.pendingStatus=!1;this.div=e,this.shortcutsZone=$(document.createElement("span")).addClass("shortcuts_zone"),this.statusZone=$(document.createElement("span")).addClass("status_zone"),$(e).append(this.shortcutsZone).append(this.statusZone)}setShortcuts(e){if(this.visible){var t=e.map(s=>s.key+""+s.label).join("");if(t!==this.shortcutsSig){if(Za){this.pendingShortcuts=!0;return}this.shortcutsSig=t,this.shortcutsZone.empty();for(var r of e){var i=$(document.createElement("span")).addClass("shortcut");i.append($(document.createElement("kbd")).text(Lf(r.key))),i.append(document.createTextNode(" "+r.label)),r.fn&&U0(i,r.fn),this.shortcutsZone.append(i)}}}}setStatus(e,t){t?this.status[e]=t:delete this.status[e],this.renderStatus()}renderStatus(){if(this.visible){if(Za){this.pendingStatus=!0;return}this.statusZone.empty();for(var e of Object.keys(this.status)){var t=this.status[e],r=$(document.createElement("span")).addClass("status_item");t.cls&&r.addClass(t.cls),t.title&&r.prop("title",t.title),r.text(t.text),t.fn&&U0(r,t.fn),this.statusZone.append(r)}}}};function U0(n,e){n.addClass("clickable"),n.mousedown(t=>t.preventDefault()),n.click(e)}var Za=!1;function q0(){zn&&(zn.pendingShortcuts&&(zn.pendingShortcuts=!1,Wn()),zn.pendingStatus&&(zn.pendingStatus=!1,zn.renderStatus()))}function qA(){$(document).on("mousedown.shortcutbar",()=>{Za=!0}),$(document).on("mouseup.shortcutbar",()=>{Za=!1,q0()}),$(window).on("blur.shortcutbar",()=>{Za=!1,q0()})}var zn=null;function G0(n){zn=new Mf(n),qA()}var H0=()=>[],K0=()=>[];function J0(n){H0=n}function ey(n){K0=n}function Cc(n){$(document.body).toggleClass("statusbar-hidden",!n),zn&&(zn.visible=n,n&&(zn.shortcutsSig="",zn.renderStatus(),Wn()))}function Wn(){if(zn){var n=[...H0(),...K0()],e=document.activeElement;for(var t of ty)e&&t.div.contains(e)&&(n=n.concat(t.fn()));zn.setShortcuts(n.filter(r=>!GA(r.key)))}}var ty=[];function ny(n,e){ty.push({div:n,fn:e})}function GA(n){var e=n.toLowerCase();return!Po()&&(e=="mod+shift+i"||e=="mod+shift+j"||e=="mod+shift+k"||e=="ctrl+alt+t"||e=="ctrl+alt+l")}function HA(){return z0()}function KA(n){if(n._8bwPatched)return n;var e=n.stopCallback;return n.stopCallback=function(t,r,i,s){return t&&(t.ctrlKey||t.altKey||t.metaKey)?t.getModifierState&&t.getModifierState("AltGraph")?e.call(this,t,r,i,s):!1:e.call(this,t,r,i,s)},n._8bwPatched=!0,n}var Wi=class{constructor(e,t){this.boundkeys=[];let r=KA(HA());this.focusDiv=t,this.keybinder=new Ac,this.keybinder.attach(),this.mousetrap=t?new r(t):r,this.span=$(document.createElement("span")).addClass("btn_toolbar"),e.appendChild(this.span[0]),this.newGroup()}destroy(){if(this.span&&(this.span.remove(),this.span=null),this.keybinder&&(this.keybinder.detach(),this.keybinder.unbindAll(),this.keybinder=null),this.mousetrap){for(var e of this.boundkeys)this.mousetrap.unbind(e);this.mousetrap=null}}newGroup(){return this.grp=$(document.createElement("span")).addClass("btn_group").appendTo(this.span).hide()}add(e,t,r,i){var s=null;return r&&(s=$(document.createElement("button")).addClass("btn"),r.startsWith("glyphicon")&&(r=''),s.html(r),s.prop("title",e?t+" ("+Lf(e)+")":t),s.click(i),this.grp.append(s).show()),e&&(!this.focusDiv&&_f(e)?this.keybinder.bind(e,i):(this.mousetrap.bind(e,(o,a)=>(i(o,a),!1)),this.boundkeys.push(e))),s}};var ry=[];function iy(n,e){ry.push({div:n,id:e})}function sy(){let n=document.activeElement;if(!n)return null;for(let e of ry)if(e.div.contains(n))return e.id;return null}function Nn(n){var e=n&&n.w+"px"||"100%",t=n&&n.h+"px"||"100%",r=this.itemHeight=n.itemHeight;this.items=n.items,this.generatorFn=n.generatorFn,this.totalRows=n.totalRows||n.items&&n.items.length;var i=Nn.createScroller(r*this.totalRows);this.container=Nn.createContainer(e,t),this.container.appendChild(i);var s=Math.ceil(n.h/r);this.cachedItemsLen=s*3,this._renderChunk(this.container,0);var o=this,a,l=s*r,c=0;this.rmNodeInterval=setInterval(function(){if(Date.now()-c>100)for(var h=document.querySelectorAll('[data-rm="1"]'),u=0,f=h.length;ul){var f=Math.floor(u/r)-s;o._renderChunk(o.container,f<0?0:f),a=u}c=Date.now(),h.preventDefault&&h.preventDefault()}this.container.addEventListener("scroll",d)}Nn.prototype.createRow=function(n){var e;if(this.generatorFn)e=this.generatorFn(n);else if(this.items)if(typeof this.items[n]=="string"){var t=document.createTextNode(this.items[n]);e=document.createElement("div"),e.style.height=this.itemHeight+"px",e.appendChild(t)}else e=this.items[n];return e.classList.add("vrow"),e.setAttribute("data-index",""+n),e.style.position="absolute",e.style.top=n*this.itemHeight+"px",e};Nn.prototype._renderChunk=function(n,e){var t=e+this.cachedItemsLen;t>this.totalRows&&(t=this.totalRows);for(var r=document.createDocumentFragment(),i=e;ithis.setZoom(this.zoom*2)},{key:"-",label:"Zoom Out",icon:"glyphicon-zoom-out",fn:()=>this.setZoom(this.zoom/2)},{key:"ctrl+shift+left",label:"To Start",icon:"glyphicon-backward",fn:()=>{this.setSelTime(0),this.setOrgTime(0)}},{key:"shift+left",label:"Page Left",icon:"glyphicon-fast-backward",fn:()=>this.setSelTime(this.tsel-this.clocksPerPage/4)},{key:"left",label:"Left",icon:"glyphicon-step-backward",fn:()=>this.setSelTime(this.tsel-1)},{key:"right",label:"Right",icon:"glyphicon-step-forward",fn:()=>this.setSelTime(this.tsel+1)},{key:"shift+right",label:"Page Right",icon:"glyphicon-fast-forward",fn:()=>this.setSelTime(this.tsel+this.clocksPerPage/4)},{key:"space",label:"Go To Current",icon:"glyphicon-flash",fn:()=>{this.setOrgTime(this.tnow),this.setSelTime(this.tnow)}},{key:"h",label:"Hex/Dec",icon:"glyphicon-barcode",fn:()=>{this.hexformat=!this.hexformat,this.refresh()}}]}roundT(e){return e=Math.round(e),e=Math.max(0,e),e=Math.min(this.clockMax+this.clocksPerPage/2,e),e}setOrgTime(e){this.t0=this.roundT(e),this.refresh()}setCurrentTime(e){this.tnow=this.roundT(e),this.refresh()}setSelTime(e){e=this.roundT(e),e>=this.t0+this.clocksPerPage-1&&(this.t0+=this.clocksPerPage/4),e<=this.t0+2&&(this.t0-=this.clocksPerPage/4),this.tsel=e,this.setOrgTime(this.t0),this.selectionChanged()}setClocksPerPage(){this.clocksPerPage=Math.floor(this.pageWidth/this.zoom)-1}setZoom(e){this.zoom=Math.max(1/16,Math.min(64,e)),this.setClocksPerPage(),this.t0=Math.max(0,Math.round(this.tsel-this.clocksPerPage/2)),this.refresh()}refresh(){if(this.meta||this.recreate(),!!this.meta)for(var e=0;e3&&(i=`${t.len}'h${i}`),i}isEditable(e){return e&&e.input&&JA.indexOf(e.label)<0}refreshRow(e){var t=this.lines[e],r=this.meta[e];if(!t||!r)return;var i=r.label=="clk",s=t.width,o=t.height,a=t.getContext("2d"),l="14px Andale Mono, Lucida Console, monospace",c="10px Andale Mono, Lucida Console, monospace";a.font=l,a.clearRect(0,0,t.width,t.height);var d=[];this.isEditable(r)&&d.push("input");var h=12,u=h+4,f=4,m=o-u-f,O=r.len==32?4294967296:(1<1&&this.zoom>=32,D=u+m-4;a.fillStyle="#336633",a.fillRect(0,h/2,3,u+m-h/2);let M=a.strokeStyle="#33dd33",Z=a.fillStyle="#66ffff",k="#dddddd";a.beginPath();for(var w=0,R=0,X=-1,W=0;W4&&(a.font=c),a.fillText(q,w+this.zoom/4,de)}W>0&&a.lineTo(w,R),R=u+(1-ne/O)*m,i||(w+=this.zoom*(1/8)),W==0?a.moveTo(w,R):a.lineTo(w,R),this.zoom>.75&&X!=ne&&Math.abs(X-ne)=this.t0){a.strokeStyle=a.fillStyle="#ff66ff",a.beginPath(),w=(this.tsel-this.t0)*this.zoom+this.zoom/2,a.moveTo(w,0),a.lineTo(w,o),a.stroke();var ne=S[this.tsel-this.t0];if(a.textAlign="right",ne!==void 0){var pe=this.value2str(ne,r),w=s-h,ve=a.measureText(pe);a.fillStyle="black",a.fillRect(w-ve.width-2,D-13,ve.width+4,17),a.fillStyle="#ff66ff",a.fillText(pe,w,D)}}this.tnow>=this.t0&&(a.strokeStyle=a.fillStyle="#6666cc",a.beginPath(),w=(this.tnow-this.t0)*this.zoom+this.zoom/2,a.moveTo(w,0),a.lineTo(w,o),a.stroke()),a.fillStyle=k,a.textAlign="left";var we=r.label;d.length>0&&(we+=" ("+d.join(", ")+")"),a.fillText(we,5,h)}changeInputValue(e){var t=this.meta[e];if(t){var r=this.wfp.getSignalData(e,this.t0,1),i=r[0]||0,s=0,o=(1<0?0:1):this.promptValue(t,i,s,o).then(a=>{a!=null&&a>=s&&a<=o&&this.wfp.setSignalValue(e,a)})}}};function eC(n,e){this.v=n,this.k=e}function oy(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,r=Array(e);t2?r-2:0),s=2;s1?t-1:0),i=1;i1?t-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:Wa;if(ay&&ay(n,null),!$o(e))return n;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let s=t(i);s!==i&&(oC(e)||(e[r]=s),i=s)}n[i]=!0}return n}function mC(n){for(let e=0;e/g),wC=Bt(/\${[\w\W]*/g),xC=Bt(/^data-[\-\w.\u00B7-\uFFFF]+$/),PC=Bt(/^aria-[\-\w]+$/),Oy=Bt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),kC=Bt(/^(?:\w+script|data):/i),$C=Bt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),QC=Bt(/^html$/i),TC=Bt(/^[a-z][.\w]*(-[.\w]+)+$/i),by=Bt(/<[/\w!]/g),yy=Bt(/<[/\w]/g),AC=Bt(/<\/no(script|embed|frames)/i),CC=Bt(/\/>/i),Bn={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},xy=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],_C=It(Ve({},xy)),EC=(function(){let n={};return Es(xy,e=>{n[e]=Bt(new RegExp("])","i"))}),It(n)})(),RC=function(){return typeof window=="undefined"?null:window},MC=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(r=t.getAttribute(i));let s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch(o){return console.warn("TrustedTypes policy "+s+" could not be created."),null}},Sy=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Bi=function(e,t,r,i){return Qn(e,t)&&$o(e[t])?Ve(i.base?Vn(i.base):{},e[t],i.transform):r},Wf=function(e,t,r){let i=Qn(e,t)?e[t]:void 0;return i&&typeof i=="object"?Vn(i):r()};function Py(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:RC(),e=_=>Py(_);if(e.version="3.4.16",e.removed=[],!n||!n.document||n.document.nodeType!==Bn.document||!n.Element)return e.isSupported=!1,e;let t=n.document,r=t,i=r.currentScript;n.DocumentFragment;let s=n.HTMLTemplateElement,o=n.Node,a=n.Element,l=n.NodeFilter;n.NamedNodeMap===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;let c=n.DOMParser,d=n.trustedTypes,h=a.prototype,u=ur(h,"cloneNode"),f=ur(h,"remove"),m=ur(h,"removeAttributeNode"),O=ur(h,"nextSibling"),S=ur(h,"childNodes"),x=ur(h,"parentNode"),D=ur(h,"shadowRoot"),M=ur(h,"attributes"),Z=o&&o.prototype?ur(o.prototype,"nodeType"):null,k=o&&o.prototype?ur(o.prototype,"nodeName"):null,w=o&&o.prototype?ur(o.prototype,"ownerDocument"):null,R=function(p){return Z?Z(p):p.nodeType},X=function(p){return k?k(p):p.nodeName};if(typeof s=="function"){let _=t.createElement("template");_.content&&_.content.ownerDocument&&(t=_.content.ownerDocument)}let W,ne="",de,q=!1,pe=0,ve=function(){if(pe>0)throw Ni('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},we=function(p){ve(),pe++;try{return W.createHTML(p)}finally{pe--}},B=function(p){ve(),pe++;try{return W.createScriptURL(p)}finally{pe--}},ue=function(){return q||(de=MC(d,i),q=!0),de},G=t,Pe=G.implementation,Qe=G.createNodeIterator,Ge=G.createDocumentFragment,He=G.getElementsByTagName,Ot=r.importNode,me=Sy();e.isSupported=typeof vy=="function"&&typeof x=="function"&&Pe&&Pe.createHTMLDocument!==void 0;let nn=SC,ir=vC,sr=wC,or=xC,di=PC,bs=kC,qr=$C,ys=TC,Dn=Oy,ke=null,kn=Ve({},[...fy,...Zf,...If,...Xf,...py]),be=null,ar=Ve({},[...my,...zf,...gy,...Rc]),st=Object.seal(ko(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Lt=null,Qr=null,ft=Object.seal(ko(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Tr=!0,lr=!0,rn=!1,Ar=!0,vt=!1,Qt=!0,ie=!1,Y=!1,te=null,ge=null,Ke=!1,Le=!1,ot=!1,xt=!1,cr=!0,dr=!1,hi="user-content-",Gr=!0,ui=!1,wt={},pn=null,Ss=Ve({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Ii=null,vs=Ve({},["audio","video","img","source","image","track"]),ws=null,xs=Ve({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Cr="http://www.w3.org/1998/Math/MathML",_r="http://www.w3.org/2000/svg",bt="http://www.w3.org/1999/xhtml",mn=bt,fi=!1,pi=null,ka=Ve({},[Cr,_r,bt],Df),Xi=It(["mi","mo","mn","ms","mtext"]),mi=Ve({},Xi),Ps=It(["annotation-xml"]),gi=Ve({},Ps),$a=Ve({},["title","style","font","a","script"]),Zn=null,Qa=["application/xhtml+xml","text/html"],Ta="text/html",Te=null,gn=null,Aa=t.createElement("form"),ks=function(p){return p instanceof RegExp||p instanceof Function},Oi=function(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(gn&&gn===p)return;(!p||typeof p!="object")&&(p={}),p=Vn(p),Zn=Qa.indexOf(p.PARSER_MEDIA_TYPE)===-1?Ta:p.PARSER_MEDIA_TYPE,Te=Zn==="application/xhtml+xml"?Df:Wa,ke=Bi(p,"ALLOWED_TAGS",kn,{transform:Te}),be=Bi(p,"ALLOWED_ATTR",ar,{transform:Te}),pi=Bi(p,"ALLOWED_NAMESPACES",ka,{transform:Df}),ws=Bi(p,"ADD_URI_SAFE_ATTR",xs,{transform:Te,base:xs}),Ii=Bi(p,"ADD_DATA_URI_TAGS",vs,{transform:Te,base:vs}),pn=Bi(p,"FORBID_CONTENTS",Ss,{transform:Te}),Lt=Bi(p,"FORBID_TAGS",Vn({}),{transform:Te}),Qr=Bi(p,"FORBID_ATTR",Vn({}),{transform:Te}),wt=Qn(p,"USE_PROFILES")?p.USE_PROFILES&&typeof p.USE_PROFILES=="object"?Vn(p.USE_PROFILES):p.USE_PROFILES:!1,Tr=p.ALLOW_ARIA_ATTR!==!1,lr=p.ALLOW_DATA_ATTR!==!1,rn=p.ALLOW_UNKNOWN_PROTOCOLS||!1,Ar=p.ALLOW_SELF_CLOSE_IN_ATTR!==!1,vt=p.SAFE_FOR_TEMPLATES||!1,Qt=p.SAFE_FOR_XML!==!1,ie=p.WHOLE_DOCUMENT||!1,Le=p.RETURN_DOM||!1,ot=p.RETURN_DOM_FRAGMENT||!1,xt=p.RETURN_TRUSTED_TYPE||!1,Ke=p.FORCE_BODY||!1,cr=p.SANITIZE_DOM!==!1,dr=p.SANITIZE_NAMED_PROPS||!1,Gr=p.KEEP_CONTENT!==!1,ui=p.IN_PLACE||!1,Dn=OC(p.ALLOWED_URI_REGEXP)?p.ALLOWED_URI_REGEXP:Oy,mn=typeof p.NAMESPACE=="string"?p.NAMESPACE:bt,mi=Wf(p,"MATHML_TEXT_INTEGRATION_POINTS",()=>Ve({},Xi)),gi=Wf(p,"HTML_INTEGRATION_POINTS",()=>Ve({},Ps));let b=Wf(p,"CUSTOM_ELEMENT_HANDLING",()=>ko(null));if(st=ko(null),Qn(b,"tagNameCheck")&&ks(b.tagNameCheck)&&(st.tagNameCheck=b.tagNameCheck),Qn(b,"attributeNameCheck")&&ks(b.attributeNameCheck)&&(st.attributeNameCheck=b.attributeNameCheck),Qn(b,"allowCustomizedBuiltInElements")&&typeof b.allowCustomizedBuiltInElements=="boolean"&&(st.allowCustomizedBuiltInElements=b.allowCustomizedBuiltInElements),Bt(st),vt&&(lr=!1),ot&&(Le=!0),wt&&(ke=Ve({},py),be=ko(null),wt.html===!0&&(Ve(ke,fy),Ve(be,my)),wt.svg===!0&&(Ve(ke,Zf),Ve(be,zf),Ve(be,Rc)),wt.svgFilters===!0&&(Ve(ke,If),Ve(be,zf),Ve(be,Rc)),wt.mathMl===!0&&(Ve(ke,Xf),Ve(be,gy),Ve(be,Rc))),ft.tagCheck=null,ft.attributeCheck=null,Qn(p,"ADD_TAGS")&&(typeof p.ADD_TAGS=="function"?ft.tagCheck=p.ADD_TAGS:$o(p.ADD_TAGS)&&(ke===kn&&(ke=Vn(ke)),Ve(ke,p.ADD_TAGS,Te))),Qn(p,"ADD_ATTR")&&(typeof p.ADD_ATTR=="function"?ft.attributeCheck=p.ADD_ATTR:$o(p.ADD_ATTR)&&(be===ar&&(be=Vn(be)),Ve(be,p.ADD_ATTR,Te))),Qn(p,"ADD_FORBID_CONTENTS")&&$o(p.ADD_FORBID_CONTENTS)&&(pn===Ss&&(pn=Vn(pn)),Ve(pn,p.ADD_FORBID_CONTENTS,Te)),Gr&&(ke["#text"]=!0),ie&&Ve(ke,["html","head","body"]),ke.table&&(Ve(ke,["tbody"]),delete Lt.tbody),p.TRUSTED_TYPES_POLICY){if(typeof p.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ni('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof p.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ni('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let T=W;W=p.TRUSTED_TYPES_POLICY;try{ne=we("")}catch(L){throw W=T,L}}else p.TRUSTED_TYPES_POLICY===null?(W=void 0,ne=""):(W===void 0&&(W=ue()),W&&typeof ne=="string"&&(ne=we("")));It&&It(p),gn=p},$s=Ve({},[...Zf,...If,...bC]),Qs=Ve({},[...Xf,...yC]),Ca=function(p,b,T){return b.namespaceURI===bt?p==="svg":b.namespaceURI===Cr?p==="svg"&&(T==="annotation-xml"||mi[T]):!!$s[p]},bo=function(p,b,T){return b.namespaceURI===bt?p==="math":b.namespaceURI===_r?p==="math"&&gi[T]:!!Qs[p]},bi=function(p,b,T){return b.namespaceURI===_r&&!gi[T]||b.namespaceURI===Cr&&!mi[T]?!1:!Qs[p]&&($a[p]||!$s[p])},yo=function(p){let b=x(p);(!b||!b.tagName)&&(b={namespaceURI:mn,tagName:"template"});let T=Wa(p.tagName),L=Wa(b.tagName);return pi[p.namespaceURI]?p.namespaceURI===_r?Ca(T,b,L):p.namespaceURI===Cr?bo(T,b,L):p.namespaceURI===bt?bi(T,b,L):!!(Zn==="application/xhtml+xml"&&pi[p.namespaceURI]):!1},pt=function(p){Ia(e.removed,{element:p});try{x(p).removeChild(p)}catch(b){if(f(p),!x(p))throw Ni("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Ts=function(p,b,T){try{m(p,b)}catch(L){try{p.removeAttribute(T)}catch(V){}}},$n=function(p){Er(p);let b=S(p);if(b){let L=[];Es(b,V=>{Ia(L,V)}),Es(L,V=>{try{f(V)}catch(le){}})}let T=M(p);if(T)for(let L=T.length-1;L>=0;--L){let V=T[L],le=V&&V.name;typeof le=="string"&&Ts(p,V,le)}},Dt=function(p,b,T){if(!T)try{T=b.getAttributeNode(p)}catch(L){T=null}Ia(e.removed,{attribute:T||null,from:b});try{T?m(b,T):b.removeAttribute(p)}catch(L){try{b.removeAttribute(p)}catch(V){}}if(p==="is")if(Le||ot)try{pt(b)}catch(L){}else try{b.setAttribute(p,"")}catch(L){}},_a=function(p){let b=M(p);if(b)for(let T=b.length-1;T>=0;--T){let L=b[T],V=L&&L.name;typeof V!="string"||be[Te(V)]||Ts(p,L,V)}},Er=function(p){let b=[p];for(;b.length>0;){let T=b.pop();R(T)===Bn.element&&_a(T);let L=S(T);if(L)for(let V=L.length-1;V>=0;--V)b.push(L[V])}},yi=function(p,b){return Qt?p==="patchsrc"?!0:p==="for"&&b!=="label"&&b!=="output":!1},Ea=function(p){if(!Qt)return;let b=[p];for(;b.length>0;){let T=b.pop(),L=R(T);if(L===Bn.processingInstruction||L===Bn.comment&&on(yy,T.data)){try{f(T)}catch(le){}continue}if(L===Bn.element){let le=T,fe=Te(X(T));try{le.hasAttribute&&le.hasAttribute("patchsrc")&&le.removeAttribute("patchsrc"),le.hasAttribute&&le.hasAttribute("for")&&yi("for",fe)&&le.removeAttribute("for")}catch(Ae){}}let V=S(T);if(V)for(let le=V.length-1;le>=0;--le)b.push(V[le])}},As=function(p){let b=null,T=null;if(Ke)p=""+p;else{let le=cy(p,/^[\r\n\t ]+/);T=le&&le[0]}Zn==="application/xhtml+xml"&&mn===bt&&(p=''+p+"");let L=W?we(p):p;if(mn===bt)try{b=new c().parseFromString(L,Zn)}catch(le){}if(!b||!b.documentElement){b=Pe.createDocument(mn,"template",null);try{b.documentElement.innerHTML=fi?ne:L}catch(le){}}let V=b.body||b.documentElement;return p&&T&&V.insertBefore(t.createTextNode(T),V.childNodes[0]||null),mn===bt?He.call(b,ie?"html":"body")[0]:ie?b.documentElement:V},y=function(p){let b=w?w(p):p.ownerDocument;return Qe.call(b||p,p,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Q=function(p){return p=Xa(p,nn," "),p=Xa(p,ir," "),p=Xa(p,sr," "),p},v=function(p){var b;p.normalize();let T=w?w(p):p.ownerDocument,L=Qe.call(T||p,p,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),V=L.nextNode();for(;V;)V.data=Q(V.data),V=L.nextNode();let le=(b=p.querySelectorAll)===null||b===void 0?void 0:b.call(p,"template");le&&Es(le,fe=>{E(fe.content)&&v(fe.content)})},C=function(p){let b=k?k(p):null;return typeof b!="string"||Te(b)!=="form"?!1:typeof p.nodeName!="string"||typeof p.textContent!="string"||typeof p.removeChild!="function"||p.attributes!==M(p)||typeof p.removeAttribute!="function"||typeof p.removeAttributeNode!="function"||typeof p.getAttributeNode!="function"||typeof p.setAttribute!="function"||typeof p.namespaceURI!="string"||typeof p.insertBefore!="function"||typeof p.hasChildNodes!="function"||p.nodeType!==Z(p)||p.childNodes!==S(p)},E=function(p){if(!Z||typeof p!="object"||p===null)return!1;try{return Z(p)===Bn.documentFragment}catch(b){return!1}},A=function(p){if(!Z||typeof p!="object"||p===null)return!1;try{return typeof Z(p)=="number"}catch(b){return!1}};function I(_,p,b){_.length!==0&&Es(_,T=>{T.call(e,p,b,gn)})}let j=function(p,b){return!!(Qt&&p.hasChildNodes()&&!A(p.firstElementChild)&&on(by,p.textContent)&&on(by,p.innerHTML)||Qt&&p.namespaceURI===bt&&_C[b]&&(A(p.firstElementChild)||typeof p.textContent=="string"&&on(EC[b],p.textContent))||p.nodeType===Bn.processingInstruction||Qt&&p.nodeType===Bn.comment&&on(yy,p.data))},U=function(p,b){if(p instanceof RegExp)return on(p,b);if(p instanceof Function){for(var T=arguments.length,L=new Array(T>2?T-2:0),V=2;V=0;--fe){let Ae=p===T?u(V[fe],!0):V[fe];L.insertBefore(Ae,O(p))}}}return pt(p),!0},J=function(p,b,T,L){return p.length===0?b:b===T||b===L?Vn(b):b},ce=function(p,b){return p===b||x(p)!==null?!1:(ui&&Er(p),!0)},Ce=function(p,b){if(I(me.beforeSanitizeElements,p,null),ce(p,b))return!0;if(C(p))return pt(p),!0;let T=Te(X(p));if(ke=J(me.uponSanitizeElement,ke,kn,te),I(me.uponSanitizeElement,p,{tagName:T,allowedTags:ke}),ce(p,b))return!0;if(j(p,T))return pt(p),!0;if(Lt[T]||!(ft.tagCheck instanceof Function&&ft.tagCheck(T))&&!ke[T]){let L=H(p,T,b);return L===!1&&(I(me.afterSanitizeElements,p,null),ce(p,b))?!0:L}if(R(p)===Bn.element&&!yo(p)||(T==="noscript"||T==="noembed"||T==="noframes")&&on(AC,p.innerHTML))return pt(p),!0;if(vt&&p.nodeType===Bn.text){let L=Q(p.textContent);p.textContent!==L&&(Ia(e.removed,{element:p.cloneNode()}),p.textContent=L)}return I(me.afterSanitizeElements,p,null),ce(p,b)},Ie=function(p,b,T){if(Qr[b]||yi(b,p)||cr&&(b==="id"||b==="name")&&(T in t||T in Aa))return!1;let L=be[b]||ft.attributeCheck instanceof Function&&ft.attributeCheck(b,p);return lr&&on(or,b)||Tr&&on(di,b)?!0:L?ws[b]||on(Dn,Xa(T,qr,""))||(b==="src"||b==="xlink:href"||b==="href")&&p!=="script"&&dy(T,"data:")===0&&Ii[p]||rn&&!on(bs,Xa(T,qr,""))?!0:!T:at(p)&&U(st.tagNameCheck,p)&&U(st.attributeNameCheck,b,p)||b==="is"&&st.allowCustomizedBuiltInElements&&U(st.tagNameCheck,T)},Be=Ve({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),at=function(p){return!Be[Wa(p)]&&on(ys,p)},dt=function(p,b,T,L){if(W&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!T)switch(d.getAttributeType(p,b)){case"TrustedHTML":return we(L);case"TrustedScriptURL":return B(L)}return L},sn=function(p,b,T,L){try{return T?p.setAttributeNS(T,b,L):p.setAttribute(b,L),C(p)?(pt(p),!1):!0}catch(V){return Dt(b,p),!1}},Rr=function(p,b){if(I(me.beforeSanitizeAttributes,p,null),ce(p,b))return;let T=p.attributes;if(!T||C(p))return;be=J(me.uponSanitizeAttribute,be,ar,ge);let L={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:be,forceKeepAttr:void 0},V=T.length,le=Te(p.nodeName);for(;V--;){let fe=T[V],Ae=fe.name,ht=fe.namespaceURI,tt=fe.value,Xn=Te(Ae),Cs=tt,je=Ae==="value"?Cs:hC(Cs),Ra=!1;if(L.attrName=Xn,L.attrValue=je,L.keepAttr=!0,L.forceKeepAttr=void 0,I(me.uponSanitizeAttribute,p,L),je=L.attrValue,dr&&(Xn==="id"||Xn==="name")&&dy(je,hi)!==0&&(Dt(Ae,p,fe),je=hi+je,Ra=!0),Qt&&on(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,je)){Dt(Ae,p,fe);continue}if(Xn==="attributename"&&cy(je,"href")){Dt(Ae,p,fe);continue}if(!L.forceKeepAttr){if(!L.keepAttr){Dt(Ae,p,fe);continue}if(!Ar&&on(CC,je)){Dt(Ae,p,fe);continue}if(vt&&(je=Q(je)),!Ie(le,Xn,je)){Dt(Ae,p,fe);continue}je=dt(le,Xn,ht,je),je!==Cs&&sn(p,Ae,ht,je)&&Ra&&ly(e.removed)}}I(me.afterSanitizeAttributes,p,null),ce(p,b)},In=function(p){let b=null,T=y(p);for(I(me.beforeSanitizeShadowDOM,p,null);b=T.nextNode();)if(I(me.uponSanitizeShadowNode,b,null),Ce(b,p),Rr(b,p),E(b.content)&&In(b.content),R(b)===Bn.element){let L=D(b);E(L)&&(Si(L),In(L))}I(me.afterSanitizeShadowDOM,p,null)},Si=function(p){let b=[{node:p,shadow:null}];for(;b.length>0;){let T=b.pop();if(T.shadow){In(T.shadow);continue}let L=T.node,V=R(L)===Bn.element,le=S(L);if(le)for(let fe=le.length-1;fe>=0;--fe)b.push({node:le[fe],shadow:null});if(V){let fe=k?k(L):null;if(typeof fe=="string"&&Te(fe)==="template"){let Ae=L.content;E(Ae)&&b.push({node:Ae,shadow:null})}}if(V){let fe=D(L);E(fe)&&b.push({node:null,shadow:fe},{node:fe,shadow:null})}}};return e.sanitize=function(_){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},b=null,T=null,L=null,V=null;if(fi=!_,fi&&(_=""),typeof _!="string"&&!A(_)&&(_=gC(_),typeof _!="string"))throw Ni("dirty is not a string, aborting");if(!e.isSupported)return _;Y?(ke=te,be=ge):Oi(p),(me.uponSanitizeElement.length>0||me.uponSanitizeAttribute.length>0)&&(ke=Vn(ke)),me.uponSanitizeAttribute.length>0&&(be=Vn(be)),e.removed=[];let le=ui&&typeof _!="string"&&A(_);if(le){Ea(_);let ht=X(_);if(typeof ht=="string"){let tt=Te(ht);if(!ke[tt]||Lt[tt])throw $n(_),Ni("root node is forbidden and cannot be sanitized in-place")}if(C(_))throw $n(_),Ni("root node is clobbered and cannot be sanitized in-place");try{Si(_)}catch(tt){throw $n(_),tt}}else if(A(_))b=As(""),T=b.ownerDocument.importNode(_,!0),T.nodeType===Bn.element&&T.nodeName==="BODY"||T.nodeName==="HTML"?b=T:b.appendChild(T),Si(b);else{if(!Le&&!vt&&!ie&&_.indexOf("<")===-1)return W&&xt?we(_):_;if(b=As(_),!b)return Le?null:xt?ne:""}b&&Ke&&pt(b.firstChild);let fe=le?_:b;try{let ht=y(fe);for(;L=ht.nextNode();)Ce(L,fe),Rr(L,fe),E(L.content)&&In(L.content)}catch(ht){throw le&&($n(_),Es(e.removed,tt=>{tt.element&&Er(tt.element)})),ht}if(le){let ht=!1;if(Es(e.removed,tt=>{tt.element&&(tt.element===_&&(ht=!0),Er(tt.element))}),ht)throw Ni("a node selected for removal could not be safely returned; refusing to sanitize in place");return vt&&v(_),_}if(Le){if(vt&&v(b),ot)for(V=Ge.call(b.ownerDocument);b.firstChild;)V.appendChild(b.firstChild);else V=b;return(be.shadowroot||be.shadowrootmode)&&(V=Ot.call(r,V,!0)),V}let Ae=ie?b.outerHTML:b.innerHTML;return ie&&ke["!doctype"]&&b.ownerDocument&&b.ownerDocument.doctype&&b.ownerDocument.doctype.name&&on(QC,b.ownerDocument.doctype.name)&&(Ae=" +`+Ae),vt&&(Ae=Q(Ae)),W&&xt?we(Ae):Ae},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Oi(_),Y=!0,te=ke,ge=be},e.clearConfig=function(){gn=null,Y=!1,te=null,ge=null,W=de,ne=""},e.isValidAttribute=function(_,p,b){gn||Oi({});let T=Te(_),L=Te(p);return Ie(T,L,b)},e.addHook=function(_,p){typeof p=="function"&&Qn(me,_)&&Ia(me[_],p)},e.removeHook=function(_,p){if(Qn(me,_)){if(p!==void 0){let b=cC(me[_],p);return b===-1?void 0:dC(me[_],b,1)[0]}return ly(me[_])}},e.removeHooks=function(_){Qn(me,_)&&(me[_]=[])},e.removeAllHooks=function(){me=Sy()},e}var Vi=Py();var LC=Yf(),jf=class extends _c{constructor(t,r){super(r);this.scrollbarWidth=12;this.parent=t,this.parent.setAttribute("tabindex","-1"),this.parent.addEventListener("mousedown",i=>{i.preventDefault(),this.parent.focus()}),ny(this.parent,()=>this.getShortcuts()),iy(this.parent,"verilog-waveform"),this.recreate()}getShortcuts(){return this.getActions()}recreate(){clearTimeout(this.wtimer),this.wtimer=setTimeout(()=>{this.destroy(),this._recreate()},0)}destroy(){this.wavelist&&($(this.wavelist.container).remove(),this.wavelist=null),this.toolbar&&(this.toolbar.destroy(),this.toolbar=null),this.clklabel&&(this.clklabel.remove(),this.clklabel=null)}_recreate(){if(this.meta=this.wfp.getSignalMetadata(),!!this.meta){var t=$(this.parent).width();this.pageWidth=t-this.scrollbarWidth;var r=40;this.setClocksPerPage(),this.clockMax=0,this.wavelist=new Nn({w:t,h:$(this.parent).height(),itemHeight:r,totalRows:this.meta.length+1,generatorFn:a=>{var l=this.meta[a];let c=document.createElement("div"),d=document.createElement("canvas");return d.width=t-12,d.height=r,c.appendChild(d),c.classList.add("waverow"),this.lines[a]=d,this.refreshRow(a),this.isEditable(l)&&(c.onmousedown=h=>{var u=this.meta[a];u&&u.input&&this.changeInputValue(a)},c.classList.add("editable"),c.style.cursor="grab"),c}});var i=this.wavelist.container;i.tabIndex=-1,this.toolbar=new Wi(this.parent,this.parent),this.toolbar.span.css("display","inline-block"),this.clklabel=document.createElement("span"),this.clklabel.innerText="-",$(this.parent).append(this.clklabel),$(this.parent).append(i);var s=!1,o=a=>{this.setSelTime(a.offsetX/this.zoom+this.t0-.5)};$(i).mousedown(a=>{s=!0,o(a)}),$(i).mousemove(a=>{s&&o(a)}),$(i).mouseup(a=>{s=!1}),$(i).on("wheel",a=>{if(Math.abs(a.originalEvent.deltaX)>Math.abs(a.originalEvent.deltaY)){var l=Math.max(-1e3,Math.min(1e3,a.originalEvent.deltaX));l&&this.setOrgTime(this.t0+l)}});for(let a of this.getActions())this.toolbar.add(a.key,a.label,a.icon,a.fn);this.toolbar.add("+","Zoom In",null,()=>this.setZoom(this.zoom*2)),$(window).resize(()=>{this.recreate()})}}selectionChanged(){this.clklabel.innerText=" clk "+this.tsel}promptValue(t,r,i,s){return new Promise(o=>{bootbox.prompt({value:r+"",inputType:"number",title:`Enter new value for "${Vi.sanitize(t.label)}" (${i} to ${s}):`,callback:a=>o(a!=null?parseInt(a):null)})})}},Mc=class{constructor(e,t){this.provider=t;var r=$("#emuoverlay").show();this.topdiv=$('
').appendTo(r)[0],this.topdiv.appendChild(e),this.wavediv=$('
').appendTo(r)[0],this.split=LC([this.topdiv,this.wavediv],{minSize:[0,0],sizes:[99,1],direction:"vertical",gutterSize:16,onDrag:()=>this.resize()})}isVisible(){return this.split.getSizes()[1]>2}show(){this.split.setSizes([0,100])}setCurrentTime(e){this.waveview&&this.waveview.setCurrentTime(e)}update(){this.isVisible()&&(this.waveview?this.waveview.refresh():this.waveview=new jf(this.wavediv,this.provider))}resize(){this.waveview&&this.waveview.recreate()}};function ky(){X0({createScope:(n,e)=>new Mc(n,e),showVideoControls(n){$("#speed_bar, #run_bar, #dbg_record").toggle(n)},showSettleCount(n){n==null?$("#verilog_bar").hide():($("#verilog_bar").show(),$("#settle_label").text(n+""))}})}var nt=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],DC=[...nt,/^\s*[.]?(include|incbin)\s+([^\s;"]+)/gmi],ZC=[...nt,/^\s*#pragma\s+compile\s*\(\s*"([^"]+)"\s*\)/gmi],lt=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],Na=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],IC=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function Ty(n){let e=n&&qt(n);return e&&e.includeDirs&&e.includeDirs.length?IC:[]}var $y=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],XC=[/^[!]src\s+"(.+?)"/gmi],zC=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],WC=[/^\s*(import)\s*"(.+?)"/gmi],NC=[/^\s*%%\s*#include\s+"(.+?)"/gm],BC={cc65:{apple2:"https://cc65.github.io/doc/apple2.html",atari8:"https://cc65.github.io/doc/atari.html",c64:"https://cc65.github.io/doc/c64.html",nes:"https://cc65.github.io/doc/nes.html",pce:"https://cc65.github.io/doc/pce.html",vic20:"https://cc65.github.io/doc/vic20.html",lynx:"https://cc65.github.io/doc/lynx.html"}},qf=3,Uf={default:qf===3?{preloadFS:"sdcc",wasiFSZip:"sdcc-fs.zip"}:{wasiFSZip:"sdcc-fs.zip"},coleco:{preloadFS:"sdcc"},"msx-libcv":{preloadFS:"sdcc"},sms:{preloadFS:"sdcc"},gb:{preloadFS:"sdcc"},cpc:{preloadFS:"sdcc"}},Qy={apple2:{wasiFSZip:"cc65-fs-apple2.zip"},c64:{wasiFSZip:"cc65-fs-c64.zip"},vic20:{wasiFSZip:"cc65-fs-vic20.zip"},nes:{wasiFSZip:"cc65-fs-nes.zip"},atari8:{wasiFSZip:"cc65-fs-atari8.zip"},vector:{wasiFSZip:"cc65-fs-none.zip"},atari7800:{wasiFSZip:"cc65-fs-none.zip"},devel:{wasiFSZip:"cc65-fs-none.zip"},vcs:{wasiFSZip:"cc65-fs-atari2600.zip"},pce:{wasiFSZip:"cc65-fs-pce.zip"},exidy:{wasiFSZip:"cc65-fs-none.zip"}},Qo={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/dasm-assembler/dasm/refs/tags/v2.20.17/docs/dasm.txt",wasmModule:"dasm-wasisdk",version:"2.20.17",includePatterns:DC,linkPatterns:lt},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/8bitworkshop/acme/main/docs/QuickRef.txt",wasmModule:"acme",version:"0.97.1",includePatterns:[...nt,...XC],linkPatterns:lt},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",version:"2.4.1",includePatterns:nt,linkPatterns:lt},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",helpURL:"https://github.com/camsaul/nesasm",wasmModule:"nesasm",version:"3.1",includePatterns:nt,linkPatterns:lt},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",helpURL:"https://github.com/apple2accumulator/merlin32",wasmModule:"merlin32",version:"1.1.1",includePatterns:[...nt,...$y],linkPatterns:lt},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],includeDirs:["/share/cc65/include","/share/cc65/asminc"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",version:"2.19",defineFlag:"-D",defineInline:!0,platforms:Qy,includePatterns:nt,linkPatterns:lt},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65",".inc"],includeDirs:["/share/cc65/include","/share/cc65/asminc"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",version:"2.19",defineFlag:"-D",defineInline:!1,platforms:Qy,includePatterns:nt,linkPatterns:lt},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65",version:"2.19",linkSymbolFlag:"-D",linkSymbolInline:!1},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h",".sdcc"],includeDirs:["/share/sdcc/include","/include"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc4",version:qf===3?"3.6.5":"4.6.0",versionAlt:qf===3?"4.6.0":"3.6.5",defineFlag:"-D",defineInline:!0,platforms:Uf,includePatterns:nt,linkPatterns:lt},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],includeDirs:["/share/sdcc/include","/include"],editorStyle:"z80",wasmModule:"sdasz80-4",version:"05.50.4+",platforms:Uf,includePatterns:nt,linkPatterns:lt},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:nt,linkPatterns:lt},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdld4",version:"05.50.4-",linkSymbolFlag:"-g",linkSymbolInline:!1},sdas6500:{id:"sdas6500",name:"sdas6500",kind:"assembler",arch:"6502",extensions:[],wasmModule:"sdas6500",version:"05.50.4+",platforms:Uf},sdld6808:{id:"sdld6808",name:"sdld6808",kind:"linker",arch:"6502",extensions:[],wasmModule:"sdld4",version:"05.50.4-",linkSymbolFlag:"-g",linkSymbolInline:!1},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{id:"naken",name:"Naken",kind:"assembler",extensions:[".ns"],helpURL:"https://github.com/mikeakohn/naken_asm",noWorkerBuild:!0},zmac:{id:"zmac",name:"zmac",kind:"assembler",arch:"z80",extensions:[".z"],editorStyle:"z80",helpURL:"https://raw.githubusercontent.com/8bitworkshop/zmac/master/doc.txt",wasmModule:"zmac",version:"28jul2018",includePatterns:nt,linkPatterns:lt},jsasm:{id:"jsasm",name:"JSASM",kind:"assembler",extensions:[".asm"],editorStyle:"z80",includePatterns:Na,linkPatterns:[]},xasm6809:{id:"xasm6809",name:"XASM6809",kind:"assembler",arch:"6809",extensions:[".xasm"],editorStyle:"6809",wasmModule:"xasm6809",includePatterns:[...nt,...$y],linkPatterns:lt},cmoc:{id:"cmoc",name:"CMOC",kind:"compiler",arch:"6809",extensions:[".c",".h"],editorStyle:"text/x-csrc",helpURL:"https://github.com/stahta01/cmoc/",wasmModule:"cmoc",version:"0.1.67",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},lwasm:{id:"lwasm",name:"LWASM",kind:"assembler",arch:"6809",extensions:[".lwasm"],editorStyle:"6809",wasmModule:"lwasm",version:"4.17",includePatterns:nt,linkPatterns:lt},lwlink:{id:"lwlink",name:"LWLINK",kind:"linker",arch:"6809",extensions:[],wasmModule:"lwlink",version:"4.17"},vasmarm:{id:"vasmarm",name:"vasm (ARM)",kind:"assembler",arch:"arm32",extensions:[".vasm"],editorStyle:"vasm",wasmModule:"vasmarm_std",version:"1.8k",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},armips:{id:"armips",name:"armips",kind:"assembler",arch:"arm32",extensions:[".armips"],editorStyle:"vasm",wasmModule:"armips",version:"0.11.0",includePatterns:nt,linkPatterns:lt},armtcc:{id:"armtcc",name:"TCC (ARM)",kind:"compiler",arch:"arm32",extensions:[".c",".s"],includeDirs:["/include"],wasiFSZip:"arm32-fs.zip",editorStyle:"text/x-csrc",wasmModule:"arm-tcc",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},armtcclink:{id:"armtcclink",name:"TCC (ARM) link",kind:"linker",arch:"arm32",extensions:[],wasmModule:"arm-tcc"},smlrc:{id:"smlrc",name:"SmallerC",kind:"compiler",arch:"x86",extensions:[".c"],helpURL:"https://github.com/alexfru/SmallerC/blob/master/v0100/doc/smlrc.md",editorStyle:"text/x-csrc",wasmModule:"smlrc",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},yasm:{id:"yasm",name:"YASM",kind:"assembler",arch:"x86",extensions:[".asm"],editorStyle:"gas",helpURL:"https://www.tortall.net/projects/yasm/manual/html/manual.html",wasmModule:"yasm",version:"1.3.0",defineFlag:"-D",defineInline:!1,includePatterns:nt,linkPatterns:lt},oscar64:{id:"oscar64",name:"Oscar64",kind:"compiler",arch:"6502",extensions:[".c",".cpp",".cc",".o64"],includeDirs:["/include"],wasiFSZip:"oscar64-fs.zip",editorStyle:"text/x-csrc",helpURL:"https://github.com/drmortalwombat/oscar64/blob/v1.32.266/oscar64.md",defineFlag:"-d",defineInline:!0,wasmModule:"oscar64",version:"1.32.266",includePatterns:ZC,linkPatterns:lt,compileLinkedSources:!0,platforms:{c64:{},atari8:{buildArgs:{compiler:["-tm=atari"]}},nes:{buildArgs:{compiler:["-tm=nes"]}}}},bataribasic:{id:"bataribasic",name:"batari Basic",kind:"compiler",arch:"6502",extensions:[".bb",".bas"],includeDirs:["/includes"],editorStyle:"bataribasic",helpURL:"help/bataribasic/manual.html",wasiFSZip:"bb-fs.zip",platforms:{default:{}},includePatterns:nt,linkPatterns:lt},fastbasic:{id:"fastbasic",name:"FastBasic",kind:"compiler",arch:"6502",extensions:[".bas",".fb",".fbi"],editorStyle:"fastbasic",helpURL:"https://github.com/dmsc/fastbasic/blob/v4.4/manual.md",wasmModule:"fastbasic-int",version:"4.4",platforms:{default:{wasiFSZip:"cc65-fs-atari8.zip"}},includePatterns:nt,linkPatterns:lt},cc2600:{id:"cc2600",name:"CC2600",kind:"compiler",arch:"6502",extensions:[".cc2600"],editorStyle:"text/x-csrc",helpURL:"https://github.com/steux/cc2600",wasmModule:"cc2600",version:"0.4.5",wasiFSZip:"cc2600-fs.zip",includeDirs:["/headers"],includePatterns:nt,linkPatterns:lt},cc7800:{id:"cc7800",name:"CC7800",kind:"compiler",arch:"6502",extensions:[".cc7800",".c78"],editorStyle:"text/x-csrc",helpURL:"https://github.com/steux/cc7800",wasmModule:"cc7800",version:"0.2.28",wasiFSZip:"cc7800-fs.zip",includeDirs:["/headers"],includePatterns:nt,linkPatterns:lt},basic:{id:"basic",name:"BASIC",kind:"interpreter",extensions:[".bas"],editorStyle:"basic"},wiz:{id:"wiz",name:"wiz",kind:"compiler",extensions:[".wiz"],includeDirs:["/common/$platform"],editorStyle:"text/x-wiz",helpURL:"https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz",wasmModule:"wiz",version:"0.1.2",platforms:{default:{preloadFS:"wiz"}},includePatterns:zC},ecs:{id:"ecs",name:"ECS",kind:"assembler",arch:"6502",extensions:[".ecs"],editorStyle:"ecs",platforms:{vcs:{wasiFSZip:"cc65-fs-atari2600.zip"},nes:{wasiFSZip:"cc65-fs-nes.zip"},c64:{wasiFSZip:"cc65-fs-c64.zip"}},includePatterns:[...nt,...WC]},inform6:{id:"inform6",name:"Inform 6",kind:"compiler",arch:"zmachine",extensions:[".inf"],editorStyle:"inform6",wasmModule:"inform",version:"6.34",platforms:{default:{preloadFS:"inform"}}},dialog:{id:"dialog",name:"Dialog",kind:"compiler",arch:"zmachine",extensions:[".dg"],editorStyle:"dialog",helpURL:"https://linusakesson.net/dialog/docs/",wasmModule:"dialogc",version:"1c/03-dev",wasiFSZip:"dialog-fs.zip",includeDirs:["/"],includePatterns:NC},verilator:{id:"verilator",name:"Verilator",kind:"hdl",arch:"verilog",extensions:[".v"],editorStyle:"verilog",helpURL:"https://verilator.org/guide/4.205/",wasmModule:"verilator_bin",version:"4.205",includePatterns:Na,linkPatterns:[]},yosys:{id:"yosys",name:"Yosys",kind:"hdl",arch:"verilog",extensions:[],wasmModule:"yosys",includePatterns:Na,linkPatterns:[]},silice:{id:"silice",name:"Silice",kind:"hdl",arch:"verilog",extensions:[".ice"],editorStyle:"verilog",helpURL:"https://github.com/sylefeb/Silice",wasmModule:"silice",version:"0.1",platforms:{default:{preloadFS:"Silice"}},includePatterns:Na,linkPatterns:[]},"llvm-mos":{id:"llvm-mos",name:"LLVM-MOS",kind:"compiler",arch:"6502",extensions:[".c",".cpp",".s",".S",".C"],editorStyle:"text/x-csrc",helpURL:"https://llvm-mos.org/wiki/Welcome",remote:!0,includePatterns:nt,linkPatterns:lt,server:{version:"latest",platforms:["atari8","c64","nes","pce","vcs"],binpath:"llvm-mos/bin",command:"mos-clang",args:["-Os","-g","-D","__8BITWORKSHOP__","-o","$OUTFILE","$INFILES"]}},remote:{id:"remote",name:"Remote build",kind:"remote",extensions:[],remote:!0}};function qt(n){return Qo[n.replace(/^remote:/,"")]}function Ay(n,e){let t=qt(n);if(!t||!e)return;let r=BC[t.id];if(!r)return;let i=r[e];if(!i){let s=Mr(e);s&&s!==e&&(i=r[s])}return i}function Cy(n){let e=[];for(let t in Qo){let r=Qo[t];for(let i of r.extensions)if(i&&n.endsWith(i)){e.push({meta:r,len:i.length});break}}return e.sort((t,r)=>r.len-t.len).map(t=>t.meta)}function VC(n,e){let t=n&&qt(n);if(!(!t||!t.platforms)){if(e){let r=t.platforms[e];if(r)return r;let i=Mr(e);if(i&&i!==e&&t.platforms[i])return t.platforms[i]}return t.platforms.default}}function FC(n,e){let t=qt(n);if(t&&t.platforms){if(e){let i=t.platforms[e];if(i&&i.preloadFS)return i.preloadFS;let s=Mr(e);if(s&&s!==e){let o=t.platforms[s];if(o&&o.preloadFS)return o.preloadFS}}let r=t.platforms.default;if(r&&r.preloadFS)return r.preloadFS}}function Gf(n){let e=qt(n);return e&&e.skeleton?e.skeleton:n.replace(/^remote:/,"")}function _y(n){return!n||!n.version?"\u2014":n.versionAlt?n.version+" (default) / "+n.versionAlt:n.version}function Lc(n,e){let t=n&&qt(n);return t&&t.includePatterns?t.includePatterns:e&&e.startsWith("verilog")?Na:nt}function Dc(n,e){let t=n&&qt(n);return t&&t.linkPatterns?t.linkPatterns:e&&e.startsWith("verilog")?[]:lt}function Ey(n){let e=n&&qt(n);return!!(e&&e.compileLinkedSources)}function Zc(n,e){e=e&&Mr(e);let t=n&&qt(n),r=t&&t.includeDirs||[];return r=r.map(i=>i.replace("$platform",e)),r}function Ic(n,e){var t=FC(n,e);if(t)return t;let r=VC(n,e);if(r&&r.wasiFSZip)return"wasi:"+r.wasiFSZip;let i=n&&qt(n);return i&&i.wasiFSZip?"wasi:"+i.wasiFSZip:void 0}function Ry(n,e){let t=[],r=n.split(` +`);for(let i of e||[]){let s=i instanceof RegExp?{re:i}:i;for(let o of r){let a;for(s.re.lastIndex=0;a=s.re.exec(o);){let l=a[s.group!=null?s.group:a.length-1];l&&t.push(s.suffix?l+s.suffix:l)}}}return t}var Lr={vcs:{arch:"6502",code_start:4096,code_size:61440,data_start:128,data_size:128,wiz_rom_ext:".a26",wiz_inc_dir:"2600",cfgfile:"atari2600.cfg",libargs:["crt0.o","atari2600.lib"],extra_link_files:["crt0.o","atari2600.cfg"],asm_cfgfile:"atari2600-asm.cfg",asm_libargs:[],asm_extra_link_files:["atari2600-asm.cfg"],extra_compile_files:["vcs.h","macro.h"],define:["__ATARI2600__"]},mw8080bw:{arch:"z80",code_start:0,rom_size:8192,data_start:8192,data_size:1024,stack_end:9216},vicdual:{arch:"z80",code_start:0,rom_size:16416,data_start:58368,data_size:1024,stack_end:59392},galaxian:{arch:"z80",code_start:0,rom_size:16384,data_start:16384,data_size:1024,stack_end:18432},"galaxian-scramble":{arch:"z80",code_start:0,rom_size:20512,data_start:16384,data_size:1024,stack_end:18432},pacman:{arch:"z80",code_start:0,codeseg_start:202,rom_size:32768,data_start:19456,data_size:652,stack_end:20416},williams:{arch:"6809",code_start:0,rom_size:49152,data_start:38912,data_size:10240,stack_end:49152,set_stack_end:49152,extra_link_files:["williams.scr","libcmoc-crt-vec.a","libcmoc-std-vec.a"],extra_link_args:["-swilliams.scr","-lcmoc-crt-vec","-lcmoc-std-vec"],extra_compile_files:["assert.h","cmoc.h","stdarg.h","stdlib.h"]},"williams-defender":{arch:"6809",code_start:0,rom_size:49152,data_start:38912,data_size:10240,stack_end:49152},"williams-z80":{arch:"z80",code_start:0,rom_size:38912,data_start:38912,data_size:10240,stack_end:49152},"vector-z80color":{arch:"z80",code_start:0,rom_size:32768,data_start:57344,data_size:8192,stack_end:0},"vector-ataricolor":{arch:"6502",define:["__VECTOR__"],cfgfile:"vector-color.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","vector-color.cfg"]},"sound_williams-z80":{arch:"z80",code_start:0,rom_size:16384,data_start:16384,data_size:1024,stack_end:32768},base_z80:{arch:"z80",code_start:0,rom_size:32768,data_start:32768,data_size:32768,stack_end:0},coleco:{arch:"z80",rom_start:32768,code_start:33024,rom_size:32768,data_start:28672,data_size:1024,stack_end:32768,extra_preproc_args:["-I","/share/include/coleco","-D","CV_CV"],extra_link_args:["-k","/share/lib/coleco","-l","libcv","-l","libcvu","crt0.rel"]},msx:{arch:"z80",rom_start:16384,code_start:16384,rom_size:32768,data_start:49152,data_size:12288,stack_end:65535,extra_link_args:["crt0-msx.rel"],extra_link_files:["crt0-msx.rel","crt0-msx.lst"],wiz_sys_type:"z80",wiz_inc_dir:"msx"},"msx-libcv":{arch:"z80",rom_start:16384,code_start:16384,rom_size:32768,data_start:49152,data_size:12288,stack_end:65535,extra_preproc_args:["-I",".","-D","CV_MSX"],extra_link_args:["-k",".","-l","libcv-msx","-l","libcvu-msx","crt0-msx.rel"],extra_link_files:["libcv-msx.lib","libcvu-msx.lib","crt0-msx.rel","crt0-msx.lst"],extra_compile_files:["cv.h","cv_graphics.h","cv_input.h","cv_sound.h","cv_support.h","cvu.h","cvu_c.h","cvu_compression.h","cvu_f.h","cvu_graphics.h","cvu_input.h","cvu_sound.h"]},"sms-sg1000-libcv":{arch:"z80",rom_start:0,code_start:256,rom_size:49152,data_start:49152,data_size:1024,stack_end:57344,extra_preproc_args:["-I",".","-D","CV_SMS"],extra_link_args:["-k",".","-l","libcv-sms","-l","libcvu-sms","crt0-sms.rel"],extra_link_files:["libcv-sms.lib","libcvu-sms.lib","crt0-sms.rel","crt0-sms.lst"],extra_compile_files:["cv.h","cv_graphics.h","cv_input.h","cv_sound.h","cv_support.h","cvu.h","cvu_c.h","cvu_compression.h","cvu_f.h","cvu_graphics.h","cvu_input.h","cvu_sound.h"]},nes:{arch:"6502",define:["__NES__"],cfgfile:"neslib2.cfg",libargs:["crt0.o","nes.lib","neslib2.lib","-D","NES_MAPPER=0","-D","NES_PRG_BANKS=2","-D","NES_CHR_BANKS=1","-D","NES_MIRRORING=0"],extra_link_files:["crt0.o","neslib2.lib","neslib2.cfg","nesbanked.cfg"],extra_compile_files:["neslib.h"],symbolConfigs:{NES_MAPPER:{4:"nesbanked.cfg"}},ignore_segments:["HEADER","CHARS"],wiz_rom_ext:".nes"},apple2:{arch:"6502",define:["__APPLE2__"],cfgfile:"apple2.cfg",libargs:["--lib-path","/share/target/apple2/drv","apple2.lib"],__CODE_RUN__:16384,code_start:2051,rom_size:35837,data_start:37888,zp_start:96,load_header:"dos33",acmeargs:["-f","apple"]},"apple2-e":{arch:"6502",define:["__APPLE2__"],cfgfile:"apple2.cfg",libargs:["apple2.lib"],acmeargs:["-f","apple"]},"atari8-800xl.disk":{arch:"6502",define:["__ATARI__"],cfgfile:"atari.cfg",libargs:["atari.lib"],fastbasic_cfgfile:"fastbasic-cart.cfg",ignore_segments:["EXEHDR","SYSCHKHDR","SYSCHKTRL","MAINHDR","AUTOSTRT"]},"atari8-800xl":{arch:"6502",define:["__ATARI__"],cfgfile:"atari-cart.cfg",libargs:["atari.lib","-D","__CARTFLAGS__=4"],fastbasic_cfgfile:"fastbasic-cart.cfg"},"atari8-800":{arch:"6502",define:["__ATARI__"],cfgfile:"atari-cart.cfg",libargs:["atari.lib","-D","__CARTFLAGS__=4"],fastbasic_cfgfile:"fastbasic-cart.cfg"},"atari8-5200":{arch:"6502",define:["__ATARI5200__"],cfgfile:"atari5200.cfg",libargs:["atari5200.lib","-D","__CARTFLAGS__=255"],fastbasic_cfgfile:"fastbasic-cart.cfg"},verilog:{arch:"verilog",extra_compile_files:["8bitworkshop.v"]},astrocade:{arch:"z80",code_start:8192,rom_size:8192,data_start:19984,data_size:496,stack_end:20480},"astrocade-arcade":{arch:"z80",code_start:0,rom_size:16384,data_start:32224,data_size:544,stack_end:32768},"astrocade-bios":{arch:"z80",code_start:0,rom_size:8192,data_start:20430,data_size:50,stack_end:20430},atari7800:{arch:"6502",define:["__ATARI7800__"],cfgfile:"atari7800.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","atari7800.cfg"]},c64:{arch:"6502",define:["__CBM__","__C64__"],cfgfile:"c64.cfg",libargs:["openroms-compat.o","c64.lib"],extra_link_files:["openroms-compat.o"],code_start:2061,rom_size:38899,data_start:49152,zp_start:2,load_header:"prg",acmeargs:["-f","cbm"]},vic20:{arch:"6502",define:["__CBM__","__VIC20__"],cfgfile:"vic20.cfg",libargs:["vic20.lib"],acmeargs:["-f","cbm"]},kim1:{arch:"6502"},vectrex:{arch:"6809",code_start:0,rom_size:32768,data_start:51328,data_size:896,stack_end:52224,extra_compile_files:["assert.h","cmoc.h","stdarg.h","vectrex.h","stdlib.h","bios.h"],extra_link_files:["vectrex.scr","libcmoc-crt-vec.a","libcmoc-std-vec.a"],extra_compile_args:["--vectrex"],extra_link_args:["-svectrex.scr","-lcmoc-crt-vec","-lcmoc-std-vec"]},x86:{arch:"x86"},zx:{arch:"z80",code_start:23755,rom_size:41613,data_start:61440,data_size:3584,stack_end:65368,extra_link_args:["crt0-zx.rel"],extra_link_files:["crt0-zx.rel","crt0-zx.lst"]},"devel-6502":{arch:"6502",cfgfile:"devel-6502.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","devel-6502.cfg"],code_start:32768,rom_size:32768,data_start:512},"cpc.rslib":{arch:"z80",code_start:16384,rom_size:28928,data_start:45312,data_size:-3840,stack_end:49152,extra_compile_files:["cpcrslib.h"],extra_link_args:["crt0-cpc.rel","cpcrslib.lib"],extra_link_files:["crt0-cpc.rel","crt0-cpc.lst","cpcrslib.lib","cpcrslib.lst"]},cpc:{arch:"z80",code_start:16384,rom_size:28928,data_start:45312,data_size:-3840,stack_end:49152,extra_compile_files:["cpctelera.h"],extra_link_args:["crt0-cpc.rel","cpctelera.lib"],extra_link_files:["crt0-cpc.rel","crt0-cpc.lst","cpctelera.lib","cpctelera.lst"]},pce:{arch:"huc6280",define:["__PCE__"],cfgfile:"pce.cfg",libargs:["pce.lib","-D","__CARTSIZE__=0x8000"]},exidy:{define:["__EXIDY__"],cfgfile:"exidy.cfg",libargs:["crt0.o","none.lib"],extra_link_files:["crt0.o","exidy.cfg"]},arm32:{arch:"arm32",define:["__ARM__","DISABLE_UNIMPLEMENTED_LIBC_APIS","PRINTF_ALIAS_STANDARD_FUNCTION_NAMES_SOFT"],extra_compile_args:["-I./arch/arm/include","-I./openlibm/include","-I./openlibm/src","-I./printf/src"],extra_link_files:["crt0.c","libc.a"],extra_link_args:["crt0.c","-lc"]},gb:{arch:"gbz80",code_start:0,codeseg_start:512,rom_size:32768,rom_banking:{size:16384,window:16384},data_start:49312,data_size:8032,stack_end:57344,extra_link_files:["gbz80.lib","gb.lib","sfr.rel","sfr.lst","crt0.rel","crt0.lst"],startup_objs:["sfr.rel","crt0.rel"],asm_startup_objs:[],extra_compile_files:["gb/bgb_emu.h","gb/cgb.h","gb/crash_handler.h","gb/drawing.h","gb/emu_debug.h","gb/gb.h","gb/gbdecompress.h","gb/hardware.h","gb/isr.h","gb/metasprites.h","gb/sgb.h","gb/types.h"],extra_link_args:["-l","gb","-g","_shadow_OAM=0xC000","-g",".STACK=0xE000","-g",".refresh_OAM=0xFF80","-g","GB_MAPPER=0x0","-g","GB_ROM_SIZE=0x0","-g","GB_RAM_SIZE=0x0","-g","GB_CGB_FLAGS=0x0"],wiz_sys_type:"gb",wiz_inc_dir:"gb"},mcr:{arch:"z80",code_start:0,rom_size:106496,data_start:57344,data_size:2048,stack_end:59392}};Lr["sms-sms-libcv"]=zi(Ue({},Lr["sms-sg1000-libcv"]),{extra_preproc_args:["-I",".","-D","CV_SMS","-D","CV_MODE4"]});Lr["sms-gg-libcv"]=Lr["sms-sms-libcv"];Lr["gb.color"]=zi(Ue({},Lr.gb),{extra_link_args:Lr.gb.extra_link_args.map(n=>n==="GB_CGB_FLAGS=0x0"?"GB_CGB_FLAGS=0x80":n)});function YC(n){return n.severity==="warning"}function My(n){return n.some(e=>!YC(e))}var Rs=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var r of e)r.offset>=0&&(this.offset2loc.has(r.offset)||this.offset2loc.set(r.offset,r),this.line2offset.has(r.line)||this.line2offset.set(r.line,r.offset));this.sortedOffsets=Array.from(this.offset2loc.keys()).sort((i,s)=>i-s)}findLineForOffset(e,t,r){let i=this.sortedOffsets;for(var s=0,o=i.length-1,a=-1;s<=o;){var l=s+o>>1;i[l]<=e?(a=l,s=l+1):o=l-1}if(a<0)return null;var c=i[a];if(r!=null&&ct?null:this.offset2loc.get(c)}firstOffsetAtOrAfter(e,t){for(var r=0,i=t.length-1,s=-1;r<=i;){var o=r+i>>1;t[o]>=e?(s=o,i=o-1):r=o+1}return s<0?null:t[s]}lineCount(){return this.lines.length}};function Xc(n){return"errors"in n}function Ly(n){return"output"in n}function Hf(n,e){if(n==null)return"";try{var t=typeof n=="string"?n:typeof n=="object"?JSON.stringify(n):n+"";return t.substring(0,e)}catch(r){return""}}var jC=/bot\b|bot\/|crawl|spider|slurp|headless|lighthouse|facebookexternalhit|preview|inspectiontool|pingdom|python-requests|\bcurl\/|\bwget\//i;function Dy(n){return!!n&&jC.test(n)}function UC(n){return{msg:String(n&&n.message||n),stack:n&&n.stack}}var zc=class{constructor(e,t,r={}){this.source=e;this.send=t;this.common=r;this.sent=0;this.seen=new Set}report(e,t,r,i){i=i||this.source;var s=[i,r&&r.tool,e].join("|");if(this.sent>=10||this.seen.has(s))return!1;this.seen.add(s),this.sent++;var o={source:i,msg:Hf(e,500),stack:Hf(t,2e3),clientTime:new Date().toISOString()},a=Ue(Ue({},this.common),r);for(var l in a)!(l in o)&&a[l]!=null&&(o[l]=Hf(a[l],2e3));return this.send(o),!0}reportError(e,t,r){var i=UC(e);return this.report(i.msg,i.stack,t,r)}};var Zy="/error.php",qC=typeof navigator!="undefined"&&(navigator.webdriver||Dy(navigator.userAgent));function GC(n){if(!qC){n.url=window.location.href.substring(0,500),n.userAgent=navigator.userAgent.substring(0,500),n.language=navigator.language;var e=JSON.stringify(n);navigator.sendBeacon?navigator.sendBeacon(Zy,new Blob([e],{type:"application/json"})):fetch(Zy,{method:"POST",headers:{"Content-Type":"application/json"},body:e,keepalive:!0}).catch(t=>console.log("error report failed",t))}}var Iy=new zc("ide",GC);function Xy(n,e,t,r){try{Iy.report(n,e&&e.stack,t,r)}catch(i){console.log("error report failed",i)}}function zy(n,e,t){try{Iy.report(e.msg,e.stack,t,n)}catch(r){console.log("error report failed",r)}}function Je(n){n?(Dr(0),$("#pleaseWaitModal").modal("show")):(Dr(1),$("#pleaseWaitModal").modal("hide"))}function Dr(n){$("#pleaseWaitProgressBar").css("width",n*100+"%").show()}function Re(n){Je(!1),bootbox.alert({title:' Alert',message:Vi.sanitize(n)})}function an(n){Je(!1),bootbox.alert(Vi.sanitize(n))}function Wy(n){throw Re(n),new Error(n)}var Jf=[],Fy=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=Fy[r])e=r+1;else return!0;if(e==t)return!1}}function Ny(n){return n>=127462&&n<=127487}var By=8205;function Yy(n,e,t=!0,r=!0){return(t?jy:KC)(n,e,r)}function jy(n,e,t){if(e==n.length)return e;e&&Uy(n.charCodeAt(e))&&qy(n.charCodeAt(e-1))&&e--;let r=Kf(n,e);for(e+=Vy(r);e=0&&Ny(Kf(n,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function KC(n,e,t){for(;e>1;){let r=jy(n,e-2,t);if(r=56320&&n<57344}function qy(n){return n>=55296&&n<56320}function Vy(n){return n<65536?1:2}var De=class n{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,r){[e,t]=_o(this,e,t);let i=[];return this.decompose(0,e,i,2),r.length&&r.decompose(0,r.length,i,3),this.decompose(t,this.length,i,1),To.from(i,this.length-(t-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=_o(this,e,t);let r=[];return this.decompose(e,t,r,0),To.from(r,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),i=new Zs(this),s=new Zs(e);for(let o=t,a=t;;){if(i.next(o),s.next(o),o=0,i.lineBreak!=s.lineBreak||i.done!=s.done||i.value!=s.value)return!1;if(a+=i.value.length,i.done||a>=r)return!0}}iter(e=1){return new Zs(this,e)}iterRange(e,t=this.length){return new Fc(this,e,t)}iterLines(e,t){let r;if(e==null)r=this.iter();else{t==null&&(t=this.lines+1);let i=this.line(e).from;r=this.iterRange(i,Math.max(i,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Yc(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?n.empty:e.length<=32?new Fn(e):To.from(Fn.split(e,[]))}},Fn=class n extends De{constructor(e,t=JC(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,r,i){for(let s=0;;s++){let o=this.text[s],a=i+o.length;if((t?r:a)>=e)return new tp(i,a,r,o);i=a+1,r++}}decompose(e,t,r,i){let s=e<=0&&t>=this.length?this:new n(Gy(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(i&1){let o=r.pop(),a=Vc(s.text,o.text.slice(),0,s.length);if(a.length<=32)r.push(new n(a,o.length+s.length));else{let l=a.length>>1;r.push(new n(a.slice(0,l)),new n(a.slice(l)))}}else r.push(s)}replace(e,t,r){if(!(r instanceof n))return super.replace(e,t,r);[e,t]=_o(this,e,t);let i=Vc(this.text,Vc(r.text,Gy(this.text,0,e)),t),s=this.length+r.length-(t-e);return i.length<=32?new n(i,s):To.from(n.split(i,[]),s)}sliceString(e,t=this.length,r=` `){[e,t]=_o(this,e,t);let i="";for(let s=0,o=0;s<=t&&oe&&o&&(i+=r),es&&(i+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return i}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let r=[],i=-1;for(let s of e)r.push(s),i+=s.length+1,r.length==32&&(t.push(new n(r,i)),r=[],i=-1);return i>-1&&t.push(new n(r,i)),t}},To=class n extends De{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,i){for(let s=0;;s++){let o=this.children[s],a=i+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,i);i=a+1,r=l+1}}decompose(e,t,r,i){for(let s=0,o=0;o<=t&&s=o){let c=i&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=_o(this,e,t),r.lines=s&&t<=a){let l=o.replace(e-s,t-s,r),c=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>c>>6){let d=this.children.slice();return d[i]=l,new n(d,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=` -`){[e,t]=_o(this,e,t);let i="";for(let s=0,o=0;se&&s&&(i+=r),eo&&(i+=a.sliceString(e-o,t-o,r)),o=l+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof n))return 0;let r=0,[i,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,s+=t){if(i==o||s==a)return r;let l=this.children[i],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,i)=>r+i.length+1,-1)){let r=0;for(let f of e)r+=f.lines;if(r<32){let f=[];for(let m of e)m.flatten(f);return new Fn(f,t)}let i=Math.max(32,r>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,d=[];function h(f){let m;if(f.lines>s&&f instanceof n)for(let O of f.children)h(O);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof Fn&&l&&(m=d[d.length-1])instanceof Fn&&f.lines+m.lines<=32?(l+=f.lines,c+=f.length+1,d[d.length-1]=new Fn(m.text.concat(f.text),m.length+1+f.length)):(l+f.lines>i&&u(),l+=f.lines,c+=f.length+1,d.push(f))}function u(){l!=0&&(a.push(d.length==1?d[0]:n.from(d,c)),c=-1,l=d.length=0)}for(let f of e)h(f);return u(),a.length==1?a[0]:new n(a,t)}};De.empty=new Fn([""],0);function HC(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Vc(n,e,t=0,r=1e9){for(let i=0,s=0,o=!0;s=t&&(l>r&&(a=a.slice(0,r-i)),i0?1:(e instanceof Fn?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,i=this.nodes[r],s=this.offsets[r],o=s>>1,a=i instanceof Fn?i.text.length:i.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(i instanceof Fn){let l=i.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=i.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Fn?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Fc=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new Zs(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=r?i:t<0?i.slice(i.length-r):i.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Yc=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(De.prototype[Symbol.iterator]=function(){return this.iter()},Zs.prototype[Symbol.iterator]=Fc.prototype[Symbol.iterator]=Yc.prototype[Symbol.iterator]=function(){return this});var tp=class{constructor(e,t,r,i){this.from=e,this.to=t,this.number=r,this.text=i}get length(){return this.to-this.from}};function _o(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function Pt(n,e,t=!0,r=!0){return Yy(n,e,t,r)}function KC(n){return n>=56320&&n<57344}function JC(n){return n>=55296&&n<56320}function Ir(n,e){let t=n.charCodeAt(e);if(!JC(t)||e+1==n.length)return t;let r=n.charCodeAt(e+1);return KC(r)?(t-55296<<10)+(r-56320)+65536:t}function Hc(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Yi(n){return n<65536?1:2}var np=/\r\n?|\n/,Xt=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(Xt||(Xt={})),vi=class n{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-i);s+=a}else{if(r!=Xt.Simple&&c>=e&&(r==Xt.TrackDel&&ie||r==Xt.TrackBefore&&ie))return null;if(c>e||c==e&&t<0&&!a)return e==i||t<0?s:s+l;s+=l}i=c}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let r=0,i=0;r=0&&i<=t&&a>=e)return it?"cover":!0;i=a}return!1}toString(){let e="";for(let t=0;t=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new n(e)}static create(e){return new n(e)}},On=class n extends vi{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return rp(this,(t,r,i,s,o)=>e=e.replace(i,i+(r-t),o),!1),e}mapDesc(e,t=!1){return ip(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let i=0,s=0;i=0){t[i]=a,t[i+1]=o;let l=i>>1;for(;r.length0&&Fi(r,t,s.text),s.forward(d),a+=d}let c=e[o++];for(;a>1].toJSON()))}return e}static of(e,t,r){let i=[],s=[],o=0,a=null;function l(d=!1){if(!d&&!i.length)return;ou||h<0||u>t)throw new RangeError(`Invalid change range ${h} to ${u} (in doc of length ${t})`);let m=f?typeof f=="string"?De.of(f.split(r||np)):f:De.empty,O=m.length;if(h==u&&O==0)return;ho&&ln(i,h-o,-1),ln(i,u-h,O),Fi(s,i,m),o=u}}return c(e),l(!a),a}static empty(e){return new n(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],r=[];for(let i=0;ia&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;r.length=0&&t<=0&&t==n[i+1]?n[i]+=e:i>=0&&e==0&&n[i]==0?n[i+1]+=t:r?(n[i]+=e,n[i+1]+=t):n.push(e,t)}function Fi(n,e,t){if(t.length==0)return;let r=e.length-2>>1;if(r>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)a=n.sections[o++],l=n.sections[o++];e(i,c,s,d,h),i=c,s=d}}}function ip(n,e,t,r=!1){let i=[],s=r?[]:null,o=new Is(n),a=new Is(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);ln(i,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len=0&&l=0){let c=0,d=o.len;for(;d;)if(a.ins==-1){let h=Math.min(d,a.len);c+=h,d-=h,a.forward(h)}else if(a.ins==0&&a.lenl||o.ins>=0&&o.len>l)&&(a||r.length>c),s.forward2(l),o.forward(l)}}}}var Is=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?De.empty:e[t]}textBit(e){let{inserted:t}=this.set,r=this.i-2>>1;return r>=t.length&&!e?De.empty:t[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Ms=class n{constructor(e,t,r,i){this.from=e,this.to=t,this.flags=r,this.goalColumn=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let r,i;return this.empty?r=i=e.mapPos(this.from,t):(r=e.mapPos(this.from,1),i=e.mapPos(this.to,-1)),r==this.from&&i==this.to?this:new n(r,i,this.flags,this.goalColumn)}extend(e,t=e,r=0){if(e<=this.anchor&&t>=this.anchor)return z.range(e,t,void 0,void 0,r);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return z.range(this.anchor,i,void 0,void 0,r)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return z.range(e.anchor,e.head)}static create(e,t,r,i){return new n(e,t,r,i)}},z=class n{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:n.create(this.ranges.map(r=>r.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new n(e.ranges.map(t=>Ms.fromJSON(t)),e.main)}static single(e,t=e){return new n([n.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,i=0;ii.from-s.from),t=e.indexOf(r);for(let i=1;is.head?n.range(l,a):n.range(a,l))}}return new n(e,t)}};function nS(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var pp=0,oe=class n{constructor(e,t,r,i,s){this.combine=e,this.compareInput=t,this.compare=r,this.isStatic=i,this.id=pp++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new n(e.combine||(t=>t),e.compareInput||((t,r)=>t===r),e.compare||(e.combine?(t,r)=>t===r:mp),!!e.static,e.enables)}of(e){return new Ao([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ao(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ao(e,this,2,t)}from(e,t){return t||(t=r=>r),this.compute([e],r=>t(r.field(e)))}};function mp(n,e){return n==e||n.length==e.length&&n.every((t,r)=>t===e[r])}var Ao=class{constructor(e,t,r,i){this.dependencies=e,this.facet=t,this.type=r,this.value=i,this.id=pp++}dynamicSlot(e){var t;let r=this.value,i=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,c=!1,d=[];for(let h of this.dependencies)h=="doc"?l=!0:h=="selection"?c=!0:(((t=e[h.id])!==null&&t!==void 0?t:1)&1)==0&&d.push(e[h.id]);return{create(h){return h.values[o]=r(h),1},update(h,u){if(l&&u.docChanged||c&&(u.docChanged||u.selection)||sp(h,d)){let f=r(h);if(a?!Hy(f,h.values[o],i):!i(f,h.values[o]))return h.values[o]=f,1}return 0},reconfigure:(h,u)=>{let f,m=u.config.address[s];if(m!=null){let O=qc(u,m);if(this.dependencies.every(S=>S instanceof oe?u.facet(S)===h.facet(S):S instanceof Xe?u.field(S,!1)==h.field(S,!1):!0)||(a?Hy(f=r(h),O,i):i(f=r(h),O)))return h.values[o]=O,0}else f=r(h);return h.values[o]=f,1}}}get extension(){return this}};function Hy(n,e,t){if(n.length!=e.length)return!1;for(let r=0;rn[l.id]),i=t.map(l=>l.type),s=r.filter(l=>!(l&1)),o=n[e.id]>>1;function a(l){let c=[];for(let d=0;dr===i),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Wc).find(r=>r.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:r=>(r.values[t]=this.create(r),1),update:(r,i)=>{let s=r.values[t],o=this.updateF(s,i);return this.compareF(s,o)?0:(r.values[t]=o,1)},reconfigure:(r,i)=>{let s=r.facet(Wc),o=i.facet(Wc),a;return(a=s.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(r.values[t]=a.create(r),1):i.config.address[this.id]!=null?(r.values[t]=i.field(this),0):(r.values[t]=this.create(r),1)}}}init(e){return[this,Wc.of({field:this,create:e})]}get extension(){return this}},Ls={lowest:4,low:3,default:2,high:1,highest:0};function Ba(n){return e=>new jc(e,n)}var pr={highest:Ba(Ls.highest),high:Ba(Ls.high),default:Ba(Ls.default),low:Ba(Ls.low),lowest:Ba(Ls.lowest)},jc=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},Vt=class n{of(e){return new Fa(this,e)}reconfigure(e){return n.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Fa=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},Uc=class n{constructor(e,t,r,i,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=r,this.address=i,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,r){let i=[],s=Object.create(null),o=new Map;for(let u of t_(e,t,o))u instanceof Xe?i.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let a=Object.create(null),l=[],c=[];for(let u of i)a[u.id]=c.length<<1,c.push(f=>u.slot(f));let d=r==null?void 0:r.config.facets;for(let u in s){let f=s[u],m=f[0].facet,O=d&&d[u]||[];if(f.every(S=>S.type==0))if(a[m.id]=l.length<<1|1,mp(O,f))l.push(r.facet(m));else{let S=m.combine(f.map(x=>x.value));l.push(r&&m.compare(S,r.facet(m))?r.facet(m):S)}else{for(let S of f)S.type==0?(a[S.id]=l.length<<1|1,l.push(S.value)):(a[S.id]=c.length<<1,c.push(x=>S.dynamicSlot(x)));a[m.id]=c.length<<1,c.push(S=>e_(S,m,f))}}let h=c.map(u=>u(a));return new n(e,o,h,a,l,s)}};function t_(n,e,t){let r=[[],[],[],[],[]],i=new Map;function s(o,a){let l=i.get(o);if(l!=null){if(l<=a)return;let c=r[l].indexOf(o);c>-1&&r[l].splice(c,1),o instanceof Fa&&t.delete(o.compartment)}if(i.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof Fa){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,a)}else if(o instanceof jc)s(o.inner,o.prec);else if(o instanceof Xe)r[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof Ao)r[a].push(o),o.facet.extensions&&s(o.facet.extensions,Ls.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(c==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,a)}}return s(n,Ls.default),r.reduce((o,a)=>o.concat(a))}function Va(n,e){if(e&1)return 2;let t=e>>1,r=n.status[t];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;n.status[t]=4;let i=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|i}function qc(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}var rS=oe.define(),op=oe.define({combine:n=>n.some(e=>e),static:!0}),iS=oe.define({combine:n=>n.length?n[0]:void 0,static:!0}),sS=oe.define(),oS=oe.define(),aS=oe.define(),lS=oe.define({combine:n=>n.length?n[0]:!1}),Tn=class{constructor(e,t){this.type=e,this.value=t}static define(){return new ap}},ap=class{of(e){return new Tn(this,e)}},lp=class{constructor(e){this.map=e}of(e){return new ye(this,e)}},ye=class n{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new n(this.type,t)}is(e){return this.type==e}static define(e={}){return new lp(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let r=[];for(let i of e){let s=i.map(t);s&&r.push(s)}return r}};ye.reconfigure=ye.define();ye.appendConfig=ye.define();var ut=class n{constructor(e,t,r,i,s,o){this.startState=e,this.changes=t,this.selection=r,this.effects=i,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&nS(r,t.newLength),s.some(a=>a.type==n.time)||(this.annotations=s.concat(n.time.of(Date.now())))}static create(e,t,r,i,s,o){return new n(e,t,r,i,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(n.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};ut.time=Tn.define();ut.userEvent=Tn.define();ut.addToHistory=Tn.define();ut.remote=Tn.define();function n_(n,e){let t=[];for(let r=0,i=0;;){let s,o;if(r=n[r]))s=n[r++],o=n[r++];else if(i=0;i--){let s=r[i](n);s instanceof ut?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof ut?n=s[0]:n=dS(e,Co(s),!1)}return n}function i_(n){let e=n.startState,t=e.facet(aS),r=n;for(let i=t.length-1;i>=0;i--){let s=t[i](n);s&&Object.keys(s).length&&(r=cS(r,cp(e,s,n.changes.newLength),!0))}return r==n?n:ut.create(e,n.changes,n.selection,r.effects,r.annotations,r.scrollIntoView)}var s_=[];function Co(n){return n==null?s_:Array.isArray(n)?n:[n]}var et=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(et||(et={})),o_=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,dp;try{dp=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(n){}function a_(n){if(dp)return dp.test(n);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||o_.test(t)))return!0}return!1}function l_(n){return e=>{if(!/\S/.test(e))return et.Space;if(a_(e))return et.Word;for(let t=0;t-1)return et.Word;return et.Other}}var Me=class n{constructor(e,t,r,i,s,o){this.config=e,this.doc=t,this.selection=r,this.values=i,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;ai.set(c,l)),t=null),i.set(a.value.compartment,a.value.extension)):a.is(ye.reconfigure)?(t=null,r=a.value):a.is(ye.appendConfig)&&(t=null,r=Co(r).concat(a.value));let s;t?s=e.startState.values.slice():(t=Uc.resolve(r,i,this),s=new n(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(op)?e.newSelection:e.newSelection.asSingle();new n(t,e.newDoc,o,s,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:z.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,r=e(t.ranges[0]),i=this.changes(r.changes),s=[r.range],o=Co(r.effects);for(let a=1;ao.spec.fromJSON(a,l)))}}return n.create({doc:e.doc,selection:z.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=Uc.resolve(e.extensions||[],new Map),r=e.doc instanceof De?e.doc:De.of((e.doc||"").split(t.staticFacet(n.lineSeparator)||np)),i=e.selection?e.selection instanceof z?e.selection:z.single(e.selection.anchor,e.selection.head):z.single(0);return nS(i,r.length),t.staticFacet(op)||(i=i.asSingle()),new n(t,r,i,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(n.tabSize)}get lineBreak(){return this.facet(n.lineSeparator)||` -`}get readOnly(){return this.facet(lS)}phrase(e,...t){for(let r of this.facet(n.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let i=[];for(let s of this.facet(rS))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return l_(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=Pt(t,o,!1);if(s(t.slice(l,o))!=et.Word)break;o=l}for(;an.length?n[0]:4});Me.lineSeparator=iS;Me.readOnly=lS;Me.phrases=oe.define({compare(n,e){let t=Object.keys(n),r=Object.keys(e);return t.length==r.length&&t.every(i=>n[i]==e[i])}});Me.languageData=rS;Me.changeFilter=sS;Me.transactionFilter=oS;Me.transactionExtender=aS;Vt.reconfigure=ye.define();function Yn(n,e,t={}){let r={};for(let i of n)for(let s of Object.keys(i)){let o=i[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)r[i]===void 0&&(r[i]=e[i]);return r}var fr=class{eq(e){return this==e}range(e,t=e){return Ya.create(e,t,this)}};fr.prototype.startSide=fr.prototype.endSide=0;fr.prototype.point=!1;fr.prototype.mapMode=Xt.TrackDel;function gp(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}var Ya=class n{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new n(e,t,r)}};function hp(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}var up=class n{constructor(e,t,r,i){this.from=e,this.to=t,this.value=r,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,i=0){let s=r?this.to:this.from;for(let o=i,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,r,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,1e9,!1,s);sf||u==f&&c.startSide>0&&c.endSide<=0)continue;(f-u||c.endSide-c.startSide)<0||(o<0&&(o=u),c.point&&(a=Math.max(a,f-u)),r.push(c),i.push(u-o),s.push(f-o))}return{mapped:r.length?new n(i,s,r,a):null,pos:o}}},$e=class n{constructor(e,t,r,i){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=i}static create(e,t,r,i){return new n(e,t,r,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:r=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(hp)),this.isEmpty)return t.length?n.of(t):this;let a=new Gc(this,null,-1).goto(0),l=0,c=[],d=new Zr;for(;a.value||l=0){let h=t[l++];d.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||sa.to||s=s&&e<=s+o.length&&o.between(s,e-s,t-s,r)===!1)return}this.nextLayer.between(e,t,r)}}iter(e=0){return ja.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ja.from(e).goto(t)}static compare(e,t,r,i,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=s),a=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=s),l=Ky(o,a,r),c=new Ds(o,l,s),d=new Ds(a,l,s);r.iterGaps((h,u,f)=>Jy(c,h,d,u,f,i)),r.empty&&r.length==0&&Jy(c,0,d,0,0,i)}static eq(e,t,r=0,i){i==null&&(i=999999999);let s=e.filter(d=>!d.isEmpty&&t.indexOf(d)<0),o=t.filter(d=>!d.isEmpty&&e.indexOf(d)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=Ky(s,o),l=new Ds(s,a,0).goto(r),c=new Ds(o,a,0).goto(r);for(;;){if(l.to!=c.to||!fp(l.active,c.active)||l.point&&(!c.point||!gp(l.point,c.point)))return!1;if(l.to>i)return!0;l.next(),c.next()}}static spans(e,t,r,i,s=-1){let o=new Ds(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,r);if(o.point){let d=o.activeForPoint(o.to),h=o.pointFroma&&(i.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>r)return l+(o.point&&o.to>r?1:0);a=o.to,o.next()}}static of(e,t=!1){let r=new Zr;for(let i of e instanceof Ya?[e]:t?c_(e):e)r.add(i.from,i.to,i.value);return r.finish()}static join(e){if(!e.length)return n.empty;let t=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let i=e[r];i!=n.empty;i=i.nextLayer)t=new n(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}};$e.empty=new $e([],[],null,-1);function c_(n){if(n.length>1)for(let e=n[0],t=1;t0)return n.slice().sort(hp);e=r}return n}$e.empty.nextLayer=$e.empty;var Zr=class n{finishChunk(e){this.chunks.push(new up(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,r){this.addInner(e,t,r)||(this.nextLayer||(this.nextLayer=new n)).add(e,t,r)}addInner(e,t,r){let i=e-this.lastTo||r.startSide-this.last.endSide;if(i<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return i<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=t,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let r=t.value.length-1;return this.last=t.value[r],this.lastFrom=t.from[r]+e,this.lastTo=t.to[r]+e,!0}finish(){return this.finishInner($e.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=$e.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Ky(n,e,t){let r=new Map;for(let s of n)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&i.push(new Gc(o,t,r,s));return i.length==1?i[0]:new n(i)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let r of this.heap)r.goto(e,t);for(let r=this.heap.length>>1;r>=0;r--)ep(this.heap,r);return this.next(),this}forward(e,t){for(let r of this.heap)r.forward(e,t);for(let r=this.heap.length>>1;r>=0;r--)ep(this.heap,r);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),ep(this.heap,0)}}};function ep(n,e){for(let t=n[e];;){let r=(e<<1)+1;if(r>=n.length)break;let i=n[r];if(r+1=0&&(i=n[r+1],r++),t.compare(i)<0)break;n[r]=t,n[e]=i,e=r}}var Ds=class{constructor(e,t,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ja.from(e,t,r)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Nc(this.active,e),Nc(this.activeTo,e),Nc(this.activeRank,e),this.minActive=eS(this.active,this.activeTo)}addActive(e){let t=0,{value:r,to:i,rank:s}=this.cursor;for(;t0;)t++;Bc(this.active,t,r),Bc(this.activeTo,t,i),Bc(this.activeRank,t,s),e&&Bc(e,t,this.cursor.from),this.minActive=eS(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>e){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),r&&Nc(r,i)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&r[i]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&t.push(this.active[r]);return t.reverse()}openEnd(e){let t=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)t++;return t}};function Jy(n,e,t,r,i,s){n.goto(e),t.goto(r);let o=r+i,a=r,l=r-e,c=!!s.boundChange;for(let d=!1;;){let h=n.to+l-t.to,u=h||n.endSide-t.endSide,f=u<0?n.to+l:t.to,m=Math.min(f,o);if(n.point||t.point?(n.point&&t.point&&gp(n.point,t.point)&&fp(n.activeForPoint(n.to),t.activeForPoint(t.to))||s.comparePoint(a,m,n.point,t.point),d=!1):(d&&s.boundChange(a),m>a&&!fp(n.active,t.active)&&s.compareRange(a,m,n.active,t.active),c&&mo)break;a=f,u<=0&&n.next(),u>=0&&t.next()}}function fp(n,e){if(n.length!=e.length)return!1;for(let t=0;t=e;r--)n[r+1]=n[r];n[e]=t}function eS(n,e){let t=-1,r=1e9;for(let i=0;i=e)return i;if(i==n.length)break;s+=n.charCodeAt(i)==9?t-s%t:1,i=Pt(n,i)}return r===!0?-1:n.length}var hS=typeof Symbol=="undefined"?"__\u037C":Symbol.for("\u037C"),Op=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),uS=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},mr=class{constructor(e,t){this.rules=[];let{finish:r}=t||{};function i(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let d=[],h=/^@(\w+)\b/.exec(o[0]),u=h&&h[1]=="keyframes";if(h&&a==null)return l.push(o[0]+";");for(let f in a){let m=a[f];if(/&/.test(f))s(f.split(/,\s*/).map(O=>o.map(S=>O.replace(/&/,S))).reduce((O,S)=>O.concat(S)),m,l);else if(m&&typeof m=="object"){if(!h)throw new RangeError("The value of a property ("+f+") should be a primitive value.");s(i(f),m,d,u)}else m!=null&&d.push(f.replace(/_.*/,"").replace(/[A-Z]/g,O=>"-"+O.toLowerCase())+": "+m+";")}(d.length||u)&&l.push((r&&!h&&!c?o.map(r):o).join(", ")+" {"+d.join(" ")+"}")}for(let o in e)s(i(o),e[o],this.rules)}getRules(){return this.rules.join(` +`){[e,t]=_o(this,e,t);let i="";for(let s=0,o=0;se&&s&&(i+=r),eo&&(i+=a.sliceString(e-o,t-o,r)),o=l+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof n))return 0;let r=0,[i,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,s+=t){if(i==o||s==a)return r;let l=this.children[i],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,i)=>r+i.length+1,-1)){let r=0;for(let f of e)r+=f.lines;if(r<32){let f=[];for(let m of e)m.flatten(f);return new Fn(f,t)}let i=Math.max(32,r>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,d=[];function h(f){let m;if(f.lines>s&&f instanceof n)for(let O of f.children)h(O);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof Fn&&l&&(m=d[d.length-1])instanceof Fn&&f.lines+m.lines<=32?(l+=f.lines,c+=f.length+1,d[d.length-1]=new Fn(m.text.concat(f.text),m.length+1+f.length)):(l+f.lines>i&&u(),l+=f.lines,c+=f.length+1,d.push(f))}function u(){l!=0&&(a.push(d.length==1?d[0]:n.from(d,c)),c=-1,l=d.length=0)}for(let f of e)h(f);return u(),a.length==1?a[0]:new n(a,t)}};De.empty=new Fn([""],0);function JC(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Vc(n,e,t=0,r=1e9){for(let i=0,s=0,o=!0;s=t&&(l>r&&(a=a.slice(0,r-i)),i0?1:(e instanceof Fn?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,i=this.nodes[r],s=this.offsets[r],o=s>>1,a=i instanceof Fn?i.text.length:i.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(i instanceof Fn){let l=i.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=i.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Fn?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Fc=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new Zs(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=r?i:t<0?i.slice(i.length-r):i.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Yc=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(De.prototype[Symbol.iterator]=function(){return this.iter()},Zs.prototype[Symbol.iterator]=Fc.prototype[Symbol.iterator]=Yc.prototype[Symbol.iterator]=function(){return this});var tp=class{constructor(e,t,r,i){this.from=e,this.to=t,this.number=r,this.text=i}get length(){return this.to-this.from}};function _o(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function Pt(n,e,t=!0,r=!0){return Yy(n,e,t,r)}function e_(n){return n>=56320&&n<57344}function t_(n){return n>=55296&&n<56320}function Ir(n,e){let t=n.charCodeAt(e);if(!t_(t)||e+1==n.length)return t;let r=n.charCodeAt(e+1);return e_(r)?(t-55296<<10)+(r-56320)+65536:t}function Hc(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Yi(n){return n<65536?1:2}var np=/\r\n?|\n/,Xt=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(Xt||(Xt={})),vi=class n{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-i);s+=a}else{if(r!=Xt.Simple&&c>=e&&(r==Xt.TrackDel&&ie||r==Xt.TrackBefore&&ie))return null;if(c>e||c==e&&t<0&&!a)return e==i||t<0?s:s+l;s+=l}i=c}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let r=0,i=0;r=0&&i<=t&&a>=e)return it?"cover":!0;i=a}return!1}toString(){let e="";for(let t=0;t=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new n(e)}static create(e){return new n(e)}},On=class n extends vi{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return rp(this,(t,r,i,s,o)=>e=e.replace(i,i+(r-t),o),!1),e}mapDesc(e,t=!1){return ip(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let i=0,s=0;i=0){t[i]=a,t[i+1]=o;let l=i>>1;for(;r.length0&&Fi(r,t,s.text),s.forward(d),a+=d}let c=e[o++];for(;a>1].toJSON()))}return e}static of(e,t,r){let i=[],s=[],o=0,a=null;function l(d=!1){if(!d&&!i.length)return;ou||h<0||u>t)throw new RangeError(`Invalid change range ${h} to ${u} (in doc of length ${t})`);let m=f?typeof f=="string"?De.of(f.split(r||np)):f:De.empty,O=m.length;if(h==u&&O==0)return;ho&&ln(i,h-o,-1),ln(i,u-h,O),Fi(s,i,m),o=u}}return c(e),l(!a),a}static empty(e){return new n(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],r=[];for(let i=0;ia&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;r.length=0&&t<=0&&t==n[i+1]?n[i]+=e:i>=0&&e==0&&n[i]==0?n[i+1]+=t:r?(n[i]+=e,n[i+1]+=t):n.push(e,t)}function Fi(n,e,t){if(t.length==0)return;let r=e.length-2>>1;if(r>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)a=n.sections[o++],l=n.sections[o++];e(i,c,s,d,h),i=c,s=d}}}function ip(n,e,t,r=!1){let i=[],s=r?[]:null,o=new Is(n),a=new Is(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);ln(i,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len=0&&l=0){let c=0,d=o.len;for(;d;)if(a.ins==-1){let h=Math.min(d,a.len);c+=h,d-=h,a.forward(h)}else if(a.ins==0&&a.lenl||o.ins>=0&&o.len>l)&&(a||r.length>c),s.forward2(l),o.forward(l)}}}}var Is=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?De.empty:e[t]}textBit(e){let{inserted:t}=this.set,r=this.i-2>>1;return r>=t.length&&!e?De.empty:t[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Ms=class n{constructor(e,t,r,i){this.from=e,this.to=t,this.flags=r,this.goalColumn=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let r,i;return this.empty?r=i=e.mapPos(this.from,t):(r=e.mapPos(this.from,1),i=e.mapPos(this.to,-1)),r==this.from&&i==this.to?this:new n(r,i,this.flags,this.goalColumn)}extend(e,t=e,r=0){if(e<=this.anchor&&t>=this.anchor)return z.range(e,t,void 0,void 0,r);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return z.range(this.anchor,i,void 0,void 0,r)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return z.range(e.anchor,e.head)}static create(e,t,r,i){return new n(e,t,r,i)}},z=class n{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:n.create(this.ranges.map(r=>r.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new n(e.ranges.map(t=>Ms.fromJSON(t)),e.main)}static single(e,t=e){return new n([n.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,i=0;ii.from-s.from),t=e.indexOf(r);for(let i=1;is.head?n.range(l,a):n.range(a,l))}}return new n(e,t)}};function nS(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var pp=0,oe=class n{constructor(e,t,r,i,s){this.combine=e,this.compareInput=t,this.compare=r,this.isStatic=i,this.id=pp++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new n(e.combine||(t=>t),e.compareInput||((t,r)=>t===r),e.compare||(e.combine?(t,r)=>t===r:mp),!!e.static,e.enables)}of(e){return new Ao([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ao(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ao(e,this,2,t)}from(e,t){return t||(t=r=>r),this.compute([e],r=>t(r.field(e)))}};function mp(n,e){return n==e||n.length==e.length&&n.every((t,r)=>t===e[r])}var Ao=class{constructor(e,t,r,i){this.dependencies=e,this.facet=t,this.type=r,this.value=i,this.id=pp++}dynamicSlot(e){var t;let r=this.value,i=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,c=!1,d=[];for(let h of this.dependencies)h=="doc"?l=!0:h=="selection"?c=!0:(((t=e[h.id])!==null&&t!==void 0?t:1)&1)==0&&d.push(e[h.id]);return{create(h){return h.values[o]=r(h),1},update(h,u){if(l&&u.docChanged||c&&(u.docChanged||u.selection)||sp(h,d)){let f=r(h);if(a?!Hy(f,h.values[o],i):!i(f,h.values[o]))return h.values[o]=f,1}return 0},reconfigure:(h,u)=>{let f,m=u.config.address[s];if(m!=null){let O=qc(u,m);if(this.dependencies.every(S=>S instanceof oe?u.facet(S)===h.facet(S):S instanceof Xe?u.field(S,!1)==h.field(S,!1):!0)||(a?Hy(f=r(h),O,i):i(f=r(h),O)))return h.values[o]=O,0}else f=r(h);return h.values[o]=f,1}}}get extension(){return this}};function Hy(n,e,t){if(n.length!=e.length)return!1;for(let r=0;rn[l.id]),i=t.map(l=>l.type),s=r.filter(l=>!(l&1)),o=n[e.id]>>1;function a(l){let c=[];for(let d=0;dr===i),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Wc).find(r=>r.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:r=>(r.values[t]=this.create(r),1),update:(r,i)=>{let s=r.values[t],o=this.updateF(s,i);return this.compareF(s,o)?0:(r.values[t]=o,1)},reconfigure:(r,i)=>{let s=r.facet(Wc),o=i.facet(Wc),a;return(a=s.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(r.values[t]=a.create(r),1):i.config.address[this.id]!=null?(r.values[t]=i.field(this),0):(r.values[t]=this.create(r),1)}}}init(e){return[this,Wc.of({field:this,create:e})]}get extension(){return this}},Ls={lowest:4,low:3,default:2,high:1,highest:0};function Ba(n){return e=>new jc(e,n)}var pr={highest:Ba(Ls.highest),high:Ba(Ls.high),default:Ba(Ls.default),low:Ba(Ls.low),lowest:Ba(Ls.lowest)},jc=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},Vt=class n{of(e){return new Fa(this,e)}reconfigure(e){return n.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Fa=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},Uc=class n{constructor(e,t,r,i,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=r,this.address=i,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,r){let i=[],s=Object.create(null),o=new Map;for(let u of r_(e,t,o))u instanceof Xe?i.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let a=Object.create(null),l=[],c=[];for(let u of i)a[u.id]=c.length<<1,c.push(f=>u.slot(f));let d=r==null?void 0:r.config.facets;for(let u in s){let f=s[u],m=f[0].facet,O=d&&d[u]||[];if(f.every(S=>S.type==0))if(a[m.id]=l.length<<1|1,mp(O,f))l.push(r.facet(m));else{let S=m.combine(f.map(x=>x.value));l.push(r&&m.compare(S,r.facet(m))?r.facet(m):S)}else{for(let S of f)S.type==0?(a[S.id]=l.length<<1|1,l.push(S.value)):(a[S.id]=c.length<<1,c.push(x=>S.dynamicSlot(x)));a[m.id]=c.length<<1,c.push(S=>n_(S,m,f))}}let h=c.map(u=>u(a));return new n(e,o,h,a,l,s)}};function r_(n,e,t){let r=[[],[],[],[],[]],i=new Map;function s(o,a){let l=i.get(o);if(l!=null){if(l<=a)return;let c=r[l].indexOf(o);c>-1&&r[l].splice(c,1),o instanceof Fa&&t.delete(o.compartment)}if(i.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof Fa){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,a)}else if(o instanceof jc)s(o.inner,o.prec);else if(o instanceof Xe)r[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof Ao)r[a].push(o),o.facet.extensions&&s(o.facet.extensions,Ls.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(c==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,a)}}return s(n,Ls.default),r.reduce((o,a)=>o.concat(a))}function Va(n,e){if(e&1)return 2;let t=e>>1,r=n.status[t];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;n.status[t]=4;let i=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|i}function qc(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}var rS=oe.define(),op=oe.define({combine:n=>n.some(e=>e),static:!0}),iS=oe.define({combine:n=>n.length?n[0]:void 0,static:!0}),sS=oe.define(),oS=oe.define(),aS=oe.define(),lS=oe.define({combine:n=>n.length?n[0]:!1}),Tn=class{constructor(e,t){this.type=e,this.value=t}static define(){return new ap}},ap=class{of(e){return new Tn(this,e)}},lp=class{constructor(e){this.map=e}of(e){return new ye(this,e)}},ye=class n{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new n(this.type,t)}is(e){return this.type==e}static define(e={}){return new lp(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let r=[];for(let i of e){let s=i.map(t);s&&r.push(s)}return r}};ye.reconfigure=ye.define();ye.appendConfig=ye.define();var ut=class n{constructor(e,t,r,i,s,o){this.startState=e,this.changes=t,this.selection=r,this.effects=i,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&nS(r,t.newLength),s.some(a=>a.type==n.time)||(this.annotations=s.concat(n.time.of(Date.now())))}static create(e,t,r,i,s,o){return new n(e,t,r,i,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(n.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};ut.time=Tn.define();ut.userEvent=Tn.define();ut.addToHistory=Tn.define();ut.remote=Tn.define();function i_(n,e){let t=[];for(let r=0,i=0;;){let s,o;if(r=n[r]))s=n[r++],o=n[r++];else if(i=0;i--){let s=r[i](n);s instanceof ut?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof ut?n=s[0]:n=dS(e,Co(s),!1)}return n}function o_(n){let e=n.startState,t=e.facet(aS),r=n;for(let i=t.length-1;i>=0;i--){let s=t[i](n);s&&Object.keys(s).length&&(r=cS(r,cp(e,s,n.changes.newLength),!0))}return r==n?n:ut.create(e,n.changes,n.selection,r.effects,r.annotations,r.scrollIntoView)}var a_=[];function Co(n){return n==null?a_:Array.isArray(n)?n:[n]}var et=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(et||(et={})),l_=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,dp;try{dp=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(n){}function c_(n){if(dp)return dp.test(n);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||l_.test(t)))return!0}return!1}function d_(n){return e=>{if(!/\S/.test(e))return et.Space;if(c_(e))return et.Word;for(let t=0;t-1)return et.Word;return et.Other}}var Me=class n{constructor(e,t,r,i,s,o){this.config=e,this.doc=t,this.selection=r,this.values=i,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;ai.set(c,l)),t=null),i.set(a.value.compartment,a.value.extension)):a.is(ye.reconfigure)?(t=null,r=a.value):a.is(ye.appendConfig)&&(t=null,r=Co(r).concat(a.value));let s;t?s=e.startState.values.slice():(t=Uc.resolve(r,i,this),s=new n(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(op)?e.newSelection:e.newSelection.asSingle();new n(t,e.newDoc,o,s,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:z.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,r=e(t.ranges[0]),i=this.changes(r.changes),s=[r.range],o=Co(r.effects);for(let a=1;ao.spec.fromJSON(a,l)))}}return n.create({doc:e.doc,selection:z.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=Uc.resolve(e.extensions||[],new Map),r=e.doc instanceof De?e.doc:De.of((e.doc||"").split(t.staticFacet(n.lineSeparator)||np)),i=e.selection?e.selection instanceof z?e.selection:z.single(e.selection.anchor,e.selection.head):z.single(0);return nS(i,r.length),t.staticFacet(op)||(i=i.asSingle()),new n(t,r,i,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(n.tabSize)}get lineBreak(){return this.facet(n.lineSeparator)||` +`}get readOnly(){return this.facet(lS)}phrase(e,...t){for(let r of this.facet(n.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let i=[];for(let s of this.facet(rS))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return d_(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=Pt(t,o,!1);if(s(t.slice(l,o))!=et.Word)break;o=l}for(;an.length?n[0]:4});Me.lineSeparator=iS;Me.readOnly=lS;Me.phrases=oe.define({compare(n,e){let t=Object.keys(n),r=Object.keys(e);return t.length==r.length&&t.every(i=>n[i]==e[i])}});Me.languageData=rS;Me.changeFilter=sS;Me.transactionFilter=oS;Me.transactionExtender=aS;Vt.reconfigure=ye.define();function Yn(n,e,t={}){let r={};for(let i of n)for(let s of Object.keys(i)){let o=i[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)r[i]===void 0&&(r[i]=e[i]);return r}var fr=class{eq(e){return this==e}range(e,t=e){return Ya.create(e,t,this)}};fr.prototype.startSide=fr.prototype.endSide=0;fr.prototype.point=!1;fr.prototype.mapMode=Xt.TrackDel;function gp(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}var Ya=class n{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new n(e,t,r)}};function hp(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}var up=class n{constructor(e,t,r,i){this.from=e,this.to=t,this.value=r,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,i=0){let s=r?this.to:this.from;for(let o=i,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,r,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,1e9,!1,s);sf||u==f&&c.startSide>0&&c.endSide<=0)continue;(f-u||c.endSide-c.startSide)<0||(o<0&&(o=u),c.point&&(a=Math.max(a,f-u)),r.push(c),i.push(u-o),s.push(f-o))}return{mapped:r.length?new n(i,s,r,a):null,pos:o}}},$e=class n{constructor(e,t,r,i){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=i}static create(e,t,r,i){return new n(e,t,r,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:r=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(hp)),this.isEmpty)return t.length?n.of(t):this;let a=new Gc(this,null,-1).goto(0),l=0,c=[],d=new Zr;for(;a.value||l=0){let h=t[l++];d.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||sa.to||s=s&&e<=s+o.length&&o.between(s,e-s,t-s,r)===!1)return}this.nextLayer.between(e,t,r)}}iter(e=0){return ja.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ja.from(e).goto(t)}static compare(e,t,r,i,s=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=s),a=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=s),l=Ky(o,a,r),c=new Ds(o,l,s),d=new Ds(a,l,s);r.iterGaps((h,u,f)=>Jy(c,h,d,u,f,i)),r.empty&&r.length==0&&Jy(c,0,d,0,0,i)}static eq(e,t,r=0,i){i==null&&(i=999999999);let s=e.filter(d=>!d.isEmpty&&t.indexOf(d)<0),o=t.filter(d=>!d.isEmpty&&e.indexOf(d)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=Ky(s,o),l=new Ds(s,a,0).goto(r),c=new Ds(o,a,0).goto(r);for(;;){if(l.to!=c.to||!fp(l.active,c.active)||l.point&&(!c.point||!gp(l.point,c.point)))return!1;if(l.to>i)return!0;l.next(),c.next()}}static spans(e,t,r,i,s=-1){let o=new Ds(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,r);if(o.point){let d=o.activeForPoint(o.to),h=o.pointFroma&&(i.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>r)return l+(o.point&&o.to>r?1:0);a=o.to,o.next()}}static of(e,t=!1){let r=new Zr;for(let i of e instanceof Ya?[e]:t?h_(e):e)r.add(i.from,i.to,i.value);return r.finish()}static join(e){if(!e.length)return n.empty;let t=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let i=e[r];i!=n.empty;i=i.nextLayer)t=new n(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}};$e.empty=new $e([],[],null,-1);function h_(n){if(n.length>1)for(let e=n[0],t=1;t0)return n.slice().sort(hp);e=r}return n}$e.empty.nextLayer=$e.empty;var Zr=class n{finishChunk(e){this.chunks.push(new up(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,r){this.addInner(e,t,r)||(this.nextLayer||(this.nextLayer=new n)).add(e,t,r)}addInner(e,t,r){let i=e-this.lastTo||r.startSide-this.last.endSide;if(i<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return i<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=t,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let r=t.value.length-1;return this.last=t.value[r],this.lastFrom=t.from[r]+e,this.lastTo=t.to[r]+e,!0}finish(){return this.finishInner($e.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=$e.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Ky(n,e,t){let r=new Map;for(let s of n)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&i.push(new Gc(o,t,r,s));return i.length==1?i[0]:new n(i)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let r of this.heap)r.goto(e,t);for(let r=this.heap.length>>1;r>=0;r--)ep(this.heap,r);return this.next(),this}forward(e,t){for(let r of this.heap)r.forward(e,t);for(let r=this.heap.length>>1;r>=0;r--)ep(this.heap,r);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),ep(this.heap,0)}}};function ep(n,e){for(let t=n[e];;){let r=(e<<1)+1;if(r>=n.length)break;let i=n[r];if(r+1=0&&(i=n[r+1],r++),t.compare(i)<0)break;n[r]=t,n[e]=i,e=r}}var Ds=class{constructor(e,t,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ja.from(e,t,r)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Nc(this.active,e),Nc(this.activeTo,e),Nc(this.activeRank,e),this.minActive=eS(this.active,this.activeTo)}addActive(e){let t=0,{value:r,to:i,rank:s}=this.cursor;for(;t0;)t++;Bc(this.active,t,r),Bc(this.activeTo,t,i),Bc(this.activeRank,t,s),e&&Bc(e,t,this.cursor.from),this.minActive=eS(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>e){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),r&&Nc(r,i)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&r[i]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&t.push(this.active[r]);return t.reverse()}openEnd(e){let t=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)t++;return t}};function Jy(n,e,t,r,i,s){n.goto(e),t.goto(r);let o=r+i,a=r,l=r-e,c=!!s.boundChange;for(let d=!1;;){let h=n.to+l-t.to,u=h||n.endSide-t.endSide,f=u<0?n.to+l:t.to,m=Math.min(f,o);if(n.point||t.point?(n.point&&t.point&&gp(n.point,t.point)&&fp(n.activeForPoint(n.to),t.activeForPoint(t.to))||s.comparePoint(a,m,n.point,t.point),d=!1):(d&&s.boundChange(a),m>a&&!fp(n.active,t.active)&&s.compareRange(a,m,n.active,t.active),c&&mo)break;a=f,u<=0&&n.next(),u>=0&&t.next()}}function fp(n,e){if(n.length!=e.length)return!1;for(let t=0;t=e;r--)n[r+1]=n[r];n[e]=t}function eS(n,e){let t=-1,r=1e9;for(let i=0;i=e)return i;if(i==n.length)break;s+=n.charCodeAt(i)==9?t-s%t:1,i=Pt(n,i)}return r===!0?-1:n.length}var hS=typeof Symbol=="undefined"?"__\u037C":Symbol.for("\u037C"),Op=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),uS=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},mr=class{constructor(e,t){this.rules=[];let{finish:r}=t||{};function i(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let d=[],h=/^@(\w+)\b/.exec(o[0]),u=h&&h[1]=="keyframes";if(h&&a==null)return l.push(o[0]+";");for(let f in a){let m=a[f];if(/&/.test(f))s(f.split(/,\s*/).map(O=>o.map(S=>O.replace(/&/,S))).reduce((O,S)=>O.concat(S)),m,l);else if(m&&typeof m=="object"){if(!h)throw new RangeError("The value of a property ("+f+") should be a primitive value.");s(i(f),m,d,u)}else m!=null&&d.push(f.replace(/_.*/,"").replace(/[A-Z]/g,O=>"-"+O.toLowerCase())+": "+m+";")}(d.length||u)&&l.push((r&&!h&&!c?o.map(r):o).join(", ")+" {"+d.join(" ")+"}")}for(let o in e)s(i(o),e[o],this.rules)}getRules(){return this.rules.join(` `)}static newName(){let e=uS[hS]||1;return uS[hS]=e+1,"\u037C"+e.toString(36)}static mount(e,t,r){let i=e[Op],s=r&&r.nonce;i?s&&i.setNonce(s):i=new bp(e,s),i.mount(Array.isArray(t)?t:[t],e)}},fS=new Map,bp=class{constructor(e,t){let r=e.ownerDocument||e,i=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=fS.get(r);if(s)return e[Op]=s;this.sheet=new i.CSSStyleSheet,fS.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Op]=this}mount(e,t){let r=this.sheet,i=0,s=0;for(let o=0;o-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),r)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},d_=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),h_=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(At=0;At<10;At++)wi[48+At]=wi[96+At]=String(At);var At;for(At=1;At<=24;At++)wi[At+111]="F"+At;var At;for(At=65;At<=90;At++)wi[At]=String.fromCharCode(At+32),Eo[At]=String.fromCharCode(At);var At;for(Jc in wi)Eo.hasOwnProperty(Jc)||(Eo[Jc]=wi[Jc]);var Jc;function pS(n){var e=d_&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||h_&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?Eo:wi)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function kt(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var i=t[r];typeof i=="string"?n.setAttribute(r,i):i!=null&&(n[r]=i)}e++}for(;e2),ae={mac:bS||/Mac/.test(bn.platform),windows:/Win/.test(bn.platform),linux:/Linux|X11/.test(bn.platform),ie:Ed,ie_version:ev?Tp.documentMode||6:Cp?+Cp[1]:Ap?+Ap[1]:0,gecko:gS,gecko_version:gS?+(/Firefox\/(\d+)/.exec(bn.userAgent)||[0,0])[1]:0,chrome:!!yp,chrome_version:yp?+yp[1]:0,ios:bS,android:/Android\b/.test(bn.userAgent),webkit:OS,webkit_version:OS?+(/\bAppleWebKit\/(\d+)/.exec(bn.userAgent)||[0,0])[1]:0,safari:_p,safari_version:_p?+(/\bVersion\/(\d+(\.\d+)?)/.exec(bn.userAgent)||[0,0])[1]:0,tabSize:Tp.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function wm(n,e){for(let t in n)t=="class"&&e.class?e.class+=" "+n.class:t=="style"&&e.style?e.style+=";"+n.style:e[t]=n[t];return e}var pd=Object.create(null);function xm(n,e,t){if(n==e)return!0;n||(n=pd),e||(e=pd);let r=Object.keys(n),i=Object.keys(e);if(r.length-(t&&r.indexOf(t)>-1?1:0)!=i.length-(t&&i.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(i.indexOf(s)==-1||n[s]!==e[s]))return!1;return!0}function u_(n,e){for(let t=n.attributes.length-1;t>=0;t--){let r=n.attributes[t].name;e[r]==null&&n.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?n.style.cssText=r:n.getAttribute(t)!=r&&n.setAttribute(t,r)}}function yS(n,e,t){let r=!1;if(e)for(let i in e)t&&i in t||(r=!0,i=="style"?n.style.cssText="":n.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(r=!0,i=="style"?n.style.cssText=t[i]:n.setAttribute(i,t[i]));return r}function f_(n){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new Ns(e,t,t,r,e.widget||null,!1)}static replace(e){let t=!!e.block,r,i;if(e.isBlockGap)r=-5e8,i=4e8;else{let{start:s,end:o}=tv(e,t);r=(s?t?-3e8:-1:5e8)-1,i=(o?t?2e8:1:-6e8)+1}return new Ns(e,r,i,t,e.widget||null,!0)}static line(e){return new al(e)}static set(e,t=!1){return $e.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};K.none=$e.empty;var ol=class n extends K{constructor(e){let{start:t,end:r}=tv(e);super(t?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?wm(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||pd}eq(e){return this==e||e instanceof n&&this.tagName==e.tagName&&xm(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};ol.prototype.point=!1;var al=class n extends K{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof n&&this.spec.class==e.spec.class&&xm(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};al.prototype.mapMode=Xt.TrackBefore;al.prototype.point=!0;var Ns=class n extends K{constructor(e,t,r,i,s,o){super(t,r,s,e),this.block=i,this.isReplace=o,this.mapMode=i?t<=0?Xt.TrackBefore:Xt.TrackAfter:Xt.TrackDel}get type(){return this.startSide!=this.endSide?Ht.WidgetRange:this.startSide<=0?Ht.WidgetBefore:Ht.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof n&&p_(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};Ns.prototype.point=!0;function tv(n,e=!1){let{inclusiveStart:t,inclusiveEnd:r}=n;return t==null&&(t=n.inclusive),r==null&&(r=n.inclusive),{start:t!=null?t:e,end:r!=null?r:e}}function p_(n,e){return n==e||!!(n&&e&&n.compare(e))}function Io(n,e,t,r=0){let i=t.length-1;i>=0&&t[i]+r>=n?t[i]=Math.max(t[i],e):t.push(n,e)}var md=class n extends fr{constructor(e,t,r){super(),this.tagName=e,this.attributes=t,this.rank=r}eq(e){return e==this||e instanceof n&&this.tagName==e.tagName&&xm(this.attributes,e.attributes)}static create(e){return new n(e.tagName,e.attributes||pd,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,t=!1){return $e.of(e,t)}};md.prototype.startSide=md.prototype.endSide=-1;function ll(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function Ep(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function Ha(n,e){if(!e.anchorNode)return!1;try{return Ep(n,e.anchorNode)}catch(t){return!1}}function cd(n){return n.nodeType==3?cl(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function Ka(n,e,t,r){return t?SS(n,e,t,r,-1)||SS(n,e,t,r,1):!1}function qi(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function gd(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}function SS(n,e,t,r,i){for(;;){if(n==t&&e==r)return!0;if(e==(i<0?0:ki(n))){if(n.nodeName=="DIV")return!1;let s=n.parentNode;if(!s||s.nodeType!=1)return!1;e=qi(n)+(i<0?0:1),n=s}else if(n.nodeType==1){if(n=n.childNodes[e+(i<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=i<0?ki(n):0}else return!1}}function ki(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function Od(n,e){let{left:t,right:r}=n;if(t==r)return n;let i=e?t:r;return{left:i,right:i,top:n.top,bottom:n.bottom}}function m_(n){let e=n.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function nv(n,e){let t=e.width/n.offsetWidth,r=e.height/n.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-n.offsetWidth)<1)&&(t=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-n.offsetHeight)<1)&&(r=1),{scaleX:t,scaleY:r}}function g_(n,e,t,r,i,s,o,a){let l=n.ownerDocument,c=l.defaultView||window;for(let d=n,h=!1;d&&!h;)if(d.nodeType==1){let u,f=d==l.body,m=1,O=1;if(f)u=m_(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(d).position)&&(h=!0),d.scrollHeight<=d.clientHeight&&d.scrollWidth<=d.clientWidth){d=d.assignedSlot||d.parentNode;continue}let D=d.getBoundingClientRect();({scaleX:m,scaleY:O}=nv(d,D)),u={left:D.left,right:D.left+d.clientWidth*m,top:D.top,bottom:D.top+d.clientHeight*O}}let S=0,x=0;if(i=="nearest")e.top0&&e.bottom>u.bottom+x&&(x=e.bottom-u.bottom+o)):e.bottom>u.bottom-o&&(x=e.bottom-u.bottom+o,t<0&&e.top-x0&&e.right>u.right+S&&(S=e.right-u.right+s)):e.right>u.right-s&&(S=e.right-u.right+s,t<0&&e.leftu.bottom||e.leftu.right)&&(e={left:Math.max(e.left,u.left),right:Math.min(e.right,u.right),top:Math.max(e.top,u.top),bottom:Math.min(e.bottom,u.bottom)}),d=d.assignedSlot||d.parentNode}else if(d.nodeType==11)d=d.host;else break}function rv(n,e=!0){let t=n.ownerDocument,r=null,i=null;for(let s=n.parentNode;s&&!(s==t.body||(!e||r)&&i);)if(s.nodeType==1)!i&&s.scrollHeight>s.clientHeight&&(i=s),e&&!r&&s.scrollWidth>s.clientWidth&&(r=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:r,y:i}}var Rp=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:r}=e;this.set(t,Math.min(e.anchorOffset,t?ki(t):0),r,Math.min(e.focusOffset,r?ki(r):0))}set(e,t,r,i){this.anchorNode=e,this.anchorOffset=t,this.focusNode=r,this.focusOffset=i}};function iv(n){let e=[];for(let t=n;t;t=t.nodeType==11?t.host:t.parentNode)t.nodeType==1&&e.push({node:t,left:t.scrollLeft,top:t.scrollTop});return e}function sv(n,e=!0){for(let{node:t,left:r,top:i}of n)e&&t.scrollTop!=i&&(t.scrollTop=i),t.scrollLeft!=r&&(t.scrollLeft=r)}var Xs=null;ae.safari&&ae.safari_version>=26&&(Xs=!1);function ov(n){if(n.setActive)return n.setActive();if(Xs)return n.focus(Xs);let e=iv(n);n.focus(Xs==null?{get preventScroll(){return Xs={preventScroll:!0},!0}}:void 0),Xs||(Xs=!1,sv(e))}var vS;function cl(n,e,t=e){let r=vS||(vS=document.createRange());return r.setEnd(n,t),r.setStart(n,e),r}function Xo(n,e,t,r){let i={key:e,code:e,keyCode:t,which:t,cancelable:!0};r&&({altKey:i.altKey,ctrlKey:i.ctrlKey,shiftKey:i.shiftKey,metaKey:i.metaKey}=r);let s=new KeyboardEvent("keydown",i);s.synthetic=!0,n.dispatchEvent(s);let o=new KeyboardEvent("keyup",i);return o.synthetic=!0,n.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}function O_(n){for(;n;){if(n&&(n.nodeType==9||n.nodeType==11&&n.host))return n;n=n.assignedSlot||n.parentNode}return null}function b_(n,e){let t=e.focusNode,r=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=r)return!1;for(r=Math.min(r,ki(t));;)if(r){if(t.nodeType!=1)return!1;let i=t.childNodes[r-1];i.contentEditable=="false"?r--:(t=i,r=ki(t))}else{if(t==n)return!0;r=qi(t),t=t.parentNode}}function av(n){return n instanceof Window?n.pageYOffset>Math.max(0,n.document.documentElement.scrollHeight-n.innerHeight-4):n.scrollTop>Math.max(1,n.scrollHeight-n.clientHeight-4)}function lv(n,e){for(let t=n,r=e;;){if(t.nodeType==3&&r>0)return{node:t,offset:r};if(t.nodeType==1&&r>0){if(t.contentEditable=="false")return null;t=t.childNodes[r-1],r=ki(t)}else if(t.parentNode&&!gd(t))r=qi(t),t=t.parentNode;else return null}}function cv(n,e){for(let t=n,r=e;;){if(t.nodeType==3&&r=t){if(a.level==r)return o;(s<0||(i!=0?i<0?a.fromt:e[s].level>a.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function uv(n,e){if(n.length!=e.length)return!1;for(let t=0;t=0;O-=3)if(Kr[O+1]==-f){let S=Kr[O+2],x=S&2?i:S&4?S&1?s:i:0;x&&(rt[h]=rt[Kr[O]]=x),a=O;break}}else{if(Kr.length==189)break;Kr[a++]=h,Kr[a++]=u,Kr[a++]=l}else if((m=rt[h])==2||m==1){let O=m==i;l=O?0:1;for(let S=a-3;S>=0;S-=3){let x=Kr[S+2];if(x&2)break;if(O)Kr[S+2]|=2;else{if(x&4)break;Kr[S+2]|=4}}}}}function P_(n,e,t,r){for(let i=0,s=r;i<=t.length;i++){let o=i?t[i-1].to:n,a=il;)m==S&&(m=t[--O].from,S=O?t[O-1].to:n),rt[--m]=f;l=d}else s=c,l++}}}function Lp(n,e,t,r,i,s,o){let a=r%2?2:1;if(r%2==i%2)for(let l=e,c=0;ll&&o.push(new br(l,O.from,f));let S=O.direction==Bs!=!(f%2);Dp(n,S?r+1:r,i,O.inner,O.from,O.to,o),l=O.to}m=O.to}else{if(m==t||(d?rt[m]!=a:rt[m]==a))break;m++}u?Lp(n,l,m,r+1,i,u,o):le;){let d=!0,h=!1;if(!c||l>s[c-1].to){let O=rt[l-1];O!=a&&(d=!1,h=O==16)}let u=!d&&a==1?[]:null,f=d?r:r+1,m=l;e:for(;;)if(c&&m==s[c-1].to){if(h)break e;let O=s[--c];if(!d)for(let S=O.from,x=c;;){if(S==e)break e;if(x&&s[x-1].to==S)S=s[--x].from;else{if(rt[S-1]==a)break e;break}}if(u)u.push(O);else{O.tort.length;)rt[rt.length]=256;let r=[],i=e==Bs?0:1;return Dp(n,i,i,t,0,n.length,r),r}function fv(n){return[new br(0,n,0)]}var pv="";function $_(n,e,t,r,i){var s;let o=r.head-n.from,a=br.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),l=e[a],c=l.side(i,t);if(o==c){let u=a+=i?1:-1;if(u<0||u>=e.length)return null;l=e[a=u],o=l.side(!i,t),c=l.side(i,t)}let d=Pt(n.text,o,l.forward(i,t));(dl.to)&&(d=c),pv=n.text.slice(Math.min(o,d),Math.max(o,d));let h=a==(i?e.length-1:0)?null:e[a+(i?1:-1)];return h&&d==c&&h.level+(i?0:1)n.some(e=>e)}),wv=oe.define({combine:n=>n.some(e=>e)}),xv=oe.define(),Ja=class n{constructor(e,t,r,i,s,o=!1){this.range=e,this.y=t,this.x=r,this.yMargin=i,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new n(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new n(z.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},ed=ye.define({map:(n,e)=>n.map(e)}),Pv=ye.define();function jn(n,e,t){let r=n.facet(bv);r.length?r[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var xi=oe.define({combine:n=>n.length?n[0]:!0}),T_=0,Mo=oe.define({combine(n){return n.filter((e,t)=>{for(let r=0;r{let l=[];return o&&l.push(Rd.of(c=>{let d=c.plugin(a);return d?o(d):K.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return n.define((r,i)=>new e(r,i),t)}},el=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(r){if(jn(t.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(i){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){jn(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(r){jn(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},kv=oe.define(),Qm=oe.define(),Rd=oe.define(),$v=oe.define(),Tm=oe.define(),ul=oe.define(),Qv=oe.define();function wS(n,e){let t=n.state.facet(Qv);if(!t.length)return t;let r=t.map(s=>s instanceof Function?s(n):s),i=[];return $e.spans(r,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,d=o-e.from,h=i;for(let u=a.length-1;u>=0;u--,l--){let f=a[u].spec.bidiIsolate,m;if(f==null&&(f=Q_(e.text,c,d)),l>0&&h.length&&(m=h[h.length-1]).to==c&&m.direction==f)m.to=d,h=m.inner;else{let O={from:c,to:d,direction:f,inner:[]};h.push(O),h=O.inner}}}}),i}var Tv=oe.define();function Am(n){let e=0,t=0,r=0,i=0;for(let s of n.state.facet(Tv)){let o=s(n);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(i=Math.max(i,o.bottom)))}return{left:e,right:t,top:r,bottom:i}}var Ua=oe.define(),zr=class n{constructor(e,t,r,i){this.fromA=e,this.toA=t,this.fromB=r,this.toB=i}join(e){return new n(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,r=this;for(;t>0;t--){let i=e[t-1];if(!(i.fromA>r.toA)){if(i.toAi.push(new zr(s,o,a,l))),this.changedRanges=i}static create(e,t,r){return new n(e,t,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},A_=[],mt=class{constructor(e,t,r=0){this.dom=e,this.length=t,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return A_}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&u_(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let r=t;for(let i of this.children){if(i==e)return r;r+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t,r){return null}domPosFor(e,t){let r=qi(this.dom),i=this.length?e>0:t>0;return new Jr(this.parent.dom,r+(i?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Wo)return e;return null}static get(e){return e.cmTile}},zo=class extends mt{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,r=null,i,s=(e==null?void 0:e.node)==t?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,i=r?r.nextSibling:t.firstChild,s&&i!=a.dom&&(s.written=!0),a.dom.parentNode==t)for(;i&&i!=a.dom;)i=xS(i);else t.insertBefore(a.dom,i);r=a.dom}for(i=r?r.nextSibling:t.firstChild,s&&i&&(s.written=!0);i;)i=xS(i);this.length=o}};function xS(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}var Wo=class extends zo{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=mt.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],r=this,i=0,s=0;;)if(i==r.children.length){if(!t.length)return;r=r.parent,r.breakAfter&&s++,i=t.pop()}else{let o=r.children[i++];if(o instanceof Pi)t.push(i),r=o,i=0;else{let a=s+o.length,l=e(o,s);if(l!==void 0)return l;s=a+o.breakAfter}}}resolveBlock(e,t){let r,i=-1,s,o=-1;if(this.blockTiles((a,l)=>{let c=l+a.length;if(e>=l&&e<=c){if(a.isWidget()&&t>=-1&&t<=1){if(a.flags&32)return!0;a.flags&16&&(r=void 0)}(le||e==l&&(t>1?a.length:a.covers(-1)))&&(!s||!a.isWidget()&&s.isWidget())&&(s=a,o=e-l)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&t<0||!s?{tile:r,offset:i}:{tile:s,offset:o}}},Pi=class n extends zo{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let r=new n(t||document.createElement(e.tagName),e);return t||(r.flags|=4),r}},No=class n extends zo{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,r){let i=new n(t||document.createElement("div"),e);return(!t||!r)&&(i.flags|=4),i}get domAttrs(){return this.attrs}resolveInline(e,t,r){let i=null,s=-1,o=null,a=-1;function l(d,h){for(let u=0,f=0;u=h&&(m.isComposite()?l(m,h-f):(!o||o.isHidden&&(t>0&&!(o.flags&32)||r&&__(o,m)))&&(O>h||m.flags&32&&t<=1)?(o=m,a=h-f):(f=-1)&&(i=m,s=h-f)),f=O}}l(this,e);let c=(t<0?i:o)||i||o;return c?{tile:c,offset:c==i?s:a}:null}coordsIn(e,t,r){let i=this.resolveInline(e,t,!0);return i?i.tile.coordsIn(Math.max(0,i.offset),t,r):C_(this)}domIn(e,t){let r=this.resolveInline(e,t);if(r){let{tile:i,offset:s}=r;if(this.dom.contains(i.dom))return i.isText()?new Jr(i.dom,Math.min(i.dom.nodeValue.length,s)):i.domPosFor(s,i.flags&16?1:i.flags&32?-1:t);let o=r.tile.parent,a=!1;for(let l of o.children){if(a)return new Jr(l.dom,0);l==r.tile&&(a=!0)}}return new Jr(this.dom,0)}};function C_(n){let e=n.dom.lastChild;if(!e)return n.dom.getBoundingClientRect();let t=cd(e);return t[t.length-1]||null}function __(n,e){let t=n.coordsIn(0,1),r=e.coordsIn(0,1);return t&&r&&r.topi&&(e=i);let s=e,o=e,a=0;e==0&&t<0||e==i&&t>=0?ae.chrome||ae.gecko||(e?(s--,a=1):o=0)?0:l.length-1];return ae.safari&&!a&&c.width==0&&(c=Array.prototype.find.call(l,d=>d.width)||c),r==null?c:Od(c,(a?a>0:t<0)==r)}static of(e,t){let r=new n(t||document.createTextNode(e),e);return t||(r.flags|=2),r}},Vs=class n extends mt{constructor(e,t,r,i){super(e,t,i),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,r){let i=this.widget.coordsAt(this.dom,e,t);if(i)return i;if(r)return Od(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?s.length-1:0;o=s[l],!(e>0?l==0:l==s.length-1||o.top0==r)}},Ip=class{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,r){let{tile:i,index:s,beforeBreak:o,parents:a}=this;for(;e||t>0;)if(i.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==i.children.length){if(!e&&!a.length)break;r&&r.leave(i),o=!!i.breakAfter,{tile:i,index:s}=a.pop(),s++}else{let l=i.children[s],c=l.breakAfter;(t>0?l.length<=e:l.length=0;a--){let l=t.marks[a],c=i.lastChild;if(c instanceof An&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(Sp(l.dom)),i=c;else{if(this.cache.reused.get(l)){let h=mt.get(l.dom);h&&h.setDOM(Sp(l.dom))}let d=An.of(l.mark,l.dom);i.append(d),i=d}this.cache.reused.set(l,2)}let s=mt.get(e.text);s&&this.cache.reused.set(s,2);let o=new zs(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,i.append(o)}addInlineWidget(e,t,r){let i=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);i||this.flushBuffer();let s=this.ensureMarks(t,r);!i&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,r){this.flushBuffer(),this.ensureMarks(t,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var r;e||(e=Av);let i=No.start(e,t||((r=this.cache.find(No))===null||r===void 0?void 0:r.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=i)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var r;let i=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],a;if(t>0&&(a=i.lastChild)&&a instanceof An&&a.mark.eq(o))i=a,t--;else{let l=An.of(o,(r=this.cache.find(An,c=>c.mark.eq(o)))===null||r===void 0?void 0:r.dom);i.append(l),i=l,t=0}}return i}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!PS(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(ae.ios&&PS(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(vp,0,32)||new Vs(vp.toDOM(),0,vp,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=e.rank*102+e.value.rank,r=new Xp(e.from,e.to,e.value,t),i=this.wrappers.length;for(;i>0&&(this.wrappers[i-1].rank-r.rank||this.wrappers[i-1].to-r.to)<0;)i--;this.wrappers.splice(i,0,r)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let r of this.wrappers){let i=t.lastChild;if(r.fromo.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),r=this.cache.find(Bo,void 0,1);return r&&(r.flags=t),r||new Bo(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},Wp=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:i,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=i;let a=this.textOff=Math.min(e,i.length);return s?null:i.slice(0,a)}let t=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,t);return this.textOff=t,r}},yd=[Vs,No,zs,An,Bo,Pi,Wo];for(let n=0;n[]),this.index=yd.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,r=this.buckets[t];r.length<6?r.push(e):r[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,r=2){let i=e.bucket,s=this.buckets[i],o=this.index[i];for(let a=0;a{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let r=t&&this.getCompositionContext(t.text);for(let i=0,s=0,o=0;;){let a=oi){let c=l-i;this.preserve(c,!o,!a),i=l,s+=c}if(!a)break;t&&a.fromA<=t.range.fromA&&a.toA>=t.range.toA?(this.forward(a.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let c=l>0||a{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof An&&i.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?i.length&&(i.length=s=0):o instanceof An&&(i.shift(),s=Math.min(s,i.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let r=null,i=this.builder,s=-1,o=$e.spans(this.decorations,e,t,{point:(a,l,c,d,h,u)=>{if(c instanceof Ns){if(this.disallowBlockEffectsFor[u]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(l>this.view.state.doc.lineAt(a).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=d.length,h>d.length)i.continueWidget(l-a);else{let f=c.widget||(c.block?Gi.block:Gi.inline),m=E_(c),O=this.cache.findWidget(f,l-a,m)||Vs.of(f,this.view,l-a,m);c.block?(c.startSide>0&&i.addLineStartIfNotCovered(r),i.addBlockWidget(O)):(i.ensureLine(r),i.addInlineWidget(O,d,h))}r=null}else r=R_(r,c);l>a&&this.text.skip(l-a)},span:(a,l,c,d)=>{for(let h=a;h-1&&(this.openWidget=o>s),this.openWidget||i.addLineStartIfNotCovered(r),this.openMarks=o}forward(e,t,r=1){t-e<=10?this.old.advance(t-e,r,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,r,this.reuseWalker))}getCompositionContext(e){let t=[],r=null;for(let i=e.parentNode;;i=i.parentNode){let s=mt.get(i);if(i==this.view.contentDOM)break;s instanceof An?t.push(s):s!=null&&s.isLine()?r=s:s instanceof Pi||(i.nodeName=="DIV"&&!r&&i!=this.view.contentDOM?r=new No(i,Av):r||t.push(An.of(new ol({tagName:i.nodeName.toLowerCase(),attributes:f_(i)}),i)))}return{line:r,marks:t}}};function PS(n,e){let t=r=>{for(let i of r.children)if((e?i.isText():i.length)||t(i))return!0;return!1};return t(n)}function E_(n){let e=n.isReplace?(n.startSide<0?64:0)|(n.endSide>0?128:0):n.startSide>0?32:16;return n.block&&(e|=256),e}var Av={class:"cm-line"};function R_(n,e){let t=e.spec.attributes,r=e.spec.class;return!t&&!r||(n||(n={class:"cm-line"}),t&&wm(t,n),r&&(n.class+=" "+r)),n}function M_(n){let e=[];for(let t=n.parents.length;t>1;t--){let r=t==n.parents.length?n.tile:n.parents[t].tile;r instanceof An&&e.push(r.mark)}return e}function Sp(n){let e=mt.get(n);return e&&e.setDOM(n.cloneNode()),n}var Gi=class extends Ct{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};Gi.inline=new Gi("span");Gi.block=new Gi("div");var vp=new class extends Ct{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},Sd=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=K.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Wo(e,e.contentDOM),this.updateInner([new zr(0,0,0,e.state.doc.length)],null)}update(e){var t;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:d,toA:h})=>hthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let i=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?i=this.domChanged.newSel.head:!N_(e.changes,this.hasComposition)&&!e.selectionSet&&(i=e.state.selection.main.head));let s=i>-1?D_(this.view,e.changes,i):null;if(this.domChanged=null,this.hasComposition){let{from:d,to:h}=this.hasComposition;r=new zr(d,h,e.changes.mapPos(d,-1),e.changes.mapPos(h,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(ae.ie||ae.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=X_(o,this.decorations,e.changes);l.length&&(r=zr.extendWithRanges(r,l));let c=z_(a,this.blockWrappers,e.changes);return c.length&&(r=zr.extendWithRanges(r,c)),s&&!r.some(d=>d.fromA<=s.range.fromA&&d.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(t||e.length){let o=this.tile,a=new Bp(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);t&&mt.get(t.text)&&a.cache.reused.set(mt.get(t.text),2),this.tile=a.run(e,t),Vp(o,a.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=ae.chrome||ae.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let i=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Ha(r,this.view.observer.selectionRange)&&!(i&&r.contains(i));if(!(s||t||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c,d;if(l.empty?d=c=this.inlineDOMNearPos(l.anchor,l.assoc||1):(d=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),c=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),ae.gecko&&l.empty&&!this.hasComposition&&L_(c)){let u=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(u,c.node.childNodes[c.offset]||null)),c=d=new Jr(u,0),a=!0}let h=this.view.observer.selectionRange;(a||!h.focusNode||(!Ka(c.node,c.offset,h.anchorNode,h.anchorOffset)||!Ka(d.node,d.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,l))&&(this.view.observer.ignore(()=>{ae.android&&ae.chrome&&r.contains(h.focusNode)&&W_(h.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let u=ll(this.view.root);if(u)if(l.empty){if(ae.gecko){let f=Z_(c.node,c.offset);if(f&&f!=3){let m=(f==1?lv:cv)(c.node,c.offset);m&&(c=new Jr(m.node,m.offset))}}u.collapse(c.node,c.offset),l.bidiLevel!=null&&u.caretBidiLevel!==void 0&&(u.caretBidiLevel=l.bidiLevel)}else if(u.extend){u.collapse(c.node,c.offset);try{u.extend(d.node,d.offset)}catch(f){}}else{let f=document.createRange();l.anchor>l.head&&([c,d]=[d,c]),f.setEnd(d.node,d.offset),f.setStart(c.node,c.offset),u.removeAllRanges(),u.addRange(f)}o&&this.view.root.activeElement==r&&(r.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(c,d)),this.impreciseAnchor=c.precise?null:new Jr(h.anchorNode,h.anchorOffset),this.impreciseHead=d.precise?null:new Jr(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Ka(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,r=ll(e.root),{anchorNode:i,anchorOffset:s}=e.observer.selectionRange;if(!r||!t.empty||!t.assoc||!r.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let d=this.domAtPos(t.head+t.assoc,t.assoc);r.collapse(d.node,d.offset),r.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&r.collapse(i,s)}posFromDOM(e,t){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let i=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[t];else{let o=ki(e)==0?0:t==0?-1:1;for(;;){let a=e.parentNode;if(a==r.dom)break;o==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?o=-1:o=1),e=a}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return i;for(;s&&!mt.get(s);)s=s.nextSibling;if(!s)return i+r.length;for(let o=0,a=i;;o++){let l=r.children[o];if(l.dom==s)return a;a+=l.length+l.breakAfter}}else return r.isText()?e==r.dom?i+t:i+(t?r.length:0):i}domAtPos(e,t){let{tile:r,offset:i}=this.tile.resolveBlock(e,t);return r.isWidget()?r.domPosFor(i,t):r.domIn(i,t)}inlineDOMNearPos(e,t){let r,i=-1,s=!1,o,a=-1,l=!1;return this.tile.blockTiles((c,d)=>{if(c.isWidget()){if(c.flags&32&&d>=e)return!0;c.flags&16&&(s=!0)}else{let h=d+c.length;if(d<=e&&(r=c,i=e-d,s=h=e&&!o&&(o=c,a=e-d,l=d>e),d>e&&o)return!0}}),!r&&!o?this.domAtPos(e,t):(s&&o?r=null:l&&r&&(o=null),r&&t<0||!o?r.domIn(i,t):o.domIn(a,t))}coordsAt(e,t,r){let{tile:i,offset:s}=this.tile.resolveBlock(e,t);return i.isWidget()?i.widget instanceof tl?null:i.coordsInWidget(s,t,!0):i.coordsIn(s,t,r)}lineAt(e,t){let{tile:r}=this.tile.resolveBlock(e,t);return r.isLine()?r:null}coordsForChar(e){let{tile:t,offset:r}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function i(s,o){if(s.isComposite())for(let a of s.children){if(a.length>=o){let l=i(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==qe.LTR,c=0,d=(h,u,f)=>{for(let m=0;mi);m++){let O=h.children[m],S=u+O.length,x=O.dom.getBoundingClientRect(),{height:D}=x;if(f&&!m&&(c+=x.top-f.top),O instanceof Pi)S>r&&d(O,u,x);else if(u>=r&&(c>0&&t.push(-c),t.push(D+c),c=0,o)){let M=O.dom.lastChild,Z=M?cd(M):[];if(Z.length){let k=Z[Z.length-1],w=l?k.right-x.left:x.right-k.left;w>a&&(a=w,this.minWidth=s,this.minWidthFrom=u,this.minWidthTo=S)}}f&&m==h.children.length-1&&(c+=f.bottom-x.bottom),u=S+O.breakAfter}};return d(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?qe.RTL:qe.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let d=cd(c.dom);if(d.length!=1)return;a+=d[0].width,l=d[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let t=document.createElement("div"),r,i,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=cd(t.firstChild)[0];r=t.getBoundingClientRect().height,i=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,t.remove()}),{lineHeight:r,charWidth:i,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let r=0,i=0;;i++){let s=i==t.viewports.length?null:t.viewports[i],o=s?s.from-1:this.view.state.doc.length;if(o>r){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(r).top)/this.view.scaleY;e.push(K.replace({widget:new tl(a),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return K.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Rd).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,i=this.view.state.facet(Tm).map((s,o)=>{let a=typeof s=="function";return a&&(r=!0),a?s(this.view):s});for(i.length&&(this.dynamicDecorationMap[e++]=r,t.push($e.join(i))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(xv))try{if(c(this.view,e.range,e))return!0}catch(d){jn(this.view.state,d,"scroll handler")}let{range:t}=e,r=this.coordsAt(t.head,t.assoc||(t.head>t.anchor?-1:1)),i;if(!r)return;!t.empty&&(i=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(r={left:Math.min(r.left,i.left),top:Math.min(r.top,i.top),right:Math.max(r.right,i.right),bottom:Math.max(r.bottom,i.bottom)});let s=Am(this.view),o={left:r.left-s.left,top:r.top-s.top,right:r.right+s.right,bottom:r.bottom+s.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(g_(this.view.scrollDOM,o,t.head1&&(r.top>window.visualViewport.offsetTop+window.visualViewport.height||r.bottomr.isWidget()||r.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Vp(this.tile)}};function Vp(n,e){let t=e==null?void 0:e.get(n);if(t!=1){t==null&&n.destroy();for(let r of n.children)Vp(r,e)}}function L_(n){return n.node.nodeType==1&&n.node.firstChild&&(n.offset==0||n.node.childNodes[n.offset-1].contentEditable=="false")&&(n.offset==n.node.childNodes.length||n.node.childNodes[n.offset].contentEditable=="false")}function Cv(n,e){let t=n.observer.selectionRange;if(!t.focusNode)return null;let r=lv(t.focusNode,t.focusOffset),i=cv(t.focusNode,t.focusOffset),s=r||i;if(i&&r&&i.node!=r.node){let a=mt.get(i.node);if(!a||a.isText()&&a.text!=i.node.nodeValue)s=i;else if(n.docView.lastCompositionAfterCursor){let l=mt.get(r.node);!l||l.isText()&&l.text!=r.node.nodeValue||(s=i)}}if(n.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function D_(n,e,t){let r=Cv(n,t);if(!r)return null;let{node:i,from:s,to:o}=r,a=i.nodeValue;if(/[\n\r]/.test(a)||n.state.doc.sliceString(r.from,r.to)!=a)return null;let l=e.invertedDesc;return{range:new zr(l.mapPos(s),l.mapPos(o),s,o),text:i}}function Z_(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(t=!0)}),t}var tl=class extends Ct{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function B_(n,e,t=1){let r=n.charCategorizer(e),i=n.doc.lineAt(e),s=e-i.from;if(i.length==0)return z.cursor(e);s==0?t=1:s==i.length&&(t=-1);let o=s,a=s;t<0?o=Pt(i.text,s,!1):a=Pt(i.text,s);let l=r(i.text.slice(o,a));for(;o>0;){let c=Pt(i.text,o,!1);if(r(i.text.slice(c,o))!=l)break;o=c}for(;an.defaultLineHeight*1.5){let a=n.viewState.heightOracle.textHeight,l=Math.floor((i-t.top-(n.defaultLineHeight-a)*.5)/a);s+=l*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(t.from,t.to);return t.from+Kc(o,s,n.state.tabSize)}function Yp(n,e,t){let r=n.lineBlockAt(e);if(Array.isArray(r.type)){let i;for(let s of r.type){if(s.from>e)break;if(!(s.toe)return s;(!i||s.type==Ht.Text&&(i.type!=s.type||(t<0?s.frome)))&&(i=s)}}return i||r}return r}function F_(n,e,t,r){let i=Yp(n,e.head,e.assoc||-1),s=!r||i.type!=Ht.Text||!(n.lineWrapping||i.widgetLineBreaks)?null:n.coordsAtPos(e.assoc<0&&e.head>i.from?e.head-1:e.head);if(s){let o=n.dom.getBoundingClientRect(),a=n.textDirectionAt(i.from),l=n.posAtCoords({x:t==(a==qe.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return z.cursor(l,t?-1:1)}return z.cursor(t?i.to:i.from,t?-1:1)}function kS(n,e,t,r){let i=n.state.doc.lineAt(e.head),s=n.bidiSpans(i),o=n.textDirectionAt(i.from);for(let a=e,l=null;;){let c=$_(i,s,o,a,t),d=pv;if(!c){if(i.number==(t?n.state.doc.lines:1))return a;d=` -`,i=n.state.doc.line(i.number+(t?1:-1)),s=n.bidiSpans(i),c=n.visualLineSide(i,!t)}if(l){if(!l(d))return a}else{if(!r)return c;l=r(d)}a=c}}function Y_(n,e,t){let r=n.state.charCategorizer(e),i=r(t);return s=>{let o=r(s);return i==et.Space&&(i=o),i==o}}function j_(n,e,t,r){let i=e.head,s=t?1:-1;if(i==(t?n.state.doc.length:0))return z.cursor(i,e.assoc);let o=e.goalColumn,a,l=n.contentDOM.getBoundingClientRect(),c=n.coordsAtPos(i,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),d=n.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let m=n.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,n.defaultCharacterWidth*(i-m.from))),a=(s<0?m.top:m.bottom)+d}let h=l.left+o,u=n.viewState.heightOracle.textHeight>>1,f=r!=null?r:u;for(let m=0;;m+=u){let O=a+(f+m)*s,S=jp(n,{x:h,y:O},!1,s);if(t?O>l.bottom:Oa:D{if(e>s&&ei(n)),t.from,e.head>t.from?-1:1);return r==t.from?t:z.cursor(r,rn.viewState.docHeight)return new Or(n.state.doc.length,-1);if(c=n.elementAtHeight(l),r==null)break;if(c.type==Ht.Text){if(r<0?c.ton.viewport.to)break;let u=n.docView.coordsAt(r<0?c.from:c.to,r>0?-1:1);if(u&&(r<0?u.top<=l+s:u.bottom>=l+s))break}let h=n.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+h:c.top-h}if(n.viewport.from>=c.to||n.viewport.to<=c.from){if(t)return null;if(c.type==Ht.Text){let h=V_(n,i,c,o,a);return new Or(h,h==c.from?1:-1)}}if(c.type!=Ht.Text)return l<(c.top+c.bottom)/2?new Or(c.from,1):new Or(c.to,-1);let d=n.docView.lineAt(c.from,2);return(!d||d.length!=c.length)&&(d=n.docView.lineAt(c.from,-2)),new Up(n,o,a,n.textDirectionAt(c.from)).scanTile(d,c.from)}var Up=class{constructor(e,t,r,i){this.view=e,this.x=t,this.y=r,this.baseDir=i,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||r.length&&(r[0].level!=this.baseDir||r[0].to+i.from>1;t:if(o.has(O)){for(let D=1;D=s&&(M-=m),!o.has(M)){O=M;break t}}break e}o.add(O);let S=t(O),x=0;if(S)for(let D=0;D1))if(M.bottomthis.y)(!c||c.top>M.top)&&(c=M),x=-1;else{let Z=M.left>this.x?this.x-M.left:M.right(m+m+O)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(m+O+O)/3)return this.y=c.top+1,this.scan(e,t,!0)}let f=(a?this.dirAt(e[d],1):this.baseDir)==qe.LTR;return{i:d,after:this.x>(u.left+u.right)/2==f}}scanText(e,t){let r=[];for(let s=0;s{let o=r[s]-t,a=r[s+1]-t;return cl(e.dom,o,a).getClientRects()});return i.after?new Or(r[i.i+1],-1):new Or(r[i.i],1)}scanTile(e,t){if(!e.length)return new Or(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let r=[t];for(let a=0,l=t;a{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:cl(l.dom,0,l.length)).getClientRects()}),s=e.children[i.i],o=r[i.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):i.after?new Or(r[i.i+1],-1):new Or(o,1)}},Ro="\uFFFF",qp=class{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(Me.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Ro}readRange(e,t){if(!e)return this;let r=e.parentNode;for(let i=e;;){this.findPointBefore(r,i);let s=this.text.length;this.readNode(i);let o=mt.get(i),a=i.nextSibling;if(a==t){o!=null&&o.breakAfter&&!a&&r!=this.view.contentDOM&&this.lineBreak();break}let l=mt.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:gd(i))||gd(a)&&(i.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>s)&&!q_(a,t)&&this.lineBreak(),i=a}return this.findPointBefore(r,t),this}readTextNode(e){let t=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,t.length));for(let r=0,i=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,a;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(a=i.exec(t))&&(s=a.index,o=a[0].length),this.append(t.slice(r,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);r=s+o}}readNode(e){let t=mt.get(e),r=t&&t.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let i=r.iter();!i.next().done;)i.lineBreak?this.lineBreak():this.append(i.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==t&&(r.pos=this.text.length)}findPointInside(e,t){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(U_(e,r.node,r.offset)?t:0))}};function U_(n,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,a=e.state.selection;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Ev(e.docView.tile,t,r,0))){let l=s||o?[]:H_(e),c=new qp(l,e);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=K_(l,this.bounds.from)}else{let l=e.observer.selectionRange,c=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!Ep(e.contentDOM,l.focusNode)?a.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),d=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!Ep(e.contentDOM,l.anchorNode)?a.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset),h=e.viewport;if((ae.ios||ae.chrome)&&c!=d&&Math.min(c,d)<=a.main.from&&Math.max(c,d)>=a.main.to&&(h.from>0||h.to-1&&a.ranges.length>1)this.newSel=a.replaceRange(z.range(d,c));else if(e.lineWrapping&&d==c&&!(a.main.empty&&a.main.head==c)&&e.inputState.lastTouchTime>Date.now()-100){let u=e.coordsAtPos(c,-1),f=0;u&&(f=e.inputState.lastTouchY<=u.bottom?-1:1),this.newSel=z.create([z.cursor(c,f)])}else this.newSel=z.single(d,c)}}};function Ev(n,e,t,r){if(n.isComposite()){let i=-1,s=-1,o=-1,a=-1;for(let l=0,c=r,d=r;lt)return Ev(h,e,t,c);if(u>=e&&i==-1&&(i=l,s=c),c>t&&h.dom.parentNode==n.dom){o=l,a=d;break}d=u,c=u+h.breakAfter}return{from:s,to:a<0?r+n.length:a,startDOM:(i?n.children[i-1].dom.nextSibling:null)||n.dom.firstChild,endDOM:o=0?n.children[o].dom:null}}else return n.isText()?{from:r,to:r+n.length,startDOM:n.dom,endDOM:n.dom.nextSibling}:null}function Rv(n,e){let t,{newSel:r}=e,{state:i}=n,s=i.selection.main,o=n.inputState.lastKeyTime>Date.now()-100?n.inputState.lastKeyCode:-1;if(e.bounds){let{from:a,to:l}=e.bounds,c=s.from,d=null;(o===8||ae.android&&e.text.length=a&&s.to<=l&&(e.typeOver||h!=e.text)&&h.slice(0,s.from-a)==e.text.slice(0,s.from-a)&&h.slice(s.to-a)==e.text.slice(u=e.text.length-(h.length-(s.to-a)))?t={from:s.from,to:s.to,insert:De.of(e.text.slice(s.from-a,u).split(Ro))}:(f=Mv(h,e.text,c-a,d))&&(ae.chrome&&o==13&&f.toB==f.from+2&&e.text.slice(f.from,f.toB)==Ro+Ro&&f.toB--,t={from:a+f.from,to:a+f.toA,insert:De.of(e.text.slice(f.from,f.toB).split(Ro))})}else r&&(!n.hasFocus&&i.facet(xi)||wd(r,s))&&(r=null);if(!t&&!r)return!1;if((ae.mac||ae.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&n.contentDOM.getAttribute("autocorrect")=="off"?(r&&t.insert.length==2&&(r=z.single(r.main.anchor-1,r.main.head-1)),t={from:t.from,to:t.to,insert:De.of([t.insert.toString().replace("."," ")])}):i.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:i.toText(n.inputState.insertingText)}:ae.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` - `&&n.lineWrapping&&(r&&(r=z.single(r.main.anchor-1,r.main.head-1)),t={from:s.from,to:s.to,insert:De.of([" "])}),t)return Cm(n,t,r,o);if(r&&!wd(r,s)){let a=!1,l="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(a=!0),l=n.inputState.lastSelectionOrigin,l=="select.pointer"&&(r=_v(i.facet(ul).map(c=>c(n)),r))),n.dispatch({selection:r,scrollIntoView:a,userEvent:l}),!0}else return!1}function Cm(n,e,t,r=-1){if(ae.ios&&n.inputState.flushIOSKey(e))return!0;let i=n.state.selection.main;if(ae.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&n.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Xo(n.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||r==8&&e.insert.lengthi.head)&&Xo(n.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&Xo(n.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,a=()=>o||(o=G_(n,e,t));return n.state.facet(yv).some(l=>l(n,e.from,e.to,s,a))||n.dispatch(a()),!0}function G_(n,e,t){let r,i=n.state,s=i.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let l=e.fromh(n)),c,l);e.from==d&&(o=d)}if(o>-1)r={changes:e,selection:z.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&n.inputState.composing<0){let l=s.frome.to?i.sliceDoc(e.to,s.to):"";r=i.replaceSelection(n.state.toText(l+e.insert.sliceString(0,void 0,n.state.lineBreak)+c))}else{let l=i.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(i.selection.ranges.length>1&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=n.state.sliceDoc(e.from,e.to),h,u=t&&Cv(n,t.main.head);if(u){let m=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-m}}else h=n.state.doc.lineAt(s.head);let f=s.to-e.to;r=i.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:l,range:c||m.map(l)};let O=m.to-f,S=O-d.length;if(n.state.sliceDoc(S,O)!=d||O>=h.from&&S<=h.to)return{range:m};let x=i.changes({from:S,to:O,insert:e.insert}),D=m.to-s.to;return{changes:x,range:c?z.range(Math.max(0,c.anchor+D),Math.max(0,c.head+D)):m.map(x)}})}else r={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,a+=".compose",n.inputState.compositionFirstChange&&(a+=".start",n.inputState.compositionFirstChange=!1)),i.update(r,{userEvent:a,scrollIntoView:!0})}function Mv(n,e,t,r){let i=Math.min(n.length,e.length),s=0;for(;s0&&a>0&&n.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function H_(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}=n.observer.selectionRange;return t&&(e.push(new vd(t,r)),(i!=t||s!=r)&&e.push(new vd(i,s))),e}function K_(n,e){if(n.length==0)return null;let t=n[0].pos,r=n.length==2?n[1].pos:t;return t>-1&&r>-1?z.single(t+e,r+e):null}function wd(n,e){return e.head==n.main.head&&e.anchor==n.main.anchor}var Hp=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,ae.safari&&e.contentDOM.addEventListener("input",()=>null),ae.gecko&&f2(e.contentDOM.ownerDocument)}handleEvent(e){!o2(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let r=this.handlers[e];if(r){for(let i of r.observers)i(this.view,t);for(let i of r.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=e2(e),r=this.handlers,i=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,a=r[s];a&&o!=!a.handlers.length&&(i.removeEventListener(s,this.handleEvent),a=null),a||i.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!t[s]&&i.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Dv.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),ae.android&&ae.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(ae.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(Lv.some(t=>t.keyCode==e.keyCode)&&!e.ctrlKey||t2.indexOf(e.key)>-1&&e.ctrlKey)){let t={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return t.shiftKey&&ae.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&J_(this.view.win)&&(t.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:t},setTimeout(()=>this.flushIOSKey(),50),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let t=this.pendingIOSKey;return!t||this.view.observer.pendingRecords().length||t.key=="Enter"&&e&&e.from0?!0:ae.safari&&!ae.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function J_(n){return n.visualViewport?n.visualViewport.height*n.visualViewport.scale/n.document.documentElement.clientHeight<.85:!1}function $S(n,e){return(t,r)=>{try{return e.call(n,r,t)}catch(i){jn(t.state,i)}}}function e2(n){let e=Object.create(null);function t(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of n){let i=r.spec,s=i&&i.plugin.domEventHandlers,o=i&&i.plugin.domEventObservers;if(s)for(let a in s){let l=s[a];l&&t(a).handlers.push($S(r.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push($S(r.value,l))}}for(let r in Wr)t(r).handlers.push(Wr[r]);for(let r in yn)t(r).observers.push(yn[r]);return e}var Lv=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],t2="dthko",Dv=[16,17,18,20,91,92,224,225],td=6;function nd(n){return Math.max(0,n)*.7+8}function n2(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}var Kp=class{constructor(e,t,r,i){this.view=e,this.startEvent=t,this.style=r,this.mustSelect=i,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=rv(e.contentDOM),this.atoms=e.state.facet(ul).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(Me.allowMultipleSelections)&&r2(e,t),this.dragging=s2(e,t)&&Xv(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&n2(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,r=0,i=0,s=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:i,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=Am(this.view);e.clientX-l.left<=i+td?t=-nd(i-e.clientX):e.clientX+l.right>=o-td&&(t=nd(e.clientX-o)),e.clientY-l.top<=s+td?r=-nd(s-e.clientY):e.clientY+l.bottom>=a-td&&(r=nd(e.clientY-a)),this.setScrollSpeed(t,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,r=_v(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function r2(n,e){let t=n.state.facet(mv);return t.length?t[0](e):ae.mac?e.metaKey:e.ctrlKey}function i2(n,e){let t=n.state.facet(gv);return t.length?t[0](e):ae.mac?!e.altKey:!e.ctrlKey}function s2(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let r=ll(n.root);if(!r||r.rangeCount==0)return!0;let i=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function o2(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,r;t!=n.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(r=mt.get(t))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}var Wr=Object.create(null),yn=Object.create(null),Zv=ae.ie&&ae.ie_version<15||ae.ios&&ae.webkit_version<604;function a2(n){let e=n.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{n.focus(),t.remove(),Iv(n,t.value)},50)}function Md(n,e,t){for(let r of n.facet(e))t=r(t,n);return t}function Iv(n,e){e=Md(n.state,km,e);let{state:t}=n,r,i=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(Jp!=null&&t.selection.ranges.every(l=>l.empty)&&Jp==s.toString()){let l=-1;r=t.changeByRange(c=>{let d=t.doc.lineAt(c.from);if(d.from==l)return{range:c};l=d.from;let h=t.toText((o?s.line(i++).text:e)+t.lineBreak);return{changes:{from:d.from,insert:h},range:z.cursor(c.from+h.length)}})}else o?r=t.changeByRange(l=>{let c=s.line(i++);return{changes:{from:l.from,to:l.to,insert:c.text},range:z.cursor(l.from+c.length)}}):r=t.replaceSelection(s);n.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}yn.scroll=n=>{let e=n.inputState;e.lastScrollTop=n.scrollDOM.scrollTop,e.lastScrollLeft=n.scrollDOM.scrollLeft,ae.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};yn.wheel=yn.mousewheel=n=>{n.inputState.lastWheelEvent=Date.now()};Wr.keydown=(n,e)=>(n.inputState.setSelectionOrigin("select"),e.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);yn.touchstart=(n,e)=>{let t=n.inputState,r=e.targetTouches[0];t.touchActive=!0,t.lastTouchTime=Date.now(),r&&(t.lastTouchX=r.clientX,t.lastTouchY=r.clientY),t.setSelectionOrigin("select.pointer")};yn.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};yn.touchend=(n,e)=>{n.inputState.touchActive=!1};Wr.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let r of n.state.facet(Ov))if(t=r(n,e),t)break;if(!t&&e.button==0&&(t=c2(n,e)),t){let r=!n.hasFocus;n.inputState.startMouseSelection(new Kp(n,e,t,r)),r&&n.observer.ignore(()=>{ov(n.contentDOM);let s=n.root.activeElement;s&&!s.contains(n.contentDOM)&&s.blur()});let i=n.inputState.mouseSelection;if(i)return i.start(e),i.dragging===!1}else n.inputState.setSelectionOrigin("select.pointer");return!1};function QS(n,e,t,r){if(r==1)return z.cursor(e,t);if(r==2)return B_(n.state,e,t);{let i=n.docView.lineAt(e,t),s=n.state.doc.lineAt(i?i.posAtEnd:e),o=i?i.posAtStart:s.from,a=i?i.posAtEnd:s.to;return aDate.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(AS+1)%3:1}function c2(n,e){let t=n.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=Xv(e),i=n.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),i=i.map(s.changes))},get(s,o,a){let l=n.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),c,d=QS(n,l.pos,l.assoc,r);if(t.pos!=l.pos&&!o){let h=QS(n,t.pos,t.assoc,r),u=Math.min(h.from,d.from),f=Math.max(h.to,d.to);d=u1&&(c=d2(i,l.pos))?c:a?i.addRange(d):z.create([d])}}}function d2(n,e){for(let t=0;t=e)return z.create(n.ranges.slice(0,t).concat(n.ranges.slice(t+1)),n.mainIndex==t?0:n.mainIndex-(n.mainIndex>t?1:0))}return null}Wr.dragstart=(n,e)=>{let{selection:{main:t}}=n.state;if(e.target.draggable){let i=n.docView.tile.nearest(e.target);if(i&&i.isWidget()){let s=i.posAtStart,o=s+i.length;(s>=t.to||o<=t.from)&&(t=z.undirectionalRange(s,o))}}let{inputState:r}=n;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",Md(n.state,$m,n.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Wr.dragend=n=>(n.inputState.draggedContent=null,!1);function _S(n,e,t,r){if(t=Md(n.state,km,t),!t)return;let i=n.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=n.inputState,o=r&&s&&i2(n,e)?{from:s.from,to:s.to}:null,a={from:i,insert:t},l=n.state.changes(o?[o,a]:a);n.focus(),n.dispatch({changes:l,selection:{anchor:l.mapPos(i,-1),head:l.mapPos(i,1)},userEvent:o?"move.drop":"input.drop"}),n.inputState.draggedContent=null}Wr.drop=(n,e)=>{if(!e.dataTransfer)return!1;if(n.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let r=Array(t.length),i=0,s=()=>{++i==t.length&&_S(n,e,r.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(r[o]=a.result),s()},a.readAsText(t[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return _S(n,e,r,!0),!0}return!1};Wr.paste=(n,e)=>{if(n.state.readOnly)return!0;n.observer.flush();let t=Zv?null:e.clipboardData;return t?(Iv(n,t.getData("text/plain")||t.getData("text/uri-list")),!0):(a2(n),!1)};function h2(n,e){let t=n.dom.parentNode;if(!t)return;let r=t.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),n.focus()},50)}function u2(n){let e=[],t=[],r=!1;for(let i of n.selection.ranges)i.empty||(e.push(n.sliceDoc(i.from,i.to)),t.push(i));if(!e.length){let i=-1;for(let{from:s}of n.selection.ranges){let o=n.doc.lineAt(s);o.number>i&&(e.push(o.text),t.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),i=o.number}r=!0}return{text:Md(n,$m,e.join(n.lineBreak)),ranges:t,linewise:r}}var Jp=null;Wr.copy=Wr.cut=(n,e)=>{if(!Ha(n.contentDOM,n.observer.selectionRange))return!1;let{text:t,ranges:r,linewise:i}=u2(n.state);if(!t&&!i)return!1;Jp=i?t:null,e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=Zv?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(h2(n,t),!1)};var zv=Tn.define();function Wv(n,e){let t=[];for(let r of n.facet(Sv)){let i=r(n,e);i&&t.push(i)}return t.length?n.update({effects:t,annotations:zv.of(!0)}):null}function Nv(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let t=Wv(n.state,e);t?n.dispatch(t):n.update([])}},10)}yn.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),Nv(n)};yn.blur=n=>{n.observer.clearSelectionRange(),Nv(n)};yn.compositionstart=yn.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};yn.compositionend=n=>{n.observer.editContext||(n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,ae.chrome&&ae.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};yn.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};Wr.beforeinput=(n,e)=>{var t,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(n.inputState.insertingText=e.data,n.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&n.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let a=o[0],l=n.posAtDOM(a.startContainer,a.startOffset),c=n.posAtDOM(a.endContainer,a.endOffset);return Cm(n,{from:l,to:c,insert:n.state.toText(s)},null),!0}}let i;if(ae.chrome&&ae.android&&(i=Lv.find(s=>s.inputType==e.inputType))&&(n.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}return ae.ios&&e.inputType=="deleteContentForward"&&n.observer.flushSoon(),ae.safari&&e.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>yn.compositionend(n,e),20),!1};var ES=new Set;function f2(n){ES.has(n)||(ES.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}var RS=["pre-wrap","normal","pre-line","break-spaces"],Vo=!1;function MS(){Vo=!1}var em=class{constructor(e){this.lineWrapping=e,this.doc=De.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let r=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((t-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return RS.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let r=0;r-1,l=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=r,this.textHeight=i,this.lineLength=s,l){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>dd&&(Vo=!0),this.height=e)}replace(e,t,r){return n.of(r)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,r,i){let s=this,o=r.doc;for(let a=i.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:d,toB:h}=i[a],u=s.lineAt(l,ct.ByPosNoHeight,r.setDoc(t),0,0),f=u.to>=c?u:s.lineAt(c,ct.ByPosNoHeight,r,0,0);for(h+=f.to-c,c=f.to;a>0&&u.from<=i[a-1].toA;)l=i[a-1].fromA,d=i[a-1].fromB,a--,ls*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),r+=1+a.break,i-=a.size}else if(s>i*2){let a=e[r];a.break?e.splice(r,1,a.left,null,a.right):e.splice(r,1,a.left,a.right),r+=2+a.break,s-=a.size}else break;else if(i=s&&o(this.lineAt(0,ct.ByPos,r,i,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,r=!1,i){return i&&i.from<=t&&i.more&&this.setMeasuredHeight(i),this.outdated=!1,this}toString(){return`block(${this.length})`}},gr=class n extends Pd{constructor(e,t,r){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,t){return new Xr(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,r){let i=r[0];return r.length==1&&(i instanceof n||i instanceof Ui&&i.flags&4)&&Math.abs(this.length-i.length)<10?(i instanceof Ui?i=new n(i.length,this.height,this.spaceAbove):i.height=this.height,this.outdated||(i.outdated=!1),i):Un.of(r)}updateHeight(e,t=0,r=!1,i){return i&&i.from<=t&&i.more?this.setMeasuredHeight(i):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},Ui=class n extends Un{constructor(e){super(e,0)}heightMetrics(e,t){let r=e.doc.lineAt(t).number,i=e.doc.lineAt(t+this.length).number,s=i-r+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*s);o=l/s,this.length>s+1&&(a=(this.height-l)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:i,perLine:o,perChar:a}}blockAt(e,t,r,i){let{firstLine:s,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,i);if(t.lineWrapping){let c=i+(e0){let s=r[r.length-1];s instanceof n?r[r.length-1]=new n(s.length+i):r.push(null,new n(i-1))}if(e>0){let s=r[0];s instanceof n?r[0]=new n(e+s.length):r.unshift(new n(e-1),null)}return Un.of(r)}decomposeLeft(e,t){t.push(new n(e-1),null)}decomposeRight(e,t){t.push(null,new n(this.length-e-1))}updateHeight(e,t=0,r=!1,i){let s=t+this.length;if(i&&i.from<=t+this.length&&i.more){let o=[],a=Math.max(t,i.from),l=-1;for(i.from>t&&o.push(new n(i.from-t-1).updateHeight(e,t));a<=s&&i.more;){let d=e.doc.lineAt(a).length;o.length&&o.push(null);let h=i.heights[i.index++],u=0;h<0&&(u=-h,h=i.heights[i.index++]),l==-1?l=h:Math.abs(h-l)>=dd&&(l=-2);let f=new gr(d,h,u);f.outdated=!1,o.push(f),a+=d+1}a<=s&&o.push(null,new n(s-a).updateHeight(e,a));let c=Un.of(o);return(l<0||Math.abs(c.height-this.height)>=dd||Math.abs(l-this.heightMetrics(e,t).perLine)>=dd)&&(Vo=!0),xd(this,c)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},nm=class extends Un{constructor(e,t,r){super(e.length+t+r.length,e.height+r.height,t|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,t,r,i){let s=r+this.left.height;return ea))return c;let d=t==ct.ByPosNoHeight?ct.ByPosNoHeight:ct.ByPos;return l?c.join(this.right.lineAt(a,d,r,o,a)):this.left.lineAt(a,d,r,i,s).join(c)}forEachLine(e,t,r,i,s,o){let a=i+this.left.height,l=s+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,t,r,a,l,o);else{let c=this.lineAt(l,ct.ByPos,r,i,s);e=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,r,a,l,o)}}replace(e,t,r){let i=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-i,t-i,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let a of r)s.push(a);if(e>0&&LS(s,o-1),t=r&&t.push(null)),e>r&&this.right.decomposeLeft(e-r,t)}decomposeRight(e,t){let r=this.left.length,i=r+this.break;if(e>=i)return this.right.decomposeRight(e-i,t);e2*t.size||t.size>2*e.size?Un.of(this.break?[e,null,t]:[e,t]):(this.left=xd(this.left,e),this.right=xd(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,r=!1,i){let{left:s,right:o}=this,a=t+s.length+this.break,l=null;return i&&i.from<=t+s.length&&i.more?l=s=s.updateHeight(e,t,r,i):s.updateHeight(e,t,r),i&&i.from<=a+o.length&&i.more?l=o=o.updateHeight(e,a,r,i):o.updateHeight(e,a,r),l?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function LS(n,e){let t,r;n[e]==null&&(t=n[e-1])instanceof Ui&&(r=n[e+1])instanceof Ui&&n.splice(e-1,3,new Ui(t.length+1+r.length))}var m2=5,rm=class n{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let r=Math.min(t,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof gr?i.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new gr(r-this.pos,-1,0)),this.writtenTo=r,t>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,r){if(e=m2)&&this.addLineDeco(i,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new gr(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let r=new Ui(t-e);return this.oracle.doc.lineAt(e).to==t&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof gr)return e;let t=new gr(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,r){let i=this.ensureLine();i.length+=r,i.collapsed+=r,i.widgetHeight=Math.max(i.widgetHeight,e),i.breaks+=t,this.writtenTo=this.pos=this.pos+r}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof gr)&&!this.isCovered?this.nodes.push(new gr(0,-1,0)):(this.writtenTod.clientHeight||d.scrollWidth>d.clientWidth)&&h.overflow!="visible"){let u=d.getBoundingClientRect();s=Math.max(s,u.left),o=Math.min(o,u.right),a=Math.max(a,u.top),l=Math.min(c==n.parentNode?i.innerHeight:l,u.bottom)}c=h.position=="absolute"||h.position=="fixed"?d.offsetParent:d.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function b2(n){let e=n.getBoundingClientRect(),t=n.ownerDocument.defaultView||window;return e.left0&&e.top0}function y2(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var rl=class{constructor(e,t,r,i){this.from=e,this.to=t,this.size=r,this.displaySize=i}static same(e,t){if(e.length!=t.length)return!1;for(let r=0;rtypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new em(r),this.stateDeco=ZS(t),this.heightMap=Un.empty().applyChanges(this.stateDeco,De.empty,this.heightOracle.setDoc(t.doc),[new zr(0,0,0,t.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=K.set(this.lineGaps.map(i=>i.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let r=0;r<=1;r++){let i=r?t.head:t.anchor;if(!e.some(({from:s,to:o})=>i>=s&&i<=o)){let{from:s,to:o}=this.lineBlockAt(i);e.push(new Lo(s,o))}}return this.viewports=e.sort((r,i)=>r.from-i.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?DS:new om(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(qa(e,this.scaler))})}update(e,t=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=ZS(this.state);let i=e.changedRanges,s=zr.extendWithRanges(i,g2(r,this.stateDeco,e?e.changes:On.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);MS(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Vo)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(wv)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,t=e.contentDOM,r=window.getComputedStyle(t),i=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?qe.RTL:qe.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,d=0;if(a.width&&a.height){let{scaleX:k,scaleY:w}=nv(t,a);(k>.005&&Math.abs(this.scaleX-k)>.005||w>.005&&Math.abs(this.scaleY-w)>.005)&&(this.scaleX=k,this.scaleY=w,c|=16,o=l=!0)}let h=(parseInt(r.paddingTop)||0)*this.scaleY,u=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=u)&&(this.paddingTop=h,this.paddingBottom=u,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(i.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let f=rv(this.view.contentDOM,!1).y;f!=this.scrollParent&&(this.scrollParent=f,this.scrollAnchorHeight=-1,this.scrollOffset=0);let m=this.getScrollOffset();this.scrollOffset!=m&&(this.scrollAnchorHeight=-1,this.scrollOffset=m),this.scrolledToBottom=av(this.scrollParent||e.win);let O=(this.printing?y2:O2)(t,this.paddingTop),S=O.top-this.pixelViewport.top,x=O.bottom-this.pixelViewport.bottom;this.pixelViewport=O;let D=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(D!=this.inView&&(this.inView=D,D&&(l=!0)),!this.inView&&!this.scrollTarget&&!b2(e.dom))return 0;let M=a.width;if((this.contentDOMWidth!=M||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let k=e.docView.measureVisibleLineHeights(this.viewport);if(i.mustRefreshForHeights(k)&&(o=!0),o||i.lineWrapping&&Math.abs(M-this.contentDOMWidth)>i.charWidth){let{lineHeight:w,charWidth:R,textHeight:X}=e.docView.measureTextSize();o=w>0&&i.refresh(s,w,R,X,Math.max(5,M/R),k),o&&(e.docView.minWidth=0,c|=16)}S>0&&x>0?d=Math.max(S,x):S<0&&x<0&&(d=Math.min(S,x)),MS();for(let w of this.viewports){let R=w.from==this.viewport.from?k:e.docView.measureVisibleLineHeights(w);this.heightMap=(o?Un.empty().applyChanges(this.stateDeco,De.empty,this.heightOracle,[new zr(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(i,0,o,new tm(w.from,R))}Vo&&(c|=2)}let Z=!this.viewportIsAppropriate(this.viewport,d)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return Z&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(d,this.scrollTarget),c|=this.updateForViewport()),(c&2||Z)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),i=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new Lo(i.lineAt(o-r*1e3,ct.ByHeight,s,0,0).from,i.lineAt(a+(1-r)*1e3,ct.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(cl.to){let d=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=i.lineAt(c,ct.ByPos,s,0,0),u;t.y=="center"?u=(h.top+h.bottom)/2-d/2:t.y=="start"||t.y=="nearest"&&c=a+Math.max(10,Math.min(r,250)))&&i>o-2*1e3&&s>1,o=i<<1;if(this.defaultTextDirection!=qe.LTR&&!r)return[];let a=[],l=(d,h,u,f)=>{if(h-dd&&xx.from>=u.from&&x.to<=u.to&&Math.abs(x.from-d)x.fromD));if(!S){if(hM.from<=h&&M.to>=h)){let M=t.moveToLineBoundary(z.cursor(h),!1,!0).head;M>d&&(h=M)}let x=this.gapSize(u,d,h,f),D=r||x<2e6?x:2e6;S=new rl(d,h,x,D)}a.push(S)},c=d=>{if(d.length2e6)for(let w of e)w.from>=d.from&&w.fromd.from&&l(d.from,f,d,h),mt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let r=[];$e.spans(t,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let i=0;if(r.length!=this.visibleRanges.length)i=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||qa(this.heightMap.lineAt(e,ct.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||qa(this.heightMap.lineAt(this.scaler.fromDOM(e),ct.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop*this.scaleY:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return qa(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Lo=class{constructor(e,t){this.from=e,this.to=t}};function S2(n,e,t){let r=[],i=n,s=0;return $e.spans(t,n,e,{span(){},point(o,a){o>i&&(r.push({from:i,to:o}),s+=o-i),i=a}},20),i=1)return e[e.length-1].to;let r=Math.floor(n*t);for(let i=0;;i++){let{from:s,to:o}=e[i],a=o-s;if(r<=a)return s+r;r-=a}}function id(n,e){let t=0;for(let{from:r,to:i}of n.ranges){if(e<=i){t+=e-r;break}t+=i-r}return t/n.total}function v2(n,e){for(let t of n)if(e(t))return t}var DS={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}};function ZS(n){let e=n.facet(Rd).filter(r=>typeof r!="function"),t=n.facet(Tm).filter(r=>typeof r!="function");return t.length&&e.push($e.join(t)),e}var om=class n{constructor(e,t,r){let i=0,s=0,o=0;this.viewports=r.map(({from:a,to:l})=>{let c=t.lineAt(a,ct.ByPos,e,0,0).top,d=t.lineAt(l,ct.ByPos,e,0,0).bottom;return i+=d-c,{from:a,to:l,top:c,bottom:d,domTop:0,domBottom:0}}),this.scale=(7e6-i)/(t.height-i);for(let a of this.viewports)a.domTop=o+(a.top-s)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),s=a.bottom}toDOM(e){for(let t=0,r=0,i=0;;t++){let s=tt.from==e.viewports[r].from&&t.to==e.viewports[r].to):!1}};function qa(n,e){if(e.scale==1)return n;let t=e.toDOM(n.top),r=e.toDOM(n.bottom);return new Xr(n.from,n.length,t,r-t,Array.isArray(n._content)?n._content.map(i=>qa(i,e)):n._content)}var sd=oe.define({combine:n=>n.join(" ")}),am=oe.define({combine:n=>n.indexOf(!0)>-1}),lm=mr.newName(),Bv=mr.newName(),Vv=mr.newName(),Fv={"&light":"."+Bv,"&dark":"."+Vv};function cm(n,e,t){return new mr(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,i=>{if(i=="&")return n;if(!t||!t[i])throw new RangeError(`Unsupported selector: ${i}`);return t[i]}):n+" "+r}})}var w2=cm("."+lm,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{background:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 0) no-repeat",backgroundSize:".4em",backgroundPosition:"calc(min(50%, 0px)) center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Fv),x2={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},xp=ae.ie&&ae.ie_version<=11,dm=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new Rp,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let r of t)this.queue.push(r);(ae.ie&&ae.ie_version<=11||ae.ios&&e.composing)&&t.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&ae.android&&e.constructor.EDIT_CONTEXT!==!1&&!(ae.chrome&&ae.chrome_version<126)&&(this.editContext=new hm(e),e.state.facet(xi)&&(e.contentDOM.editContext=this.editContext.editContext)),xp&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,r)=>t!=e[r]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,i=this.selectionRange;if(r.state.facet(xi)?r.root.activeElement!=this.dom:!Ha(this.dom,i))return;let s=i.anchorNode&&r.docView.tile.nearest(i.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(ae.ie&&ae.ie_version<=11||ae.android&&ae.chrome)&&!r.state.selection.main.empty&&i.focusNode&&Ka(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=ll(e.root);if(!t)return!1;let r=ae.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&P2(this.view,t)||t;if(!r||this.selectionRange.eq(r))return!1;let i=Ha(this.dom,r);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Xo(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(i)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,r=-1,i=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(i=!0),t==-1?{from:t,to:r}=o:(t=Math.min(o.from,t),r=Math.max(o.to,r)))}return{from:t,to:r,typeOver:i}}readChange(){let{from:e,to:t,typeOver:r}=this.processRecords(),i=this.selectionChanged&&Ha(this.dom,this.selectionRange);if(e<0&&!i)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new Gp(this.view,e,t,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let r=this.view.state,i=Rv(this.view,t);return this.view.state==r&&(t.domChanged||t.newSel&&!wd(this.view.state.selection,t.newSel.main))&&this.view.update([]),i}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let r=IS(t,e.previousSibling||e.target.previousSibling,-1),i=IS(t,e.nextSibling||e.target.nextSibling,1);return{from:r?t.posAfter(r):t.posAtStart,to:i?t.posBefore(i):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(xi)!=e.state.facet(xi)&&(e.view.contentDOM.editContext=e.state.facet(xi)?this.editContext.editContext:null))}destroy(){var e,t,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let i of this.scrollTargets)i.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function IS(n,e,t){for(;e;){let r=mt.get(e);if(r&&r.parent==n)return r;let i=e.parentNode;e=i!=n.dom?i:t>0?e.nextSibling:e.previousSibling}return null}function XS(n,e){let t=e.startContainer,r=e.startOffset,i=e.endContainer,s=e.endOffset,o=n.docView.domAtPos(n.state.selection.main.anchor,1);return Ka(o.node,o.offset,i,s)&&([t,r,i,s]=[i,s,t,r]),{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}}function P2(n,e){if(e.getComposedRanges){let i=e.getComposedRanges(n.root)[0];if(i)return XS(n,i)}let t=null;function r(i){i.preventDefault(),i.stopImmediatePropagation(),t=i.getTargetRanges()[0]}return n.contentDOM.addEventListener("beforeinput",r,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",r,!0),t?XS(n,t):null}var hm=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let i=e.state.selection.main,{anchor:s,head:o}=i,a=this.toEditorPos(r.updateRangeStart),l=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:a,drifted:!1});let c=l-a>r.text.length;a==this.from&&sthis.to&&(l=s);let d=Mv(e.state.sliceDoc(a,l),r.text,(c?i.from:i.to)-a,c?"end":null);if(!d){let u=z.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));wd(u,i)||e.dispatch({selection:u,userEvent:"select"});return}let h={from:d.from+a,to:d.toA+a,insert:De.of(r.text.slice(d.from,d.toB).split(` -`))};if((ae.mac||ae.android)&&h.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:De.of([r.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let u=this.to-this.from+(h.to-h.from+h.insert.length);Cm(e,h,z.single(this.toEditorPos(r.selectionStart,u),this.toEditorPos(r.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let i=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);o{let i=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{let i=ll(r.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)return;let d=c.length-(o-s);if(i&&o>=i.to)if(i.from==s&&i.to==o&&i.insert.eq(c)){i=this.pendingContextChange=null,t+=d,this.to+=d;return}else i=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=d,this.to+=d;else if(sthis.to||this.to-this.from+c.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=d}t+=d}),i&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(i=>!i.isUserEvent("input.type")&&i.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(r,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},F=class n{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(i=>i.forEach(s=>r(s,this)))||(i=>this.update(i)),this.dispatch=this.dispatch.bind(this),this._root=e.root||O_(e.parent)||document,this.viewState=new kd(this,e.state||Me.create(e)),e.scrollTo&&e.scrollTo.is(ed)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Mo).map(i=>new el(i));for(let i of this.plugins)i.update(this);this.observer=new dm(this),this.inputState=new Hp(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Sd(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof ut?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,r=!1,i,s=this.state;for(let u of e){if(u.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=u.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,a=0,l=null;e.some(u=>u.annotation(zv))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=Wv(s,o),l||(a=1));let c=this.observer.delayedAndroidKey,d=null;if(c?(this.observer.clearDelayedAndroidKey(),d=this.observer.readChange(),(d&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(d=null)):this.observer.clear(),s.facet(Me.phrases)!=this.state.facet(Me.phrases))return this.setState(s);i=bd.create(this,s,e),i.flags|=a;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(h&&(h=h.map(u.changes)),u.scrollIntoView){let{main:f}=u.state.selection,{x:m,y:O}=this.state.facet(n.cursorScrollMargin);h=new Ja(f.empty?f:z.cursor(f.head,f.head>f.anchor?-1:1),"nearest","nearest",O,m)}for(let f of u.effects)f.is(ed)&&(h=f.value.clip(this.state))}this.viewState.update(i,h),this.bidiCache=$d.update(this.bidiCache,i.changes),i.empty||(this.updatePlugins(i),this.inputState.update(i)),t=this.docView.update(i),this.state.facet(Ua)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(i.startState.facet(sd)!=i.state.facet(sd)&&(this.viewState.mustMeasureContent=!0),(t||r||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!i.empty)for(let u of this.state.facet(Zp))try{u(i)}catch(f){jn(this.state,f,"update listener")}(l||d)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),d&&!Rv(this,d)&&c.force&&Xo(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new kd(this,e),this.plugins=e.facet(Mo).map(r=>new el(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new Sd(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Mo),r=e.state.facet(Mo);if(t!=r){let i=[];for(let s of r){let o=t.indexOf(s);if(o<0)i.push(new el(s));else{let a=this.plugins[o];a.mustUpdate=e,i.push(a)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=i,this.pluginMap.clear()}else for(let i of this.plugins)i.mustUpdate=e;for(let i=0;i-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,r=this.viewState.scrollParent,i=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o,scaleY:a}=this.viewState;Math.abs(i-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0){if(av(r||this.win))s=-1,o=this.viewState.heightMap.height/this.viewState.scaleY;else{let m=this.viewState.scrollAnchorAt(i);s=m.from,o=m.top}a=this.viewState.scaleY}this.updateState=1;let c=this.viewState.measure();if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let d=[];c&4||([this.measureRequests,d]=[d,this.measureRequests]);let h=d.map(m=>{try{return m.read(this)}catch(O){return jn(this.state,O),zS}}),u=bd.create(this,this.state,[]),f=!1;u.flags|=c,t?t.flags|=c:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),f=this.docView.update(u),f&&this.docViewUpdate());for(let m=0;m1||O<-1)&&!(ae.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(r==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){i=i+O,r?s<0?r.scrollTop=r.scrollHeight:r.scrollTop+=O:this.win.scrollBy(0,O),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(Zp))l(t)}get themeClasses(){return lm+" "+(this.state.facet(am)?Vv:Bv)+" "+this.state.facet(sd)}updateAttrs(){let e=WS(this,kv,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(xi)?"true":"false",class:"cm-content",style:`${ae.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),WS(this,Qm,t);let r=this.observer.ignore(()=>{let i=yS(this.contentDOM,this.contentAttrs,t),s=yS(this.dom,this.editorAttrs,e);return i||s});return this.editorAttrs=e,this.contentAttrs=t,r}showAnnouncements(e){let t=!0;for(let r of e)for(let i of r.effects)if(i.is(n.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=i.value}}mountStyles(){this.styleModules=this.state.facet(Ua);let e=this.state.facet(n.cspNonce);mr.mount(this.root,this.styleModules.concat(w2).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;tr.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,r){return wp(this,e,kS(this,e,t,r))}moveByGroup(e,t){return wp(this,e,kS(this,e,t,r=>Y_(this,e.head,r)))}visualLineSide(e,t){let r=this.bidiSpans(e),i=this.textDirectionAt(e.from),s=r[t?r.length-1:0];return z.cursor(s.side(t,i)+e.from,s.forward(!t,i)?1:-1)}moveToLineBoundary(e,t,r=!0){return F_(this,e,t,r)}moveVertically(e,t,r){return wp(this,e,j_(this,e,t,r))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let r=jp(this,e,t);return r&&r.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),jp(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let r=this.state.doc.lineAt(e),i=this.bidiSpans(r),s=i[br.find(i,e-r.from,-1,t)];return this.docView.coordsAt(e,t,s.dir==qe.RTL)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(vv)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>k2)return fv(e.length);let t=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||uv(s.isolates,r=wS(this,e))))return s.order;r||(r=wS(this,e));let i=k_(e.text,t,r);return this.bidiCache.push(new $d(e.from,e.to,t,r,!0,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||ae.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{ov(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var r,i,s,o;return ed.of(new Ja(typeof e=="number"?z.cursor(e):e,(r=t.y)!==null&&r!==void 0?r:"nearest",(i=t.x)!==null&&i!==void 0?i:"nearest",(s=t.yMargin)!==null&&s!==void 0?s:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return ed.of(new Ja(z.cursor(r.from),"start","start",r.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return it.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return it.define(()=>({}),{eventObservers:e})}static theme(e,t){let r=mr.newName(),i=[sd.of(r),Ua.of(cm(`.${r}`,e))];return t&&t.dark&&i.push(am.of(!0)),i}static baseTheme(e){return pr.lowest(Ua.of(cm("."+lm,e,Fv)))}static findFromDOM(e){var t;let r=e.querySelector(".cm-content"),i=r&&mt.get(r)||mt.get(e);return((t=i==null?void 0:i.root)===null||t===void 0?void 0:t.view)||null}};F.styleModule=Ua;F.inputHandler=yv;F.clipboardInputFilter=km;F.clipboardOutputFilter=$m;F.scrollHandler=xv;F.focusChangeEffect=Sv;F.perLineTextDirection=vv;F.exceptionSink=bv;F.updateListener=Zp;F.editable=xi;F.mouseSelectionStyle=Ov;F.dragMovesSelection=gv;F.clickAddsSelectionRange=mv;F.decorations=Rd;F.blockWrappers=$v;F.outerDecorations=Tm;F.atomicRanges=ul;F.bidiIsolatedRanges=Qv;F.cursorScrollMargin=oe.define({combine:n=>{let e=5,t=5;for(let r of n)typeof r=="number"?e=t=r:{x:e,y:t}=r;return{x:e,y:t}}});F.scrollMargins=Tv;F.darkTheme=am;F.cspNonce=oe.define({combine:n=>n.length?n[0]:""});F.contentAttributes=Qm;F.editorAttributes=kv;F.lineWrapping=F.contentAttributes.of({class:"cm-lineWrapping"});F.announce=ye.define();var k2=4096,zS={},$d=class n{constructor(e,t,r,i,s,o){this.from=e,this.to=t,this.dir=r,this.isolates=i,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let r=[],i=e.length?e[e.length-1].dir:qe.LTR;for(let s=Math.max(0,e.length-10);s=0;i--){let s=r[i],o=typeof s=="function"?s(n):s;o&&wm(o,t)}return t}var $2=ae.mac?"mac":ae.windows?"win":ae.linux?"linux":"key";function Q2(n,e){let t=n.split(/-(?!$)/),r=t[t.length-1];r=="Space"&&(r=" ");let i,s,o,a;for(let l=0;lr.concat(i),[]))),t}function jv(n,e,t){return Uv(Yv(n.state),e,n,t)}var ji=null,A2=4e3;function C2(n,e=$2){let t=Object.create(null),r=Object.create(null),i=(o,a)=>{let l=r[o];if(l==null)r[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,a,l,c,d)=>{var h,u;let f=t[o]||(t[o]=Object.create(null)),m=a.split(/ (?!$)/).map(x=>Q2(x,e));for(let x=1;x{let Z=ji={view:M,prefix:D,scope:o};return setTimeout(()=>{ji==Z&&(ji=null)},A2),!0}]})}let O=m.join(" ");i(O,!1);let S=f[O]||(f[O]={preventDefault:!1,stopPropagation:!1,run:((u=(h=f._any)===null||h===void 0?void 0:h.run)===null||u===void 0?void 0:u.slice())||[]});l&&S.run.push(l),c&&(S.preventDefault=!0),d&&(S.stopPropagation=!0)};for(let o of n){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let d=t[c]||(t[c]=Object.create(null));d._any||(d._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:h}=o;for(let u in d)d[u].run.push(f=>h(f,um))}let l=o[e]||o.key;if(l)for(let c of a)s(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}var um=null;function Uv(n,e,t,r){um=e;let i=pS(e),s=Ir(i,0),o=Yi(s)==i.length&&i!=" ",a="",l=!1,c=!1,d=!1;ji&&ji.view==t&&ji.scope==r&&(a=ji.prefix+" ",Dv.indexOf(e.keyCode)<0&&(c=!0,ji=null));let h=new Set,u=S=>{if(S){for(let x of S.run)if(!h.has(x)&&(h.add(x),x(t)))return S.stopPropagation&&(d=!0),!0;S.preventDefault&&(S.stopPropagation&&(d=!0),c=!0)}return!1},f=n[r],m,O;return f&&(u(f[a+od(i,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(ae.windows&&e.ctrlKey&&e.altKey)&&!(ae.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(m=wi[e.keyCode])&&m!=i?(u(f[a+od(m,e,!0)])||e.shiftKey&&(O=Eo[e.keyCode])!=i&&O!=m&&u(f[a+od(O,e,!1)]))&&(l=!0):o&&e.shiftKey&&u(f[a+od(i,e,!0)])&&(l=!0),!l&&u(f._any)&&(l=!0)),c&&(l=!0),l&&d&&e.stopPropagation(),um=null,l}var Ws=class n{constructor(e,t,r,i,s){this.className=e,this.left=t,this.top=r,this.width=i,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,r){if(r.empty){let i=e.coordsAtPos(r.head,r.assoc||1);if(!i)return[];let s=qv(e);return[new n(t,i.left-s.left,i.top-s.top,null,i.bottom-i.top)]}else return _2(e,t,r)}};function qv(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==qe.LTR?e.left:e.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:e.top-n.scrollDOM.scrollTop*n.scaleY}}function BS(n,e,t,r){let i=n.coordsAtPos(e,t*2);if(!i)return r;let s=n.dom.getBoundingClientRect(),o=(i.top+i.bottom)/2,a=n.posAtCoords({x:s.left+1,y:o}),l=n.posAtCoords({x:s.right-1,y:o});return a==null||l==null?r:{from:Math.max(r.from,Math.min(a,l)),to:Math.min(r.to,Math.max(a,l))}}function _2(n,e,t){if(t.to<=n.viewport.from||t.from>=n.viewport.to)return[];let r=Math.max(t.from,n.viewport.from),i=Math.min(t.to,n.viewport.to),s=n.textDirection==qe.LTR,o=n.contentDOM,a=o.getBoundingClientRect(),l=qv(n),c=o.querySelector(".cm-line"),d=c&&window.getComputedStyle(c),h=a.left+(d?parseInt(d.paddingLeft)+Math.min(0,parseInt(d.textIndent)):0),u=a.right-(d?parseInt(d.paddingRight):0),f=Yp(n,r,1),m=Yp(n,i,-1),O=f.type==Ht.Text?f:null,S=m.type==Ht.Text?m:null;if(O&&(n.lineWrapping||f.widgetLineBreaks)&&(O=BS(n,r,1,O)),S&&(n.lineWrapping||m.widgetLineBreaks)&&(S=BS(n,i,-1,S)),O&&S&&O.from==S.from&&O.to==S.to)return D(M(t.from,t.to,O));{let k=O?M(t.from,null,O):Z(f,!1),w=S?M(null,t.to,S):Z(m,!0),R=[];return(O||f).to<(S||m).from-(O&&S?1:0)||f.widgetLineBreaks>1&&k.bottom+n.defaultLineHeight/2q&&ve.from=B)break;Qe>we&&de(Math.max(Pe,we),k==null&&Pe<=q,Math.min(Qe,B),w==null&&Qe>=pe,G.dir)}if(we=ue.to+1,we>=B)break}return ne.length==0&&de(q,k==null,pe,w==null,n.textDirection),{top:X,bottom:W,horizontal:ne}}function Z(k,w){let R=a.top+(w?k.top:k.bottom);return{top:R,bottom:R,horizontal:[]}}}function E2(n,e){return n.constructor==e.constructor&&n.eq(e)}var fm=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(hd)!=e.state.facet(hd)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,r=e.facet(hd);for(;t!E2(t,this.drawn[r]))){let t=this.dom.firstChild,r=0;for(let i of e)i.update&&t&&i.constructor&&this.drawn[r].constructor&&i.update(t,this.drawn[r])?(t=t.nextSibling,r++):this.dom.insertBefore(i.draw(),t);for(;t;){let i=t.nextSibling;t.remove(),t=i}this.drawn=e,ae.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},hd=oe.define();function Gv(n){return[it.define(e=>new fm(e,n)),hd.of(n)]}var Fo=oe.define({combine(n){return Yn(n,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Ld(n={}){return[Fo.of(n),R2,M2,D2,wv.of(!0)]}function Hv(n){return n.startState.facet(Fo)!=n.state.facet(Fo)}var R2=Gv({above:!0,markers(n){let{state:e}=n,t=e.facet(Fo),r=[];for(let i of e.selection.ranges){let s=i==e.selection.main;if(i.empty||t.drawRangeCursor&&!(s&&ae.ios&&t.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=i.empty?i:z.cursor(i.head,i.assoc);for(let l of Ws.forRange(n,o,a))r.push(l)}}return r},update(n,e){n.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Hv(n);return t&&VS(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){VS(e.state,n)},class:"cm-cursorLayer"});function VS(n,e){e.style.animationDuration=n.facet(Fo).cursorBlinkRate+"ms"}var M2=Gv({above:!1,markers(n){let e=[],{main:t,ranges:r}=n.state.selection;for(let i of r)if(!i.empty)for(let s of Ws.forRange(n,"cm-selectionBackground",i))e.push(s);if(ae.ios&&!t.empty&&n.state.facet(Fo).iosSelectionHandles){for(let i of Ws.forRange(n,"cm-selectionHandle cm-selectionHandle-start",z.cursor(t.from,1)))e.push(i);for(let i of Ws.forRange(n,"cm-selectionHandle cm-selectionHandle-end",z.cursor(t.to,1)))e.push(i)}return e},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||Hv(n)},class:"cm-selectionLayer"}),L2=ae.gecko&&ae.gecko_version==153?"#ffffff01":"transparent",D2=pr.highest(F.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:`${L2} !important`},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Kv=ye.define({map(n,e){return n==null?null:e.mapPos(n)}}),Ga=Xe.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,r)=>r.is(Kv)?r.value:t,n)}}),Z2=it.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let t=n.state.field(Ga);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(Ga)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,e=n.state.field(Ga),t=e!=null&&n.coordsAtPos(e);if(!t)return null;let r=n.scrollDOM.getBoundingClientRect();return{left:t.left-r.left+n.scrollDOM.scrollLeft*n.scaleX,top:t.top-r.top+n.scrollDOM.scrollTop*n.scaleY,height:t.bottom-t.top}}drawCursor(n){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;n?(this.cursor.style.left=n.left/e+"px",this.cursor.style.top=n.top/t+"px",this.cursor.style.height=n.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(Ga)!=n&&this.view.dispatch({effects:Kv.of(n)})}},{eventObservers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Jv(){return[Ga,Z2]}function FS(n,e,t,r,i){e.lastIndex=0;for(let s=n.iterRange(t,r),o=t,a;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;a=e.exec(s.value);)i(o+a.index,a)}function I2(n,e){let t=n.visibleRanges;if(t.length==1&&t[0].from==n.viewport.from&&t[0].to==n.viewport.to)return t;let r=[];for(let{from:i,to:s}of t)i=Math.max(n.state.doc.lineAt(i).from,i-e),s=Math.min(n.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=i?r[r.length-1].to=s:r.push({from:i,to:s});return r}var dl=class{constructor(e){let{regexp:t,decoration:r,decorate:i,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,i)this.addMatch=(a,l,c,d)=>i(d,c,c+a[0].length,a,l);else if(typeof r=="function")this.addMatch=(a,l,c,d)=>{let h=r(a,l,c);h&&d(c,c+a[0].length,h)};else if(r)this.addMatch=(a,l,c,d)=>d(c,c+a[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new Zr,r=t.add.bind(t);for(let{from:i,to:s}of I2(e,this.maxLength))FS(e.state.doc,this.regexp,i,s,(o,a)=>this.addMatch(a,e,o,r));return t.finish()}updateDeco(e,t){let r=1e9,i=-1;return e.docChanged&&e.changes.iterChanges((s,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(r=Math.min(a,r),i=Math.max(l,i))}),e.viewportMoved||i-r>1e3?this.createDeco(e.view):i>-1?this.updateRange(e.view,t.map(e.changes),r,i):t}updateRange(e,t,r,i){for(let s of e.visibleRanges){let o=Math.max(s.from,r),a=Math.min(s.to,i);if(a>=o){let l=e.state.doc.lineAt(o),c=l.tol.from;o--)if(this.boundary.test(l.text[o-1-l.from])){d=o;break}for(;au.push(x.range(O,S));if(l==c)for(this.regexp.lastIndex=d-l.from;(f=this.regexp.exec(l.text))&&f.indexthis.addMatch(S,e,O,m));t=t.update({filterFrom:d,filterTo:h,filter:(O,S)=>Oh,add:u})}}return t}},pm=/x/.unicode!=null?"gu":"g",X2=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,pm),z2={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},Pp=null;function W2(){var n;if(Pp==null&&typeof document!="undefined"&&document.body){let e=document.body.style;Pp=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Pp||!1}var ud=oe.define({combine(n){let e=Yn(n,{render:null,specialChars:X2,addSpecialChars:null});return(e.replaceTabs=!W2())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,pm)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,pm)),e}});function ew(n={}){return[ud.of(n),N2()]}var YS=null;function N2(){return YS||(YS=it.fromClass(class{constructor(n){this.view=n,this.decorations=K.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(ud)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new dl({regexp:n.specialChars,decoration:(e,t,r)=>{let{doc:i}=t.state,s=Ir(e[0],0);if(s==9){let o=i.lineAt(r),a=t.state.tabSize,l=Gt(o.text,a,r-o.from);return K.replace({widget:new gm((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=K.replace({widget:new mm(n,s)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(ud);n.startState.facet(ud)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}var B2="\u2022";function V2(n){return n>=32?B2:n==10?"\u2424":String.fromCharCode(9216+n)}var mm=class extends Ct{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=V2(this.code),r=e.state.phrase("Control character")+" "+(z2[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,r,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},gm=class extends Ct{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Dd(){return Y2}var F2=K.line({class:"cm-activeLine"}),Y2=it.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let r of n.state.selection.ranges){let i=n.lineBlockAt(r.head);i.from>e&&(t.push(F2.range(i.from)),e=i.from)}return K.set(t)}},{decorations:n=>n.decorations});var Om=2e3;function j2(n,e,t){let r=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Om||t.off>Om||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=i;l++){let c=n.doc.line(l);c.length<=a&&s.push(z.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=r;l<=i;l++){let c=n.doc.line(l),d=Kc(c.text,o,n.tabSize,!0);if(d<0)s.push(z.cursor(c.to));else{let h=Kc(c.text,a,n.tabSize);s.push(z.range(c.from+d,c.from+h))}}}return s}function U2(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function jS(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),r=n.state.doc.lineAt(t),i=t-r.from,s=i>Om?-1:i==r.length?U2(n,e.clientX):Gt(r.text,n.state.tabSize,t-r.from);return{line:r.number,col:s,off:i}}function q2(n,e){let t=jS(n,e),r=n.state.selection;return t?{update(i){if(i.docChanged){let s=i.changes.mapPos(i.startState.doc.line(t.line).from),o=i.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},r=r.map(i.changes)}},get(i,s,o){let a=jS(n,i);if(!a)return r;let l=j2(n.state,t,a);return l.length?o?z.create(l.concat(r.ranges)):z.create(l):r}}:null}function Zd(n){let e=(n==null?void 0:n.eventFilter)||(t=>t.altKey&&t.button==0);return F.mouseSelectionStyle.of((t,r)=>e(r)?q2(t,r):null)}var G2={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},H2={style:"cursor: crosshair"};function Id(n={}){let[e,t]=G2[n.key||"Alt"],r=it.fromClass(class{constructor(i){this.view=i,this.isDown=!1}set(i){this.isDown!=i&&(this.isDown=i,this.view.update([]))}},{eventObservers:{keydown(i){this.set(i.keyCode==e||t(i))},keyup(i){(i.keyCode==e||!t(i))&&this.set(!1)},mousemove(i){this.set(t(i))}}});return[r,F.contentAttributes.of(i=>{var s;return!((s=i.plugin(r))===null||s===void 0)&&s.isDown?H2:null})]}var ad="-10000px",Qd=class{constructor(e,t,r,i){this.facet=t,this.createTooltipView=r,this.removeTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,t){var r;let i=e.state.facet(this.facet),s=i.filter(l=>l);if(i===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;lt[c]=l),t.length=a.length),this.input=i,this.tooltips=s,this.tooltipViews=o,!0}};function K2(n){let e=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var kp=oe.define({combine:n=>{var e,t,r;return{position:ae.ios?"absolute":((e=n.find(i=>i.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(i=>i.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((r=n.find(i=>i.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||K2}}}),US=new WeakMap,tw=it.fromClass(class{constructor(n){this.view=n,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(kp);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Qd(n,_m,(t,r)=>this.createTooltip(t,r),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n,this.above);e&&this.observeIntersection();let t=e||n.geometryChanged,r=n.state.facet(kp);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let i of this.manager.tooltipViews)i.dom.style.position=this.position;t=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let i of this.manager.tooltipViews)this.container.appendChild(i.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n,e){let t=n.create(this.view),r=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),n.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let i=document.createElement("div");i.className="cm-tooltip-arrow",t.dom.appendChild(i)}return t.dom.style.position=this.position,t.dom.style.top=ad,t.dom.style.left="0px",this.container.insertBefore(t.dom,r),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var n,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(n=r.destroy)===null||n===void 0||n.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(ae.safari){let o=s.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(n=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:n,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),i=Am(this.view);return{visible:{left:r.left+i.left,top:r.top+i.top,right:r.right-i.right,bottom:r.bottom-i.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(kp).tooltipSpace(this.view),scaleX:n,scaleY:e,makeAbsolute:t}}writeMeasure(n){var e;if(n.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:r,scaleX:i,scaleY:s}=n,o=[];for(let a=0;a=Math.min(t.bottom,r.bottom)||h.rightMath.min(t.right,r.right)+.1)){d.style.top=ad;continue}let f=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,m=f?7:0,O=u.right-u.left,S=(e=US.get(c))!==null&&e!==void 0?e:u.bottom-u.top,x=c.offset||eE,D=this.view.textDirection==qe.LTR,M=u.width>r.right-r.left?D?r.left:r.right-u.width:D?Math.max(r.left,Math.min(h.left-(f?14:0)+x.x,r.right-O)):Math.min(Math.max(r.left,h.left-O+(f?14:0)-x.x),r.right-O),Z=this.above[a];!l.strictSide&&(Z?h.top-S-m-x.yr.bottom)&&Z==r.bottom-h.bottom>h.top-r.top&&(Z=this.above[a]=!Z);let k=(Z?h.top-r.top:r.bottom-h.bottom)-m;if(kM&&X.topw&&(w=Z?X.top-S-2-m:X.bottom+m+2);if(this.position=="absolute"?(d.style.top=(w-n.parent.top)/s+"px",qS(d,(M-n.parent.left)/i)):(d.style.top=w/s+"px",qS(d,M/i)),f){let X=h.left+(D?x.x:-x.x)-(M+14-7);f.style.left=X/i+"px"}c.overlap!==!0&&o.push({left:M,top:w,right:R,bottom:w+S}),d.classList.toggle("cm-tooltip-above",Z),d.classList.toggle("cm-tooltip-below",!Z),c.positioned&&c.positioned(n.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=ad}},{eventObservers:{scroll(){this.maybeMeasure()}}});function qS(n,e){let t=parseInt(n.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(n.style.left=e+"px")}var J2=F.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),eE={x:0,y:0},_m=oe.define({enables:[tw,J2]}),Td=oe.define({combine:n=>n.reduce((e,t)=>e.concat(t),[])}),Ad=class n{static create(e){return new n(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Qd(e,Td,(t,r)=>this.createHostedView(t,r),t=>t.dom.remove())}createHostedView(e,t){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let r of this.manager.tooltipViews){let i=r[e];if(i!==void 0){if(t===void 0)t=i;else if(t!==i)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},tE=_m.compute([Td],n=>{let e=n.facet(Td);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var r;return(r=t.end)!==null&&r!==void 0?r:t.pos})),create:Ad.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),nE=oe.define(),bm=class{constructor(e,t,r,i,s,o){this.view=e,this.source=t,this.field=r,this.locked=i,this.setHover=s,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(e){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eo.bottom||t.xo.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(i)).find(c=>c.from<=i&&c.to>=i),l=a&&a.dir==qe.RTL?-1:1;s=t.x{if(a&&!(Array.isArray(a)&&!a.length)){let l=Array.isArray(a)?a:[a];i&&this.locked.set(l,i),e.dispatch({effects:this.setHover.of(l)})}};if(s&&"then"in s){let a=this.pending={pos:t};s.then(l=>{this.pending==a&&(this.pending=null,o(l))},l=>jn(e.state,l,"hover tooltip"))}else o(s)}get tooltip(){let e=this.view.plugin(tw),t=e?e.manager.tooltips.findIndex(r=>r.create==Ad.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:i,tooltip:s}=this;if(i.length&&!this.locked.has(i)&&s&&!rE(s.dom,e)||this.pending){let{pos:o}=i[0]||this.pending,a=(r=(t=i[0])===null||t===void 0?void 0:t.end)!==null&&r!==void 0?r:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!iE(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length&&!this.locked.has(t)){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=r=>{e.removeEventListener("mouseleave",t);let{active:i}=this;i.length&&!this.locked.has(i)&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},ld=4;function rE(n,e){let{left:t,right:r,top:i,bottom:s}=n.getBoundingClientRect(),o;if(o=n.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();i=Math.min(a.top,i),s=Math.max(a.bottom,s)}return e.clientX>=t-ld&&e.clientX<=r+ld&&e.clientY>=i-ld&&e.clientY<=s+ld}function iE(n,e,t,r,i,s){let o=n.scrollDOM.getBoundingClientRect(),a=n.documentTop+n.documentPadding.top+n.contentHeight;if(o.left>r||o.righti||Math.min(o.bottom,a)=e&&l<=t}function nw(n,e={}){let t=ye.define(),r=new WeakMap,i=Xe.define({create(){return[]},update(o,a){let l=r.get(o);if(o.length&&(e.hideOnChange&&(a.docChanged||a.selection)?o=[]:l&&l(a)?o=[]:e.hideOn&&(o=o.filter(c=>!e.hideOn(a,c)))),a.docChanged&&o.length){let c=[];for(let d of o){let h=a.changes.mapPos(d.pos,-1,Xt.TrackDel);if(h!=null){let u=Object.assign(Object.create(null),d);u.pos=h,u.end!=null&&(u.end=a.changes.mapPos(u.end)),c.push(u)}}o=c}for(let c of a.effects)c.is(t)&&(o=c.value,l=void 0),(c.is(sE)&&!c.value||c.value==i)&&(o=[]);return o.length&&l&&r.set(o,l),o},provide:o=>Td.from(o)}),s=it.define(o=>new bm(o,n,i,r,t,e.hoverTime||300));return{active:i,extension:[i,s,nE.of(s),tE]}}var sE=ye.define();var GS=oe.define({combine(n){let e,t;for(let r of n)e=e||r.topContainer,t=t||r.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Em(n,e){let t=n.plugin(rw),r=t?t.specs.indexOf(e):-1;return r>-1?t.panels[r]:null}var rw=it.fromClass(class{constructor(n){this.input=n.state.facet(hl),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(GS);this.top=new Do(n,!0,e.topContainer),this.bottom=new Do(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(GS);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Do(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Do(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(hl);if(t!=this.input){let r=t.filter(l=>l),i=[],s=[],o=[],a=[];for(let l of r){let c=this.specs.indexOf(l),d;c<0?(d=l(n.view),a.push(d)):(d=this.panels[c],d.update&&d.update(n)),i.push(d),(d.top?s:o).push(d)}this.specs=r,this.panels=i,this.top.sync(s),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let r of this.panels)r.update&&r.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>F.scrollMargins.of(e=>{let t=e.plugin(n);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})}),Do=class{constructor(e,t,r){this.view=e,this.top=t,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=HS(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=HS(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function HS(n){let e=n.nextSibling;return n.remove(),e}var hl=oe.define({enables:rw});function iw(n,e){let t,r=new Promise(o=>t=o),i=o=>oE(o,e,t);n.state.field($p,!1)?n.dispatch({effects:sw.of(i)}):n.dispatch({effects:ye.appendConfig.of($p.init(()=>[i]))});let s=ow.of(i);return{close:s,result:r.then(o=>((n.win.queueMicrotask||(l=>n.win.setTimeout(l,10)))(()=>{n.state.field($p).indexOf(i)>-1&&n.dispatch({effects:s})}),o))}}var $p=Xe.define({create(){return[]},update(n,e){for(let t of e.effects)t.is(sw)?n=[t.value].concat(n):t.is(ow)&&(n=n.filter(r=>r!=t.value));return n},provide:n=>hl.computeN([n],e=>e.field(n))}),sw=ye.define(),ow=ye.define();function oE(n,e,t){let r=e.content?e.content(n,()=>o(null)):null;if(!r){if(r=kt("form"),e.input){let a=kt("input",e.input);/^(text|password|number|email|tel|url)$/.test(a.type)&&a.classList.add("cm-textfield"),a.name||(a.name="input"),r.appendChild(kt("label",(e.label||"")+": ",a))}else r.appendChild(document.createTextNode(e.label||""));r.appendChild(document.createTextNode(" ")),r.appendChild(kt("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let i=r.nodeName=="FORM"?[r]:r.querySelectorAll("form");for(let a=0;a{c.keyCode==27?(c.preventDefault(),o(null)):c.keyCode==13&&(c.preventDefault(),o(l))}),l.addEventListener("submit",c=>{c.preventDefault(),o(l)})}let s=kt("div",r,kt("button",{onclick:()=>o(null),"aria-label":n.state.phrase("close"),class:"cm-dialog-close",type:"button"},["\xD7"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(a){s.contains(s.ownerDocument.activeElement)&&n.focus(),t(a)}return{dom:s,top:e.top,mount:()=>{if(e.focus){let a;typeof e.focus=="string"?a=r.querySelector(e.focus):a=r.querySelector("input")||r.querySelector("button"),a&&"select"in a?a.select():a&&"focus"in a&&a.focus()}}}}var $t=class extends fr{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};$t.prototype.elementClass="";$t.prototype.toDOM=void 0;$t.prototype.mapMode=Xt.TrackBefore;$t.prototype.startSide=$t.prototype.endSide=-1;$t.prototype.point=!0;var fd=oe.define(),aE=oe.define(),lE={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>$e.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},il=oe.define();function Hi(n){return[aw(),il.of(Ue(Ue({},lE),n))]}var ym=oe.define({combine:n=>n.some(e=>e)});function aw(n){let e=[cE];return n&&n.fixed===!1&&e.push(ym.of(!0)),e}var cE=it.fromClass(class{constructor(n){this.view=n,this.domAfter=null,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=n.state.facet(il).map(e=>new Cd(n,e)),this.fixed=!n.state.facet(ym);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(n){if(this.updateGutters(n)){let e=this.prevViewport,t=n.view.viewport,r=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(r<(t.to-t.from)*.8)}if(n.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(ym)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=$e.iter(this.view.state.facet(fd),this.view.viewport.from),r=[],i=this.gutters.map(s=>new vm(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let a of s.type)if(a.type==Ht.Text&&o){Sm(t,r,a.from);for(let l of i)l.line(this.view,a,r);o=!1}else if(a.widget)for(let l of i)l.widget(this.view,a)}else if(s.type==Ht.Text){Sm(t,r,s.from);for(let o of i)o.line(this.view,s,r)}else if(s.widget)for(let o of i)o.widget(this.view,s);for(let s of i)s.finish();n&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(n){let e=n.startState.facet(il),t=n.state.facet(il),r=n.docChanged||n.heightChanged||n.viewportChanged||!$e.eq(n.startState.facet(fd),n.state.facet(fd),n.view.viewport.from,n.view.viewport.to);if(e==t)for(let i of this.gutters)i.update(n)&&(r=!0);else{r=!0;let i=[];for(let s of t){let o=e.indexOf(s);o<0?i.push(new Cd(this.view,s)):(this.gutters[o].update(n),i.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),i.indexOf(s)<0&&s.destroy();for(let s of i)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=i}return r}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:n=>F.scrollMargins.of(e=>{let t=e.plugin(n);if(!t||t.gutters.length==0||!t.fixed)return null;let r=t.dom.offsetWidth*e.scaleX,i=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==qe.LTR?{left:r,right:i}:{right:r,left:i}})});function KS(n){return Array.isArray(n)?n:[n]}function Sm(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}var vm=class{constructor(e,t,r){this.gutter=e,this.height=r,this.i=0,this.cursor=$e.iter(e.markers,t.from)}addElement(e,t,r){let{gutter:i}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==i.elements.length){let a=new _d(e,o,s,r);i.elements.push(a),i.dom.appendChild(a.dom)}else i.elements[this.i].update(e,o,s,r);this.height=t.bottom,this.i++}line(e,t,r){let i=[];Sm(this.cursor,i,t.from),r.length&&(i=i.concat(r));let s=this.gutter.config.lineMarker(e,t,i);s&&i.unshift(s);let o=this.gutter;i.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,i)}widget(e,t){let r=this.gutter.config.widgetMarker(e,t.widget,t),i=r?[r]:null;for(let s of e.state.facet(aE)){let o=s(e,t.widget,t);o&&(i||(i=[])).push(o)}i&&this.addElement(e,t,i)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},Cd=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in t.domEventHandlers)this.dom.addEventListener(r,i=>{let s=i.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let l=s.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=i.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[r](e,a,i)&&i.preventDefault()});this.markers=KS(t.markers(e)),t.initialSpacer&&(this.spacer=new _d(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=KS(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let i=this.config.updateSpacer(this.spacer.markers[0],e);i!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[i])}let r=e.view.viewport;return!$e.eq(this.markers,t,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},_d=class{constructor(e,t,r,i){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,r,i)}update(e,t,r,i){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),dE(this.markers,i)||this.setMarkers(e,i)}setMarkers(e,t){let r="cm-gutterElement",i=this.dom.firstChild;for(let s=0,o=0;;){let a=o,l=ss(a,l,c)||o(a,l,c):o}return r}})}}),sl=class extends $t{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function Qp(n,e){return n.state.facet(Zo).formatNumber(e,n.state)}var fE=il.compute([Zo],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(hE)},lineMarker(e,t,r){return r.some(i=>i.toDOM)?null:new sl(Qp(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,r)=>{for(let i of e.state.facet(uE)){let s=i(e,t,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Zo)!=e.state.facet(Zo),initialSpacer(e){return new sl(Qp(e,JS(e.state.doc.lines)))},updateSpacer(e,t){let r=Qp(t.view,JS(t.view.state.doc.lines));return r==e.number?e:new sl(r)},domEventHandlers:n.facet(Zo).domEventHandlers,side:"before"}));function Xd(n={}){return[Zo.of(n),aw(),fE]}function JS(n){let e=9;for(;e{let e=[],t=-1;for(let r of n.selection.ranges){let i=n.doc.lineAt(r.head).from;i>t&&(t=i,e.push(pE.range(i)))}return $e.of(e)});function lw(){return mE}function cw(n){return it.define(e=>({decorations:n.createDeco(e),update(t){this.decorations=n.updateDeco(t,this.decorations)}}),{decorations:e=>e.decorations})}var gE=K.mark({class:"cm-highlightTab"}),OE=K.mark({class:"cm-highlightSpace"}),bE=cw(new dl({regexp:/\t| /g,decoration:n=>n[0]==" "?gE:OE,boundary:/\S/}));function dw(){return bE}var yE=cw(new dl({regexp:/\s+$/g,decoration:K.mark({class:"cm-trailingSpace"})}));function hw(){return yE}var SE=0,Cn=class{constructor(e,t){this.from=e,this.to=t}},xe=class{constructor(e={}){this.id=SE++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=St.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};xe.closedBy=new xe({deserialize:n=>n.split(" ")});xe.openedBy=new xe({deserialize:n=>n.split(" ")});xe.group=new xe({deserialize:n=>n.split(" ")});xe.isolate=new xe({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});xe.contextHash=new xe({perNode:!0});xe.lookAhead=new xe({perNode:!0});xe.mounted=new xe({perNode:!0});var Ki=class{constructor(e,t,r,i=!1){this.tree=e,this.overlay=t,this.parser=r,this.bracketed=i}static get(e){return e&&e.props&&e.props[xe.mounted.id]}},vE=Object.create(null),St=class n{constructor(e,t,r,i=0){this.name=e,this.props=t,this.id=r,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):vE,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new n(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(xe.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let i of r.split(" "))t[i]=e[r];return r=>{for(let i=r.prop(xe.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?r.name:i[s]];if(o)return o}}}};St.none=new St("",Object.create(null),0,8);var $i=class n{constructor(e){this.types=e;for(let t=0;t0;for(let l=this.cursor(o|We.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=i&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Bm(St.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,i)=>new n(this.type,t,r,i,this.propValues),e.makeTree||((t,r,i)=>new n(St.none,t,r,i)))}static build(e){return xE(e)}};Ee.empty=new Ee(St.none,[],[],0);var Rm=class n{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new n(this.buffer,this.index)}},Ji=class n{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return St.none}toString(){let e=[];for(let t=0;t0));l=o[l+3]);return a}slice(e,t,r){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a=e&&te;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function fl(n,e,t,r){for(var i;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to0?a.length:-1;e!=c;e+=t){let d=a[e],h=l[e]+o.from,u;if(!(!(s&We.EnterBracketed&&d instanceof Ee&&(u=Ki.get(d))&&!u.overlay&&u.bracketed&&r>=h&&r<=h+d.length)&&!yw(i,r,h,h+d.length))){if(d instanceof Ji){if(s&We.ExcludeBuffers)continue;let f=d.findChild(0,d.buffer.length,t,r-h,i);if(f>-1)return new Fs(new Lm(o,d,e,h),null,f)}else if(s&We.IncludeAnonymous||!d.type.isAnonymous||Nm(d)){let f;if(!(s&We.IgnoreMounts)&&(f=Ki.get(d))&&!f.overlay)return new n(f.tree,h,e,o);let m=new n(d,h,e,o);return s&We.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(t<0?d.children.length-1:0,t,r,i,s)}}}if(s&We.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,r=0){let i;if(!(r&We.IgnoreOverlays)&&(i=Ki.get(this._tree))&&i.overlay){let s=e-this.from,o=r&We.EnterBracketed&&i.bracketed;for(let{from:a,to:l}of i.overlay)if((t>0||o?a<=s:a=s:l>s))return new n(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function fw(n,e,t,r){let i=n.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=i.type.is(t),!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function Mm(n,e,t=e.length-1){for(let r=n;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var Lm=class{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i}},Fs=class n extends Nd{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){super(),this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new n(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,r=0){if(r&We.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new n(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new n(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new n(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let o=r.buffer[this.index+1];e.push(r.slice(i,s,o)),t.push(0)}return new Ee(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Sw(n){if(!n.length)return null;let e=0,t=n[0];for(let s=1;st.from||o.to=e){let a=new _n(o.tree,o.overlay[0].from+s.from,-1,s);(i||(i=[r])).push(fl(a,e,t,!1))}}return i?Sw(i):r}var Yo=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~We.EnterBracketed,e instanceof _n)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=r+i.buffer[e+1],this.to=r+i.buffer[e+2],!0}yield(e){return e?e instanceof _n?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&We.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&We.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&We.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:i}=this;if(i){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&We.IncludeAnonymous||a instanceof Ji||!a.type.isAnonymous||Nm(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,r=s+1;break e}i=this.stack[--s]}for(let i=r;i=0;s--){if(s<0)return Mm(this._tree,e,i);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function Nm(n){return n.children.some(e=>e instanceof Ji||!e.type.isAnonymous||Nm(e))}function xE(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=r.types.length}=n,a=Array.isArray(t)?new Rm(t,t.length):t,l=r.types,c=0,d=0;function h(k,w,R,X,W,ne){let{id:de,start:q,end:pe,size:ve}=a,we=d,B=c;if(ve<0)if(a.next(),ve==-1){let Ge=s[de];R.push(Ge),X.push(q-k);return}else if(ve==-3){c=de;return}else if(ve==-4){d=de;return}else throw new RangeError(`Unrecognized record size: ${ve}`);let ue=l[de],G,Pe,Qe=q-k;if(pe-q<=i&&(Pe=S(a.pos-w,W))){let Ge=new Uint16Array(Pe.size-Pe.skip),He=a.pos-Pe.size,Ot=Ge.length;for(;a.pos>He;)Ot=x(Pe.start,Ge,Ot);G=new Ji(Ge,pe-Pe.start,r),Qe=Pe.start-k}else{let Ge=a.pos-ve;a.next();let He=[],Ot=[],me=de>=o?de:-1,nn=0,ir=pe;for(;a.pos>Ge;)me>=0&&a.id==me&&a.size>=0?(a.end<=ir-i&&(m(He,Ot,q,nn,a.end,ir,me,we,B),nn=He.length,ir=a.end),a.next()):ne>2500?u(q,Ge,He,Ot):h(q,Ge,He,Ot,me,ne+1);if(me>=0&&nn>0&&nn-1&&nn>0){let sr=f(ue,B);G=Bm(ue,He,Ot,0,He.length,0,pe-q,sr,sr)}else G=O(ue,He,Ot,pe-q,we-pe,B)}R.push(G),X.push(Qe)}function u(k,w,R,X){let W=[],ne=0,de=-1;for(;a.pos>w;){let{id:q,start:pe,end:ve,size:we}=a;if(we>4)a.next();else{if(de>-1&&pe=0;ve-=3)q[we++]=W[ve],q[we++]=W[ve+1]-pe,q[we++]=W[ve+2]-pe,q[we++]=we;R.push(new Ji(q,W[2]-pe,r)),X.push(pe-k)}}function f(k,w){return(R,X,W)=>{let ne=0,de=R.length-1,q,pe;if(de>=0&&(q=R[de])instanceof Ee){if(!de&&q.type==k&&q.length==W)return q;(pe=q.prop(xe.lookAhead))&&(ne=X[de]+q.length+pe)}return O(k,R,X,W,ne,w)}}function m(k,w,R,X,W,ne,de,q,pe){let ve=[],we=[];for(;k.length>X;)ve.push(k.pop()),we.push(w.pop()+R-W);k.push(O(r.types[de],ve,we,ne-W,q-ne,pe)),w.push(W-R)}function O(k,w,R,X,W,ne,de){if(ne){let q=[xe.contextHash,ne];de=de?[q].concat(de):[q]}if(W>25){let q=[xe.lookAhead,W];de=de?[q].concat(de):[q]}return new Ee(k,w,R,X,de)}function S(k,w){let R=a.fork(),X=0,W=0,ne=0,de=R.end-i,q={size:0,start:0,skip:0};e:for(let pe=R.pos-k;R.pos>pe;){let ve=R.size;if(R.id==w&&ve>=0){q.size=X,q.start=W,q.skip=ne,ne+=4,X+=4,R.next();continue}let we=R.pos-ve;if(ve<0||we=o?4:0,ue=R.start;for(R.next();R.pos>we;){if(R.size<0)if(R.size==-3||R.size==-4)B+=4;else break e;else R.id>=o&&(B+=4);R.next()}W=ue,X+=ve,ne+=B}return(w<0||X==k)&&(q.size=X,q.start=W,q.skip=ne),q.size>4?q:void 0}function x(k,w,R){let{id:X,start:W,end:ne,size:de}=a;if(a.next(),de>=0&&X4){let pe=a.pos-(de-4);for(;a.pos>pe;)R=x(k,w,R)}w[--R]=q,w[--R]=ne-k,w[--R]=W-k,w[--R]=X}else de==-3?c=X:de==-4&&(d=X);return R}let D=[],M=[];for(;a.pos>0;)h(n.start||0,n.bufferStart||0,D,M,-1,0);let Z=(e=n.length)!==null&&e!==void 0?e:D.length?M[0]+D[0].length:0;return new Ee(l[n.topID],D.reverse(),M.reverse(),Z)}var pw=new WeakMap;function Wd(n,e){if(!n.isAnonymous||e instanceof Ji||e.type!=n)return 1;let t=pw.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof Ee)){t=1;break}t+=Wd(n,r)}pw.set(e,t)}return t}function Bm(n,e,t,r,i,s,o,a,l){let c=0;for(let m=r;m=d)break;w+=R}if(M==Z+1){if(w>d){let R=m[Z];f(R.children,R.positions,0,R.children.length,O[Z]+D);continue}h.push(m[Z])}else{let R=O[M-1]+m[M-1].length-k;h.push(Bm(n,m,O,Z,M,k,R,null,l))}u.push(k+D-s)}}return f(e,t,r,i,0),(a||l)(h,u,o)}var jo=class{constructor(){this.map=new WeakMap}setBuffer(e,t,r){let i=this.map.get(e);i||this.map.set(e,i=new Map),i.set(t,r)}getBuffer(e,t){let r=this.map.get(e);return r&&r.get(t)}set(e,t){e instanceof Fs?this.setBuffer(e.context.buffer,e.index,t):e instanceof _n&&this.map.set(e.tree,t)}get(e){return e instanceof Fs?this.getBuffer(e.context.buffer,e.index):e instanceof _n?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},Qi=class n{constructor(e,t,r,i,s=!1,o=!1){this.from=e,this.to=t,this.tree=r,this.offset=i,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],r=!1){let i=[new n(0,e.length,e,0,!1,r)];for(let s of t)s.to>e.length&&i.push(s);return i}static applyChanges(e,t,r=128){if(!t.length)return e;let i=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let d=a=r)for(;o&&o.from=u.from||h<=u.to||c){let f=Math.max(u.from,l)-c,m=Math.min(u.to,h)-c;u=f>=m?null:new n(f,m,u.tree,u.offset+c,a>0,!!d)}if(u&&i.push(u),o.to>h)break;o=snew Cn(i.from,i.to)):[new Cn(0,0)]:[new Cn(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let i=this.startParse(e,t,r);for(;;){let s=i.advance();if(s)return s}}},Zm=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function Fd(n){return(e,t,r,i)=>new zm(e,n,t,r,i)}var Bd=class{constructor(e,t,r,i,s,o){this.parser=e,this.parse=t,this.overlay=r,this.bracketed=i,this.target=s,this.from=o}};function mw(n){if(!n.length||n.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(n))}var Im=class{constructor(e,t,r,i,s,o,a,l){this.parser=e,this.predicate=t,this.mounts=r,this.index=i,this.start=s,this.bracketed=o,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}},Xm=new xe({perNode:!0}),zm=class{constructor(e,t,r,i,s){this.nest=t,this.input=r,this.fragments=i,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let r=this.baseParse.advance();if(!r)return null;if(this.baseParse=null,this.baseTree=r,this.startInner(),this.stoppedAt!=null)for(let i of this.inner)i.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let r=this.baseTree;return this.stoppedAt!=null&&(r=new Ee(r.type,r.children,r.positions,r.length,r.propValues.concat([[Xm,this.stoppedAt]]))),r}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let r=Object.assign(Object.create(null),e.target.props);r[xe.mounted.id]=new Ki(t,e.overlay,e.parser,e.bracketed),e.target.props=r}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)a=!1;else if(e.hasNode(i)){if(t){let c=t.mounts.find(d=>d.frag.from<=i.from&&d.frag.to>=i.to&&d.mount.overlay);if(c)for(let d of c.mount.overlay){let h=d.from+c.pos,u=d.to+c.pos;h>=i.from&&u<=i.to&&!t.ranges.some(f=>f.fromh)&&t.ranges.push({from:h,to:u})}}a=!1}else if(r&&(o=PE(r.ranges,i.from,i.to)))a=o!=2;else if(!i.type.isAnonymous&&(s=this.nest(i,this.input))&&(i.fromnew Cn(h.from-i.from,h.to-i.from)):null,!!s.bracketed,i.tree,d.length?d[0].from:i.from)),s.overlay?d.length&&(r={ranges:d,depth:0,prev:r}):a=!1}}else if(t&&(l=t.predicate(i))&&(l===!0&&(l=new Cn(i.from,i.to)),l.from=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&i.firstChild())t&&t.depth++,r&&r.depth++;else for(;!i.nextSibling();){if(!i.parent())break e;if(t&&!--t.depth){let c=Ow(this.ranges,t.ranges);c.length&&(mw(c),this.inner.splice(t.index,0,new Bd(t.parser,t.parser.startParse(this.input,bw(t.mounts,c),c),t.ranges.map(d=>new Cn(d.from-t.start,d.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}r&&!--r.depth&&(r=r.prev)}}}};function PE(n,e,t){for(let r of n){if(r.from>=t)break;if(r.to>e)return r.from<=e&&r.to>=t?2:1}return 0}function gw(n,e,t,r,i,s){if(e=e&&t.enter(r,1,We.IgnoreOverlays|We.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof Ee)t=t.children[0];else break}return!1}},Wm=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let r=this.curFrag=e[0];this.curTo=(t=r.tree.prop(Xm))!==null&&t!==void 0?t:r.to,this.inner=new Vd(r.tree,-r.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Xm))!==null&&e!==void 0?e:t.to,this.inner=new Vd(t.tree,-t.offset)}}findMounts(e,t){var r;let i=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(r=s.tree)===null||r===void 0?void 0:r.prop(xe.mounted);if(o&&o.parser==t)for(let a=this.fragI;a=s.to)break;l.tree==this.curFrag.tree&&i.push({frag:l,pos:s.from-l.offset,mount:o})}}}return i}};function Ow(n,e){let t=null,r=e;for(let i=1,s=0;i=a)break;l.to<=o||(t||(r=t=e.slice()),l.froma&&t.splice(s+1,0,new Cn(a,l.to))):l.to>a?t[s--]=new Cn(a,l.to):t.splice(s--,1))}}return r}function $E(n,e,t,r){let i=0,s=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let d=i==n.length?1e9:o?n[i].to:n[i].from,h=s==e.length?1e9:a?e[s].to:e[s].from;if(o!=a){let u=Math.max(l,t),f=Math.min(d,h,r);unew Cn(u.from+r,u.to+r)),h=$E(e,d,l,c);for(let u=0,f=l;;u++){let m=u==h.length,O=m?c:h[u].from;if(O>f&&t.push(new Qi(f,O,i.tree,-o,s.from>=f||s.openStart,s.to<=O||s.openEnd)),m)break;f=h[u].to}}else t.push(new Qi(l,c,i.tree,-o,s.from>=o||s.openStart,s.to<=a||s.openEnd))}return t}var QE=0,qn=class n{constructor(e,t,r,i){this.name=e,this.set=t,this.base=r,this.modified=i,this.id=QE++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let r=typeof e=="string"?e:"?";if(e instanceof n&&(t=e),t!=null&&t.base)throw new Error("Can not derive from a modified tag");let i=new n(r,[],null,[]);if(i.set.push(i),t)for(let s of t.set)i.set.push(s);return i}static defineModifier(e){let t=new qd(e);return r=>r.modified.indexOf(t)>-1?r:qd.get(r.base||r,r.modified.concat(t).sort((i,s)=>i.id-s.id))}},TE=0,qd=class n{constructor(e){this.name=e,this.instances=[],this.id=TE++}static get(e,t){if(!t.length)return e;let r=t[0].instances.find(a=>a.base==e&&AE(t,a.modified));if(r)return r;let i=[],s=new qn(e.name,i,e,t);for(let a of t)a.instances.push(s);let o=CE(t);for(let a of e.set)if(!a.modified.length)for(let l of o)i.push(n.get(a,l));return s}};function AE(n,e){return n.length==e.length&&n.every((t,r)=>t==e[r])}function CE(n){let e=[[]];for(let t=0;tr.length-t.length)}function Kt(n){let e=Object.create(null);for(let t in n){let r=n[t];Array.isArray(r)||(r=[r]);for(let i of t.split(" "))if(i){let s=[],o=2,a=i;for(let h=0;;){if(a=="..."&&h>0&&h+3==i.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!u)throw new RangeError("Invalid path: "+i);if(s.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),h+=u[0].length,h==i.length)break;let f=i[h++];if(h==i.length&&f=="!"){o=0;break}if(f!="/")throw new RangeError("Invalid path: "+i);a=i.slice(h)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+i);let d=new js(r,o,l>0?s.slice(0,l):null);e[c]=d.sort(e[c])}}return xw.add(e)}var xw=new xe({combine(n,e){let t,r,i;for(;n||e;){if(!n||e&&n.depth>=e.depth?(i=e,e=e.next):(i=n,n=n.next),t&&t.mode==i.mode&&!i.context&&!t.context)continue;let s=new js(i.tags,i.mode,i.context);t?t.next=s:r=s,t=s}return r}}),js=class{constructor(e,t,r,i){this.tags=e,this.mode=t,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=i;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:r}}function _E(n,e){let t=null;for(let r of n){let i=r.style(e);i&&(t=t?t+" "+i:i)}return t}function Pw(n,e,t,r=0,i=n.length){let s=new Fm(r,Array.isArray(e)?e:[e],t);s.highlightRange(n.cursor(),r,i,"",s.highlighters),s.flush(i)}var Fm=class{constructor(e,t,r){this.at=e,this.highlighters=t,this.span=r,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,r,i,s){let{type:o,from:a,to:l}=e;if(a>=r||l<=t)return;o.isTop&&(s=this.highlighters.filter(f=>!f.scope||f.scope(o)));let c=i,d=Um(e)||js.empty,h=_E(s,d.tags);if(h&&(c&&(c+=" "),c+=h,d.mode==1&&(i+=(i?" ":"")+h)),this.startSpan(Math.max(t,a),c),d.opaque)return;let u=e.tree&&e.tree.prop(xe.mounted);if(u&&u.overlay){let f=e.node.enter(u.overlay[0].from+a,1),m=this.highlighters.filter(S=>!S.scope||S.scope(u.tree.type)),O=e.firstChild();for(let S=0,x=a;;S++){let D=S=M||!e.nextSibling())););if(!D||M>r)break;x=D.to+a,x>t&&(this.highlightRange(f.cursor(),Math.max(t,D.from+a),Math.min(r,x),"",m),this.startSpan(Math.min(r,x),c))}O&&e.parent()}else if(e.firstChild()){u&&(i="");do if(!(e.to<=t)){if(e.from>=r)break;this.highlightRange(e,t,r,i,s),this.startSpan(Math.min(r,e.to),c)}while(e.nextSibling());e.parent()}}};function Um(n){let e=n.type.prop(xw);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}var se=qn.define,Yd=se(),es=se(),vw=se(es),ww=se(es),ts=se(),jd=se(ts),Vm=se(ts),ni=se(),Ys=se(ni),ei=se(),ti=se(),Ym=se(),pl=se(Ym),Ud=se(),g={comment:Yd,lineComment:se(Yd),blockComment:se(Yd),docComment:se(Yd),name:es,variableName:se(es),typeName:vw,tagName:se(vw),propertyName:ww,attributeName:se(ww),className:se(es),labelName:se(es),namespace:se(es),macroName:se(es),literal:ts,string:jd,docString:se(jd),character:se(jd),attributeValue:se(jd),number:Vm,integer:se(Vm),float:se(Vm),bool:se(ts),regexp:se(ts),escape:se(ts),color:se(ts),url:se(ts),keyword:ei,self:se(ei),null:se(ei),atom:se(ei),unit:se(ei),modifier:se(ei),operatorKeyword:se(ei),controlKeyword:se(ei),definitionKeyword:se(ei),moduleKeyword:se(ei),operator:ti,derefOperator:se(ti),arithmeticOperator:se(ti),logicOperator:se(ti),bitwiseOperator:se(ti),compareOperator:se(ti),updateOperator:se(ti),definitionOperator:se(ti),typeOperator:se(ti),controlOperator:se(ti),punctuation:Ym,separator:se(Ym),bracket:pl,angleBracket:se(pl),squareBracket:se(pl),paren:se(pl),brace:se(pl),content:ni,heading:Ys,heading1:se(Ys),heading2:se(Ys),heading3:se(Ys),heading4:se(Ys),heading5:se(Ys),heading6:se(Ys),contentSeparator:se(ni),list:se(ni),quote:se(ni),emphasis:se(ni),strong:se(ni),link:se(ni),monospace:se(ni),strikethrough:se(ni),inserted:se(),deleted:se(),changed:se(),invalid:se(),meta:Ud,documentMeta:se(Ud),annotation:se(Ud),processingInstruction:se(Ud),definition:qn.defineModifier("definition"),constant:qn.defineModifier("constant"),function:qn.defineModifier("function"),standard:qn.defineModifier("standard"),local:qn.defineModifier("local"),special:qn.defineModifier("special")};for(let n in g){let e=g[n];e instanceof qn&&(e.name=n)}var kN=jm([{tag:g.link,class:"tok-link"},{tag:g.heading,class:"tok-heading"},{tag:g.emphasis,class:"tok-emphasis"},{tag:g.strong,class:"tok-strong"},{tag:g.keyword,class:"tok-keyword"},{tag:g.atom,class:"tok-atom"},{tag:g.bool,class:"tok-bool"},{tag:g.url,class:"tok-url"},{tag:g.labelName,class:"tok-labelName"},{tag:g.inserted,class:"tok-inserted"},{tag:g.deleted,class:"tok-deleted"},{tag:g.literal,class:"tok-literal"},{tag:g.string,class:"tok-string"},{tag:g.number,class:"tok-number"},{tag:[g.regexp,g.escape,g.special(g.string)],class:"tok-string2"},{tag:g.variableName,class:"tok-variableName"},{tag:g.local(g.variableName),class:"tok-variableName tok-local"},{tag:g.definition(g.variableName),class:"tok-variableName tok-definition"},{tag:g.special(g.variableName),class:"tok-variableName2"},{tag:g.definition(g.propertyName),class:"tok-propertyName tok-definition"},{tag:g.typeName,class:"tok-typeName"},{tag:g.namespace,class:"tok-namespace"},{tag:g.className,class:"tok-className"},{tag:g.macroName,class:"tok-macroName"},{tag:g.propertyName,class:"tok-propertyName"},{tag:g.operator,class:"tok-operator"},{tag:g.comment,class:"tok-comment"},{tag:g.meta,class:"tok-meta"},{tag:g.invalid,class:"tok-invalid"},{tag:g.punctuation,class:"tok-punctuation"}]);var qm,Ai=new xe;function Uo(n){return oe.define({combine:n?e=>e.concat(n):void 0})}var Jd=new xe,cn=class{constructor(e,t,r=[],i=""){this.data=e,this.name=i,Me.prototype.hasOwnProperty("tree")||Object.defineProperty(Me.prototype,"tree",{get(){return ze(this)}}),this.parser=t,this.extension=[ri.of(this),Me.languageData.of((s,o,a)=>{let l=kw(s,o,a),c=l.type.prop(Ai);if(!c)return[];let d=s.facet(c),h=l.type.prop(Jd);if(h){let u=l.resolve(o-l.from,a);for(let f of h)if(f.test(u,s)){let m=s.facet(f.facet);return f.type=="replace"?m:m.concat(d)}}return d})].concat(r)}isActiveAt(e,t,r=-1){return kw(e,t,r).type.prop(Ai)==this.data}findRegions(e){let t=e.facet(ri);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let r=[],i=(s,o)=>{if(s.prop(Ai)==this.data){r.push({from:o,to:o+s.length});return}let a=s.prop(xe.mounted);if(a){if(a.tree.prop(Ai)==this.data){if(a.overlay)for(let l of a.overlay)r.push({from:l.from+o,to:l.to+o});else r.push({from:o,to:o+s.length});return}else if(a.overlay){let l=r.length;if(i(a.tree,a.overlay[0].from+o),r.length>l)return}}for(let l=0;lr.isTop?t:void 0)]}),e.name)}configure(e,t){return new n(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function ze(n){let e=n.field(cn.state,!1);return e?e.tree:Ee.empty}var Jm=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let r=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-r,t-r)}},ml=null,Us=class n{constructor(e,t,r=[],i,s,o,a,l){this.parser=e,this.state=t,this.fragments=r,this.tree=i,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,r){return new n(e,t,[],Ee.empty,0,r,[],null)}startParse(){return this.parser.startParse(new Jm(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Ee.empty&&this.isDone(t!=null?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let i=Date.now()+e;e=()=>Date.now()>i}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Qi.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=ml;ml=this;try{return e()}finally{ml=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=$w(e,t.from,t.to);return e}changes(e,t){let{fragments:r,tree:i,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,d,h,u)=>l.push({fromA:c,toA:d,fromB:h,toB:u})),r=Qi.applyChanges(r,l),i=Ee.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let d=e.mapPos(c.from,1),h=e.mapPos(c.to,-1);de.from&&(this.fragments=$w(this.fragments,i,s),this.skipped.splice(r--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Ti{createParse(t,r,i){let s=i[0].from,o=i[i.length-1].to;return{parsedPos:s,advance(){let l=ml;if(l){for(let c of i)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new Ee(St.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return ml}};function $w(n,e,t){return Qi.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}var Ol=class n{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,r)||t.takeTree(),new n(t)}static init(e){let t=Math.min(3e3,e.doc.length),r=Us.create(e.facet(ri).parser,e,{from:0,to:t});return r.work(20,t)||r.takeTree(),new n(r)}};cn.state=Xe.define({create:Ol.init,update(n,e){for(let t of e.effects)if(t.is(cn.setState))return t.value;return e.startState.facet(ri)!=e.state.facet(ri)?Ol.init(e.state):n.apply(e)}});var Lw=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(Lw=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var Gm=typeof navigator!="undefined"&&(!((qm=navigator.scheduling)===null||qm===void 0)&&qm.isInputPending)?()=>navigator.scheduling.isInputPending():null,EE=it.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(cn.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(cn.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Lw(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndi+1e3,l=s.context.work(()=>Gm&&Gm()||Date.now()>o,i+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:cn.setState.of(new Ol(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>jn(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),ri=oe.define({combine(n){return n.length?n[0]:null},enables:n=>[cn.state,EE,F.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})]}),Ye=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},bl=class n{constructor(e,t,r,i,s,o=void 0){this.name=e,this.alias=t,this.extensions=r,this.filename=i,this.loadFunc=s,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:r}=e;if(!t){if(!r)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(r)}return new n(e.name,(e.alias||[]).concat(e.name).map(i=>i.toLowerCase()),e.extensions||[],e.filename,t,r)}static matchFilename(e,t){for(let i of e)if(i.filename&&i.filename.test(t))return i;let r=/\.([^.]+)$/.exec(t);if(r){for(let i of e)if(i.extensions.indexOf(r[1])>-1)return i}return null}static matchLanguageName(e,t,r=!0){t=t.toLowerCase();for(let i of e)if(i.alias.some(s=>s==t))return i;if(r)for(let i of e)for(let s of i.alias){let o=t.indexOf(s);if(o>-1&&(s.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+s.length])))return i}return null}},lg=oe.define(),yr=oe.define({combine:n=>{if(!n.length)return" ";let e=n[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return e}});function ii(n){let e=n.facet(yr);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function qo(n,e){let t="",r=n.tabSize,i=n.facet(yr)[0];if(i==" "){for(;e>=r;)t+=" ",e-=r;i=" "}for(let s=0;s=e?RE(n,t,e):null}var qs=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=ii(e)}lineAt(e,t=1){let r=this.state.doc.lineAt(e),{simulateBreak:i,simulateDoubleBreak:s}=this.options;return i!=null&&i>=r.from&&i<=r.to?s&&i==e?{text:"",from:e}:(t<0?i-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,t=e.length){return Gt(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:r,from:i}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(i);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},En=new xe;function RE(n,e,t){let r=e.resolveStack(t),i=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(i!=r.node){let s=[];for(let o=i;o&&!(o.fromr.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return Dw(r,n,t)}function Dw(n,e,t){for(let r=n;r;r=r.next){let i=LE(r.node);if(i)return i(eg.create(e,t,r))}return 0}function ME(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function LE(n){let e=n.type.prop(En);if(e)return e;let t=n.firstChild,r;if(t&&(r=t.type.prop(xe.closedBy))){let i=n.lastChild,s=i&&r.indexOf(i.name)>-1;return o=>Zw(o,!0,1,void 0,s&&!ME(o)?i.from:void 0)}return n.parent==null?DE:null}function DE(){return 0}var eg=class n extends qs{constructor(e,t,r){super(e.state,e.options),this.base=e,this.pos=t,this.context=r}get node(){return this.context.node}static create(e,t,r){return new n(e,t,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(t.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(ZE(r,e))break;t=this.state.doc.lineAt(r.from)}return this.lineIndent(t.from)}continue(){return Dw(this.context.next,this.base,this.pos)}};function ZE(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function IE(n){let e=n.node,t=e.childAfter(e.from),r=e.lastChild;if(!t)return null;let i=n.options.simulateBreak,s=n.state.doc.lineAt(t.from),o=i==null||i<=s.from?s.to:Math.min(s.to,i);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==r)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function Go({closing:n,align:e=!0,units:t=1}){return r=>Zw(r,e,t,n)}function Zw(n,e,t,r,i){let s=n.textAfter,o=s.match(/^\s*/)[0].length,a=r&&s.slice(o,o+r.length)==r||i==n.pos+o,l=e?IE(n):null;return l?a?n.column(l.from):n.column(l.to):n.baseIndent+(a?0:n.unit*t)}var Iw=n=>n.baseIndent;function Gn({except:n,units:e=1}={}){return t=>{let r=n&&n.test(t.textAfter);return t.baseIndent+(r?0:e*t.unit)}}var XE=200;function Xw(){return Me.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let t=n.newDoc,{head:r}=n.newSelection.main,i=t.lineAt(r);if(r>i.from+XE)return n;let s=t.sliceString(i.from,r);if(!e.some(c=>c.test(s)))return n;let{state:o}=n,a=-1,l=[];for(let{head:c}of o.selection.ranges){let d=o.doc.lineAt(c);if(d.from==a)continue;a=d.from;let h=eh(o,d.from);if(h==null)continue;let u=/^\s*/.exec(d.text)[0],f=qo(o,h);u!=f&&l.push({from:d.from,to:d.from+u.length,insert:f})}return l.length?[n,{changes:l,sequential:!0}]:n})}var cg=oe.define(),dn=new xe;function Ft(n){let e=n.firstChild,t=n.lastChild;return e&&e.tot)continue;if(s&&a.from=e&&c.to>t&&(s=c)}}return s}function WE(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}function Qw(n,e,t){for(let r of n.facet(cg)){let i=r(n,e,t);if(i)return i}return zE(n,e,t)}function zw(n,e){let t=e.mapPos(n.from,1),r=e.mapPos(n.to,-1);return t>=r?void 0:{from:t,to:r}}var Ww=ye.define({map:zw}),dg=ye.define({map:zw});var Gd=Xe.define({create(){return K.none},update(n,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((r,i)=>n=Tw(n,r,i)),n=n.map(e.changes);let t=[];for(let r of e.effects)r.is(Ww)&&!NE(n,r.value.from,r.value.to)?t.push(r.value):r.is(dg)&&(n=n.update({filter:(i,s)=>r.value.from!=i||r.value.to!=s,filterFrom:r.value.from,filterTo:r.value.to}));if(t.length){let{preparePlaceholder:r}=e.state.facet(hg),i=t.map(s=>(r?K.replace({widget:new ng(r(e.state,s))}):Aw).range(s.from,s.to));n=n.update({add:i})}return e.selection&&(n=Tw(n,e.selection.main.head)),n},provide:n=>F.decorations.from(n),toJSON(n,e){let t=[];return n.between(0,e.doc.length,(r,i)=>{t.push(r,i)}),t},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{ie&&(r=!0)}),r?n.update({filterFrom:e,filterTo:t,filter:(i,s)=>i>=t||s<=e}):n}function tg(n,e,t){var r;let i=null;return(r=n.field(Gd,!1))===null||r===void 0||r.between(e,t,(s,o)=>{(!i||i.from>s)&&(i={from:s,to:o})}),i}function NE(n,e,t){let r=!1;return n.between(e,e,(i,s)=>{i==e&&s==t&&(r=!0)}),r}var BE={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},hg=oe.define({combine(n){return Yn(n,BE)}});function VE(n){let e=[Gd,YE];return n&&e.push(hg.of(n)),e}function Nw(n,e){let{state:t}=n,r=t.facet(hg),i=o=>{let a=n.lineBlockAt(n.posAtDOM(o.target)),l=tg(n.state,a.from,a.to);l&&n.dispatch({effects:dg.of(l)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(n,i,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=i,s}var Aw=K.replace({widget:new class extends Ct{toDOM(n){return Nw(n,null)}}}),ng=class extends Ct{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Nw(e,this.value)}},FE={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},gl=class extends $t{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function Bw(n={}){let e=Ue(Ue({},FE),n),t=new gl(e,!0),r=new gl(e,!1),i=it.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(ri)!=o.state.facet(ri)||o.startState.field(Gd,!1)!=o.state.field(Gd,!1)||ze(o.startState)!=ze(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new Zr;for(let l of o.viewportLineBlocks){let c=tg(o.state,l.from,l.to)?r:Qw(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:s}=e;return[i,Hi({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(i))===null||a===void 0?void 0:a.markers)||$e.empty},initialSpacer(){return new gl(e,!1)},domEventHandlers:zi(Ue({},s),{click:(o,a,l)=>{if(s.click&&s.click(o,a,l))return!0;let c=tg(o.state,a.from,a.to);if(c)return o.dispatch({effects:dg.of(c)}),!0;let d=Qw(o.state,a.from,a.to);return d?(o.dispatch({effects:Ww.of(d)}),!0):!1}})}),VE()]}var YE=F.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),ns=class n{constructor(e,t){this.specs=e;let r;function i(a){let l=mr.newName();return(r||(r=Object.create(null)))["."+l]=a,l}let s=typeof t.all=="string"?t.all:t.all?i(t.all):void 0,o=t.scope;this.scope=o instanceof cn?a=>a.prop(Ai)==o.data:o?a=>a==o:void 0,this.style=jm(e.map(a=>({tag:a.tag,class:a.class||i(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=r?new mr(r):null,this.themeType=t.themeType}static define(e,t){return new n(e,t||{})}},rg=oe.define(),Vw=oe.define({combine(n){return n.length?[n[0]]:null}});function Hm(n){let e=n.facet(rg);return e.length?e:n.facet(Vw)}function th(n,e){let t=[jE],r;return n instanceof ns&&(n.module&&t.push(F.styleModule.of(n.module)),r=n.themeType),e!=null&&e.fallback?t.push(Vw.of(n)):r?t.push(rg.computeN([F.darkTheme],i=>i.facet(F.darkTheme)==(r=="dark")?[n]:[])):t.push(rg.of(n)),t}var ig=class{constructor(e){this.markCache=Object.create(null),this.tree=ze(e.state),this.decorations=this.buildDeco(e,Hm(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ze(e.state),r=Hm(e.state),i=r!=Hm(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return K.none;let r=new Zr;for(let{from:i,to:s}of e.visibleRanges)Pw(this.tree,t,(o,a,l)=>{r.add(o,a,this.markCache[l]||(this.markCache[l]=K.mark({class:l})))},i,s);return r.finish()}},jE=pr.high(it.fromClass(ig,{decorations:n=>n.decorations})),RN=ns.define([{tag:g.meta,color:"#404740"},{tag:g.link,textDecoration:"underline"},{tag:g.heading,textDecoration:"underline",fontWeight:"bold"},{tag:g.emphasis,fontStyle:"italic"},{tag:g.strong,fontWeight:"bold"},{tag:g.strikethrough,textDecoration:"line-through"},{tag:g.keyword,color:"#708"},{tag:[g.atom,g.bool,g.url,g.contentSeparator,g.labelName],color:"#219"},{tag:[g.literal,g.inserted],color:"#164"},{tag:[g.string,g.deleted],color:"#a11"},{tag:[g.regexp,g.escape,g.special(g.string)],color:"#e40"},{tag:g.definition(g.variableName),color:"#00f"},{tag:g.local(g.variableName),color:"#30a"},{tag:[g.typeName,g.namespace],color:"#085"},{tag:g.className,color:"#167"},{tag:[g.special(g.variableName),g.macroName],color:"#256"},{tag:g.definition(g.propertyName),color:"#00c"},{tag:g.comment,color:"#940"},{tag:g.invalid,color:"#f00"}]),UE=F.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Fw=1e4,Yw="()[]{}",jw=oe.define({combine(n){return Yn(n,{afterCursor:!0,brackets:Yw,maxScanDistance:Fw,renderMatch:HE})}}),qE=K.mark({class:"cm-matchingBracket"}),GE=K.mark({class:"cm-nonmatchingBracket"});function HE(n){let e=[],t=n.matched?qE:GE;return e.push(t.range(n.start.from,n.start.to)),n.end&&e.push(t.range(n.end.from,n.end.to)),e}function Cw(n){let e=[],t=n.facet(jw);for(let r of n.selection.ranges){if(!r.empty)continue;let i=Nr(n,r.head,-1,t)||r.head>0&&Nr(n,r.head-1,1,t)||t.afterCursor&&(Nr(n,r.head,1,t)||r.headn.decorations}),JE=[KE,UE];function Uw(n={}){return[jw.of(n),JE]}var ug=new xe;function sg(n,e,t){let r=n.prop(e<0?xe.openedBy:xe.closedBy);if(r)return r;if(n.name.length==1){let i=t.indexOf(n.name);if(i>-1&&i%2==(e<0?1:0))return[t[i+e]]}return null}function og(n){let e=n.type.prop(ug);return e?e(n.node):n}function Nr(n,e,t,r={}){let i=r.maxScanDistance||Fw,s=r.brackets||Yw,o=ze(n),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=sg(l.type,t,s);if(c&&l.from0?e>=d.from&&ed.from&&e<=d.to))return eR(n,e,t,l,d,c,s)}}return tR(n,e,t,o,a.type,i,s)}function eR(n,e,t,r,i,s,o){let a=r.parent,l={from:i.from,to:i.to},c=0,d=a==null?void 0:a.cursor();if(d&&(t<0?d.childBefore(r.from):d.childAfter(r.to)))do if(t<0?d.to<=r.from:d.from>=r.to){if(c==0&&s.indexOf(d.type.name)>-1&&d.from0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},d=n.doc.iterRange(e,t>0?n.doc.length:0),h=0;for(let u=0;!d.next().done&&u<=s;){let f=d.value;t<0&&(u+=f.length);let m=e+u*t;for(let O=t>0?0:f.length-1,S=t>0?f.length:-1;O!=S;O+=t){let x=o.indexOf(f[O]);if(!(x<0||r.resolveInner(m+O,1).type!=i))if(x%2==0==t>0)h++;else{if(h==1)return{start:c,end:{from:m+O,to:m+O+1},matched:x>>1==l>>1};h--}}t>0&&(u+=f.length)}return d.done?{start:c,matched:!1}:null}function _w(n,e,t,r=0,i=0){e==null&&(e=n.search(/[^\s\u00a0]/),e==-1&&(e=n.length));let s=i;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosr?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return i(s)==i(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let i=this.string.slice(this.pos).match(e);return i&&i.index>0?null:(i&&t!==!1&&(this.pos+=i[0].length),i)}}current(){return this.string.slice(this.start,this.pos)}};function nR(n){return{name:n.name||"",token:n.token,blankLine:n.blankLine||(()=>{}),startState:n.startState||(()=>!0),copyState:n.copyState||rR,indent:n.indent||(()=>null),languageData:n.languageData||{},tokenTable:n.tokenTable||pg,mergeTokens:n.mergeTokens!==!1}}function rR(n){if(typeof n!="object")return n;let e={};for(let t in n){let r=n[t];e[t]=r instanceof Array?r.slice():r}return e}var Ew=new WeakMap,zt=class n extends cn{constructor(e){let t=Uo(e.languageData),r=nR(e),i,s=new class extends Ti{createParse(o,a,l){return new ag(i,o,a,l)}};super(t,s,[],e.name),this.topNode=aR(t,this),i=this,this.streamParser=r,this.stateAfter=new xe({perNode:!0}),this.tokenTable=e.tokenTable?new Kd(r.tokenTable):oR}static define(e){return new n(e)}getIndent(e){let t,{overrideIndentation:r}=e.options;r&&(t=Ew.get(e.state),t!=null&&t1e4)return null;for(;s=r&&t+e.length<=i&&e.prop(n.stateAfter);if(s)return{state:n.streamParser.copyState(s),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let a=e.children[o],l=t+e.positions[o],c=a instanceof Ee&&l=e.length)return e;!i&&t==0&&e.type==n.topNode&&(i=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],a=e.children[s],l;if(ot&&fg(n,s.tree,0-s.offset,t,a),c;if(l&&l.pos<=r&&(c=qw(n,s.tree,t+s.offset,l.pos+s.offset,!1)))return{state:l.state,tree:c}}return{state:n.streamParser.startState(i?ii(i):4),tree:Ee.empty}}var ag=class{constructor(e,t,r,i){this.lang=e,this.input=t,this.fragments=r,this.ranges=i,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=i[i.length-1].to;let s=Us.get(),o=i[0].from,{state:a,tree:l}=iR(e,r,o,this.to,s==null?void 0:s.state);this.state=a,this.parsedPos=this.chunkStart=o+l.length;for(let c=0;cc.from<=s.viewport.from&&c.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(ii(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=Us.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),r=Math.min(t,this.chunkStart+512);for(e&&(r=Math.min(r,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` +`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var wi={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Eo={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},u_=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),f_=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(At=0;At<10;At++)wi[48+At]=wi[96+At]=String(At);var At;for(At=1;At<=24;At++)wi[At+111]="F"+At;var At;for(At=65;At<=90;At++)wi[At]=String.fromCharCode(At+32),Eo[At]=String.fromCharCode(At);var At;for(Jc in wi)Eo.hasOwnProperty(Jc)||(Eo[Jc]=wi[Jc]);var Jc;function pS(n){var e=u_&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||f_&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?Eo:wi)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function kt(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var i=t[r];typeof i=="string"?n.setAttribute(r,i):i!=null&&(n[r]=i)}e++}for(;e2),ae={mac:bS||/Mac/.test(bn.platform),windows:/Win/.test(bn.platform),linux:/Linux|X11/.test(bn.platform),ie:Ed,ie_version:ev?Tp.documentMode||6:Cp?+Cp[1]:Ap?+Ap[1]:0,gecko:gS,gecko_version:gS?+(/Firefox\/(\d+)/.exec(bn.userAgent)||[0,0])[1]:0,chrome:!!yp,chrome_version:yp?+yp[1]:0,ios:bS,android:/Android\b/.test(bn.userAgent),webkit:OS,webkit_version:OS?+(/\bAppleWebKit\/(\d+)/.exec(bn.userAgent)||[0,0])[1]:0,safari:_p,safari_version:_p?+(/\bVersion\/(\d+(\.\d+)?)/.exec(bn.userAgent)||[0,0])[1]:0,tabSize:Tp.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function wm(n,e){for(let t in n)t=="class"&&e.class?e.class+=" "+n.class:t=="style"&&e.style?e.style+=";"+n.style:e[t]=n[t];return e}var pd=Object.create(null);function xm(n,e,t){if(n==e)return!0;n||(n=pd),e||(e=pd);let r=Object.keys(n),i=Object.keys(e);if(r.length-(t&&r.indexOf(t)>-1?1:0)!=i.length-(t&&i.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(i.indexOf(s)==-1||n[s]!==e[s]))return!1;return!0}function p_(n,e){for(let t=n.attributes.length-1;t>=0;t--){let r=n.attributes[t].name;e[r]==null&&n.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?n.style.cssText=r:n.getAttribute(t)!=r&&n.setAttribute(t,r)}}function yS(n,e,t){let r=!1;if(e)for(let i in e)t&&i in t||(r=!0,i=="style"?n.style.cssText="":n.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(r=!0,i=="style"?n.style.cssText=t[i]:n.setAttribute(i,t[i]));return r}function m_(n){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new Ns(e,t,t,r,e.widget||null,!1)}static replace(e){let t=!!e.block,r,i;if(e.isBlockGap)r=-5e8,i=4e8;else{let{start:s,end:o}=tv(e,t);r=(s?t?-3e8:-1:5e8)-1,i=(o?t?2e8:1:-6e8)+1}return new Ns(e,r,i,t,e.widget||null,!0)}static line(e){return new al(e)}static set(e,t=!1){return $e.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};K.none=$e.empty;var ol=class n extends K{constructor(e){let{start:t,end:r}=tv(e);super(t?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?wm(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||pd}eq(e){return this==e||e instanceof n&&this.tagName==e.tagName&&xm(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};ol.prototype.point=!1;var al=class n extends K{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof n&&this.spec.class==e.spec.class&&xm(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};al.prototype.mapMode=Xt.TrackBefore;al.prototype.point=!0;var Ns=class n extends K{constructor(e,t,r,i,s,o){super(t,r,s,e),this.block=i,this.isReplace=o,this.mapMode=i?t<=0?Xt.TrackBefore:Xt.TrackAfter:Xt.TrackDel}get type(){return this.startSide!=this.endSide?Ht.WidgetRange:this.startSide<=0?Ht.WidgetBefore:Ht.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof n&&g_(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};Ns.prototype.point=!0;function tv(n,e=!1){let{inclusiveStart:t,inclusiveEnd:r}=n;return t==null&&(t=n.inclusive),r==null&&(r=n.inclusive),{start:t!=null?t:e,end:r!=null?r:e}}function g_(n,e){return n==e||!!(n&&e&&n.compare(e))}function Io(n,e,t,r=0){let i=t.length-1;i>=0&&t[i]+r>=n?t[i]=Math.max(t[i],e):t.push(n,e)}var md=class n extends fr{constructor(e,t,r){super(),this.tagName=e,this.attributes=t,this.rank=r}eq(e){return e==this||e instanceof n&&this.tagName==e.tagName&&xm(this.attributes,e.attributes)}static create(e){return new n(e.tagName,e.attributes||pd,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,t=!1){return $e.of(e,t)}};md.prototype.startSide=md.prototype.endSide=-1;function ll(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function Ep(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function Ha(n,e){if(!e.anchorNode)return!1;try{return Ep(n,e.anchorNode)}catch(t){return!1}}function cd(n){return n.nodeType==3?cl(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function Ka(n,e,t,r){return t?SS(n,e,t,r,-1)||SS(n,e,t,r,1):!1}function qi(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function gd(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}function SS(n,e,t,r,i){for(;;){if(n==t&&e==r)return!0;if(e==(i<0?0:ki(n))){if(n.nodeName=="DIV")return!1;let s=n.parentNode;if(!s||s.nodeType!=1)return!1;e=qi(n)+(i<0?0:1),n=s}else if(n.nodeType==1){if(n=n.childNodes[e+(i<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=i<0?ki(n):0}else return!1}}function ki(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function Od(n,e){let{left:t,right:r}=n;if(t==r)return n;let i=e?t:r;return{left:i,right:i,top:n.top,bottom:n.bottom}}function O_(n){let e=n.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function nv(n,e){let t=e.width/n.offsetWidth,r=e.height/n.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-n.offsetWidth)<1)&&(t=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-n.offsetHeight)<1)&&(r=1),{scaleX:t,scaleY:r}}function b_(n,e,t,r,i,s,o,a){let l=n.ownerDocument,c=l.defaultView||window;for(let d=n,h=!1;d&&!h;)if(d.nodeType==1){let u,f=d==l.body,m=1,O=1;if(f)u=O_(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(d).position)&&(h=!0),d.scrollHeight<=d.clientHeight&&d.scrollWidth<=d.clientWidth){d=d.assignedSlot||d.parentNode;continue}let D=d.getBoundingClientRect();({scaleX:m,scaleY:O}=nv(d,D)),u={left:D.left,right:D.left+d.clientWidth*m,top:D.top,bottom:D.top+d.clientHeight*O}}let S=0,x=0;if(i=="nearest")e.top0&&e.bottom>u.bottom+x&&(x=e.bottom-u.bottom+o)):e.bottom>u.bottom-o&&(x=e.bottom-u.bottom+o,t<0&&e.top-x0&&e.right>u.right+S&&(S=e.right-u.right+s)):e.right>u.right-s&&(S=e.right-u.right+s,t<0&&e.leftu.bottom||e.leftu.right)&&(e={left:Math.max(e.left,u.left),right:Math.min(e.right,u.right),top:Math.max(e.top,u.top),bottom:Math.min(e.bottom,u.bottom)}),d=d.assignedSlot||d.parentNode}else if(d.nodeType==11)d=d.host;else break}function rv(n,e=!0){let t=n.ownerDocument,r=null,i=null;for(let s=n.parentNode;s&&!(s==t.body||(!e||r)&&i);)if(s.nodeType==1)!i&&s.scrollHeight>s.clientHeight&&(i=s),e&&!r&&s.scrollWidth>s.clientWidth&&(r=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:r,y:i}}var Rp=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:r}=e;this.set(t,Math.min(e.anchorOffset,t?ki(t):0),r,Math.min(e.focusOffset,r?ki(r):0))}set(e,t,r,i){this.anchorNode=e,this.anchorOffset=t,this.focusNode=r,this.focusOffset=i}};function iv(n){let e=[];for(let t=n;t;t=t.nodeType==11?t.host:t.parentNode)t.nodeType==1&&e.push({node:t,left:t.scrollLeft,top:t.scrollTop});return e}function sv(n,e=!0){for(let{node:t,left:r,top:i}of n)e&&t.scrollTop!=i&&(t.scrollTop=i),t.scrollLeft!=r&&(t.scrollLeft=r)}var Xs=null;ae.safari&&ae.safari_version>=26&&(Xs=!1);function ov(n){if(n.setActive)return n.setActive();if(Xs)return n.focus(Xs);let e=iv(n);n.focus(Xs==null?{get preventScroll(){return Xs={preventScroll:!0},!0}}:void 0),Xs||(Xs=!1,sv(e))}var vS;function cl(n,e,t=e){let r=vS||(vS=document.createRange());return r.setEnd(n,t),r.setStart(n,e),r}function Xo(n,e,t,r){let i={key:e,code:e,keyCode:t,which:t,cancelable:!0};r&&({altKey:i.altKey,ctrlKey:i.ctrlKey,shiftKey:i.shiftKey,metaKey:i.metaKey}=r);let s=new KeyboardEvent("keydown",i);s.synthetic=!0,n.dispatchEvent(s);let o=new KeyboardEvent("keyup",i);return o.synthetic=!0,n.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}function y_(n){for(;n;){if(n&&(n.nodeType==9||n.nodeType==11&&n.host))return n;n=n.assignedSlot||n.parentNode}return null}function S_(n,e){let t=e.focusNode,r=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=r)return!1;for(r=Math.min(r,ki(t));;)if(r){if(t.nodeType!=1)return!1;let i=t.childNodes[r-1];i.contentEditable=="false"?r--:(t=i,r=ki(t))}else{if(t==n)return!0;r=qi(t),t=t.parentNode}}function av(n){return n instanceof Window?n.pageYOffset>Math.max(0,n.document.documentElement.scrollHeight-n.innerHeight-4):n.scrollTop>Math.max(1,n.scrollHeight-n.clientHeight-4)}function lv(n,e){for(let t=n,r=e;;){if(t.nodeType==3&&r>0)return{node:t,offset:r};if(t.nodeType==1&&r>0){if(t.contentEditable=="false")return null;t=t.childNodes[r-1],r=ki(t)}else if(t.parentNode&&!gd(t))r=qi(t),t=t.parentNode;else return null}}function cv(n,e){for(let t=n,r=e;;){if(t.nodeType==3&&r=t){if(a.level==r)return o;(s<0||(i!=0?i<0?a.fromt:e[s].level>a.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function uv(n,e){if(n.length!=e.length)return!1;for(let t=0;t=0;O-=3)if(Kr[O+1]==-f){let S=Kr[O+2],x=S&2?i:S&4?S&1?s:i:0;x&&(rt[h]=rt[Kr[O]]=x),a=O;break}}else{if(Kr.length==189)break;Kr[a++]=h,Kr[a++]=u,Kr[a++]=l}else if((m=rt[h])==2||m==1){let O=m==i;l=O?0:1;for(let S=a-3;S>=0;S-=3){let x=Kr[S+2];if(x&2)break;if(O)Kr[S+2]|=2;else{if(x&4)break;Kr[S+2]|=4}}}}}function $_(n,e,t,r){for(let i=0,s=r;i<=t.length;i++){let o=i?t[i-1].to:n,a=il;)m==S&&(m=t[--O].from,S=O?t[O-1].to:n),rt[--m]=f;l=d}else s=c,l++}}}function Lp(n,e,t,r,i,s,o){let a=r%2?2:1;if(r%2==i%2)for(let l=e,c=0;ll&&o.push(new br(l,O.from,f));let S=O.direction==Bs!=!(f%2);Dp(n,S?r+1:r,i,O.inner,O.from,O.to,o),l=O.to}m=O.to}else{if(m==t||(d?rt[m]!=a:rt[m]==a))break;m++}u?Lp(n,l,m,r+1,i,u,o):le;){let d=!0,h=!1;if(!c||l>s[c-1].to){let O=rt[l-1];O!=a&&(d=!1,h=O==16)}let u=!d&&a==1?[]:null,f=d?r:r+1,m=l;e:for(;;)if(c&&m==s[c-1].to){if(h)break e;let O=s[--c];if(!d)for(let S=O.from,x=c;;){if(S==e)break e;if(x&&s[x-1].to==S)S=s[--x].from;else{if(rt[S-1]==a)break e;break}}if(u)u.push(O);else{O.tort.length;)rt[rt.length]=256;let r=[],i=e==Bs?0:1;return Dp(n,i,i,t,0,n.length,r),r}function fv(n){return[new br(0,n,0)]}var pv="";function T_(n,e,t,r,i){var s;let o=r.head-n.from,a=br.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),l=e[a],c=l.side(i,t);if(o==c){let u=a+=i?1:-1;if(u<0||u>=e.length)return null;l=e[a=u],o=l.side(!i,t),c=l.side(i,t)}let d=Pt(n.text,o,l.forward(i,t));(dl.to)&&(d=c),pv=n.text.slice(Math.min(o,d),Math.max(o,d));let h=a==(i?e.length-1:0)?null:e[a+(i?1:-1)];return h&&d==c&&h.level+(i?0:1)n.some(e=>e)}),wv=oe.define({combine:n=>n.some(e=>e)}),xv=oe.define(),Ja=class n{constructor(e,t,r,i,s,o=!1){this.range=e,this.y=t,this.x=r,this.yMargin=i,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new n(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new n(z.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},ed=ye.define({map:(n,e)=>n.map(e)}),Pv=ye.define();function jn(n,e,t){let r=n.facet(bv);r.length?r[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var xi=oe.define({combine:n=>n.length?n[0]:!0}),C_=0,Mo=oe.define({combine(n){return n.filter((e,t)=>{for(let r=0;r{let l=[];return o&&l.push(Rd.of(c=>{let d=c.plugin(a);return d?o(d):K.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return n.define((r,i)=>new e(r,i),t)}},el=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(r){if(jn(t.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(i){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){jn(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(r){jn(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},kv=oe.define(),Qm=oe.define(),Rd=oe.define(),$v=oe.define(),Tm=oe.define(),ul=oe.define(),Qv=oe.define();function wS(n,e){let t=n.state.facet(Qv);if(!t.length)return t;let r=t.map(s=>s instanceof Function?s(n):s),i=[];return $e.spans(r,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,d=o-e.from,h=i;for(let u=a.length-1;u>=0;u--,l--){let f=a[u].spec.bidiIsolate,m;if(f==null&&(f=A_(e.text,c,d)),l>0&&h.length&&(m=h[h.length-1]).to==c&&m.direction==f)m.to=d,h=m.inner;else{let O={from:c,to:d,direction:f,inner:[]};h.push(O),h=O.inner}}}}),i}var Tv=oe.define();function Am(n){let e=0,t=0,r=0,i=0;for(let s of n.state.facet(Tv)){let o=s(n);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(i=Math.max(i,o.bottom)))}return{left:e,right:t,top:r,bottom:i}}var Ua=oe.define(),zr=class n{constructor(e,t,r,i){this.fromA=e,this.toA=t,this.fromB=r,this.toB=i}join(e){return new n(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,r=this;for(;t>0;t--){let i=e[t-1];if(!(i.fromA>r.toA)){if(i.toAi.push(new zr(s,o,a,l))),this.changedRanges=i}static create(e,t,r){return new n(e,t,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},__=[],mt=class{constructor(e,t,r=0){this.dom=e,this.length=t,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return __}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&p_(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let r=t;for(let i of this.children){if(i==e)return r;r+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t,r){return null}domPosFor(e,t){let r=qi(this.dom),i=this.length?e>0:t>0;return new Jr(this.parent.dom,r+(i?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Wo)return e;return null}static get(e){return e.cmTile}},zo=class extends mt{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,r=null,i,s=(e==null?void 0:e.node)==t?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,i=r?r.nextSibling:t.firstChild,s&&i!=a.dom&&(s.written=!0),a.dom.parentNode==t)for(;i&&i!=a.dom;)i=xS(i);else t.insertBefore(a.dom,i);r=a.dom}for(i=r?r.nextSibling:t.firstChild,s&&i&&(s.written=!0);i;)i=xS(i);this.length=o}};function xS(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}var Wo=class extends zo{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=mt.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],r=this,i=0,s=0;;)if(i==r.children.length){if(!t.length)return;r=r.parent,r.breakAfter&&s++,i=t.pop()}else{let o=r.children[i++];if(o instanceof Pi)t.push(i),r=o,i=0;else{let a=s+o.length,l=e(o,s);if(l!==void 0)return l;s=a+o.breakAfter}}}resolveBlock(e,t){let r,i=-1,s,o=-1;if(this.blockTiles((a,l)=>{let c=l+a.length;if(e>=l&&e<=c){if(a.isWidget()&&t>=-1&&t<=1){if(a.flags&32)return!0;a.flags&16&&(r=void 0)}(le||e==l&&(t>1?a.length:a.covers(-1)))&&(!s||!a.isWidget()&&s.isWidget())&&(s=a,o=e-l)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&t<0||!s?{tile:r,offset:i}:{tile:s,offset:o}}},Pi=class n extends zo{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let r=new n(t||document.createElement(e.tagName),e);return t||(r.flags|=4),r}},No=class n extends zo{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,r){let i=new n(t||document.createElement("div"),e);return(!t||!r)&&(i.flags|=4),i}get domAttrs(){return this.attrs}resolveInline(e,t,r){let i=null,s=-1,o=null,a=-1;function l(d,h){for(let u=0,f=0;u=h&&(m.isComposite()?l(m,h-f):(!o||o.isHidden&&(t>0&&!(o.flags&32)||r&&R_(o,m)))&&(O>h||m.flags&32&&t<=1)?(o=m,a=h-f):(f=-1)&&(i=m,s=h-f)),f=O}}l(this,e);let c=(t<0?i:o)||i||o;return c?{tile:c,offset:c==i?s:a}:null}coordsIn(e,t,r){let i=this.resolveInline(e,t,!0);return i?i.tile.coordsIn(Math.max(0,i.offset),t,r):E_(this)}domIn(e,t){let r=this.resolveInline(e,t);if(r){let{tile:i,offset:s}=r;if(this.dom.contains(i.dom))return i.isText()?new Jr(i.dom,Math.min(i.dom.nodeValue.length,s)):i.domPosFor(s,i.flags&16?1:i.flags&32?-1:t);let o=r.tile.parent,a=!1;for(let l of o.children){if(a)return new Jr(l.dom,0);l==r.tile&&(a=!0)}}return new Jr(this.dom,0)}};function E_(n){let e=n.dom.lastChild;if(!e)return n.dom.getBoundingClientRect();let t=cd(e);return t[t.length-1]||null}function R_(n,e){let t=n.coordsIn(0,1),r=e.coordsIn(0,1);return t&&r&&r.topi&&(e=i);let s=e,o=e,a=0;e==0&&t<0||e==i&&t>=0?ae.chrome||ae.gecko||(e?(s--,a=1):o=0)?0:l.length-1];return ae.safari&&!a&&c.width==0&&(c=Array.prototype.find.call(l,d=>d.width)||c),r==null?c:Od(c,(a?a>0:t<0)==r)}static of(e,t){let r=new n(t||document.createTextNode(e),e);return t||(r.flags|=2),r}},Vs=class n extends mt{constructor(e,t,r,i){super(e,t,i),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,r){let i=this.widget.coordsAt(this.dom,e,t);if(i)return i;if(r)return Od(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?s.length-1:0;o=s[l],!(e>0?l==0:l==s.length-1||o.top0==r)}},Ip=class{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,r){let{tile:i,index:s,beforeBreak:o,parents:a}=this;for(;e||t>0;)if(i.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==i.children.length){if(!e&&!a.length)break;r&&r.leave(i),o=!!i.breakAfter,{tile:i,index:s}=a.pop(),s++}else{let l=i.children[s],c=l.breakAfter;(t>0?l.length<=e:l.length=0;a--){let l=t.marks[a],c=i.lastChild;if(c instanceof An&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(Sp(l.dom)),i=c;else{if(this.cache.reused.get(l)){let h=mt.get(l.dom);h&&h.setDOM(Sp(l.dom))}let d=An.of(l.mark,l.dom);i.append(d),i=d}this.cache.reused.set(l,2)}let s=mt.get(e.text);s&&this.cache.reused.set(s,2);let o=new zs(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,i.append(o)}addInlineWidget(e,t,r){let i=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);i||this.flushBuffer();let s=this.ensureMarks(t,r);!i&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,r){this.flushBuffer(),this.ensureMarks(t,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var r;e||(e=Av);let i=No.start(e,t||((r=this.cache.find(No))===null||r===void 0?void 0:r.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=i)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var r;let i=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],a;if(t>0&&(a=i.lastChild)&&a instanceof An&&a.mark.eq(o))i=a,t--;else{let l=An.of(o,(r=this.cache.find(An,c=>c.mark.eq(o)))===null||r===void 0?void 0:r.dom);i.append(l),i=l,t=0}}return i}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!PS(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(ae.ios&&PS(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(vp,0,32)||new Vs(vp.toDOM(),0,vp,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=e.rank*102+e.value.rank,r=new Xp(e.from,e.to,e.value,t),i=this.wrappers.length;for(;i>0&&(this.wrappers[i-1].rank-r.rank||this.wrappers[i-1].to-r.to)<0;)i--;this.wrappers.splice(i,0,r)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let r of this.wrappers){let i=t.lastChild;if(r.fromo.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),r=this.cache.find(Bo,void 0,1);return r&&(r.flags=t),r||new Bo(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},Wp=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:i,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=i;let a=this.textOff=Math.min(e,i.length);return s?null:i.slice(0,a)}let t=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,t);return this.textOff=t,r}},yd=[Vs,No,zs,An,Bo,Pi,Wo];for(let n=0;n[]),this.index=yd.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,r=this.buckets[t];r.length<6?r.push(e):r[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,r=2){let i=e.bucket,s=this.buckets[i],o=this.index[i];for(let a=0;a{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let r=t&&this.getCompositionContext(t.text);for(let i=0,s=0,o=0;;){let a=oi){let c=l-i;this.preserve(c,!o,!a),i=l,s+=c}if(!a)break;t&&a.fromA<=t.range.fromA&&a.toA>=t.range.toA?(this.forward(a.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let c=l>0||a{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof An&&i.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?i.length&&(i.length=s=0):o instanceof An&&(i.shift(),s=Math.min(s,i.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let r=null,i=this.builder,s=-1,o=$e.spans(this.decorations,e,t,{point:(a,l,c,d,h,u)=>{if(c instanceof Ns){if(this.disallowBlockEffectsFor[u]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(l>this.view.state.doc.lineAt(a).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=d.length,h>d.length)i.continueWidget(l-a);else{let f=c.widget||(c.block?Gi.block:Gi.inline),m=M_(c),O=this.cache.findWidget(f,l-a,m)||Vs.of(f,this.view,l-a,m);c.block?(c.startSide>0&&i.addLineStartIfNotCovered(r),i.addBlockWidget(O)):(i.ensureLine(r),i.addInlineWidget(O,d,h))}r=null}else r=L_(r,c);l>a&&this.text.skip(l-a)},span:(a,l,c,d)=>{for(let h=a;h-1&&(this.openWidget=o>s),this.openWidget||i.addLineStartIfNotCovered(r),this.openMarks=o}forward(e,t,r=1){t-e<=10?this.old.advance(t-e,r,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,r,this.reuseWalker))}getCompositionContext(e){let t=[],r=null;for(let i=e.parentNode;;i=i.parentNode){let s=mt.get(i);if(i==this.view.contentDOM)break;s instanceof An?t.push(s):s!=null&&s.isLine()?r=s:s instanceof Pi||(i.nodeName=="DIV"&&!r&&i!=this.view.contentDOM?r=new No(i,Av):r||t.push(An.of(new ol({tagName:i.nodeName.toLowerCase(),attributes:m_(i)}),i)))}return{line:r,marks:t}}};function PS(n,e){let t=r=>{for(let i of r.children)if((e?i.isText():i.length)||t(i))return!0;return!1};return t(n)}function M_(n){let e=n.isReplace?(n.startSide<0?64:0)|(n.endSide>0?128:0):n.startSide>0?32:16;return n.block&&(e|=256),e}var Av={class:"cm-line"};function L_(n,e){let t=e.spec.attributes,r=e.spec.class;return!t&&!r||(n||(n={class:"cm-line"}),t&&wm(t,n),r&&(n.class+=" "+r)),n}function D_(n){let e=[];for(let t=n.parents.length;t>1;t--){let r=t==n.parents.length?n.tile:n.parents[t].tile;r instanceof An&&e.push(r.mark)}return e}function Sp(n){let e=mt.get(n);return e&&e.setDOM(n.cloneNode()),n}var Gi=class extends Ct{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};Gi.inline=new Gi("span");Gi.block=new Gi("div");var vp=new class extends Ct{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},Sd=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=K.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Wo(e,e.contentDOM),this.updateInner([new zr(0,0,0,e.state.doc.length)],null)}update(e){var t;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:d,toA:h})=>hthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let i=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?i=this.domChanged.newSel.head:!V_(e.changes,this.hasComposition)&&!e.selectionSet&&(i=e.state.selection.main.head));let s=i>-1?I_(this.view,e.changes,i):null;if(this.domChanged=null,this.hasComposition){let{from:d,to:h}=this.hasComposition;r=new zr(d,h,e.changes.mapPos(d,-1),e.changes.mapPos(h,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(ae.ie||ae.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=W_(o,this.decorations,e.changes);l.length&&(r=zr.extendWithRanges(r,l));let c=N_(a,this.blockWrappers,e.changes);return c.length&&(r=zr.extendWithRanges(r,c)),s&&!r.some(d=>d.fromA<=s.range.fromA&&d.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(t||e.length){let o=this.tile,a=new Bp(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);t&&mt.get(t.text)&&a.cache.reused.set(mt.get(t.text),2),this.tile=a.run(e,t),Vp(o,a.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=ae.chrome||ae.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let i=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Ha(r,this.view.observer.selectionRange)&&!(i&&r.contains(i));if(!(s||t||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c,d;if(l.empty?d=c=this.inlineDOMNearPos(l.anchor,l.assoc||1):(d=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),c=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),ae.gecko&&l.empty&&!this.hasComposition&&Z_(c)){let u=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(u,c.node.childNodes[c.offset]||null)),c=d=new Jr(u,0),a=!0}let h=this.view.observer.selectionRange;(a||!h.focusNode||(!Ka(c.node,c.offset,h.anchorNode,h.anchorOffset)||!Ka(d.node,d.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,l))&&(this.view.observer.ignore(()=>{ae.android&&ae.chrome&&r.contains(h.focusNode)&&B_(h.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let u=ll(this.view.root);if(u)if(l.empty){if(ae.gecko){let f=X_(c.node,c.offset);if(f&&f!=3){let m=(f==1?lv:cv)(c.node,c.offset);m&&(c=new Jr(m.node,m.offset))}}u.collapse(c.node,c.offset),l.bidiLevel!=null&&u.caretBidiLevel!==void 0&&(u.caretBidiLevel=l.bidiLevel)}else if(u.extend){u.collapse(c.node,c.offset);try{u.extend(d.node,d.offset)}catch(f){}}else{let f=document.createRange();l.anchor>l.head&&([c,d]=[d,c]),f.setEnd(d.node,d.offset),f.setStart(c.node,c.offset),u.removeAllRanges(),u.addRange(f)}o&&this.view.root.activeElement==r&&(r.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(c,d)),this.impreciseAnchor=c.precise?null:new Jr(h.anchorNode,h.anchorOffset),this.impreciseHead=d.precise?null:new Jr(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Ka(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,r=ll(e.root),{anchorNode:i,anchorOffset:s}=e.observer.selectionRange;if(!r||!t.empty||!t.assoc||!r.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let d=this.domAtPos(t.head+t.assoc,t.assoc);r.collapse(d.node,d.offset),r.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&r.collapse(i,s)}posFromDOM(e,t){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let i=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[t];else{let o=ki(e)==0?0:t==0?-1:1;for(;;){let a=e.parentNode;if(a==r.dom)break;o==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?o=-1:o=1),e=a}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return i;for(;s&&!mt.get(s);)s=s.nextSibling;if(!s)return i+r.length;for(let o=0,a=i;;o++){let l=r.children[o];if(l.dom==s)return a;a+=l.length+l.breakAfter}}else return r.isText()?e==r.dom?i+t:i+(t?r.length:0):i}domAtPos(e,t){let{tile:r,offset:i}=this.tile.resolveBlock(e,t);return r.isWidget()?r.domPosFor(i,t):r.domIn(i,t)}inlineDOMNearPos(e,t){let r,i=-1,s=!1,o,a=-1,l=!1;return this.tile.blockTiles((c,d)=>{if(c.isWidget()){if(c.flags&32&&d>=e)return!0;c.flags&16&&(s=!0)}else{let h=d+c.length;if(d<=e&&(r=c,i=e-d,s=h=e&&!o&&(o=c,a=e-d,l=d>e),d>e&&o)return!0}}),!r&&!o?this.domAtPos(e,t):(s&&o?r=null:l&&r&&(o=null),r&&t<0||!o?r.domIn(i,t):o.domIn(a,t))}coordsAt(e,t,r){let{tile:i,offset:s}=this.tile.resolveBlock(e,t);return i.isWidget()?i.widget instanceof tl?null:i.coordsInWidget(s,t,!0):i.coordsIn(s,t,r)}lineAt(e,t){let{tile:r}=this.tile.resolveBlock(e,t);return r.isLine()?r:null}coordsForChar(e){let{tile:t,offset:r}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function i(s,o){if(s.isComposite())for(let a of s.children){if(a.length>=o){let l=i(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==qe.LTR,c=0,d=(h,u,f)=>{for(let m=0;mi);m++){let O=h.children[m],S=u+O.length,x=O.dom.getBoundingClientRect(),{height:D}=x;if(f&&!m&&(c+=x.top-f.top),O instanceof Pi)S>r&&d(O,u,x);else if(u>=r&&(c>0&&t.push(-c),t.push(D+c),c=0,o)){let M=O.dom.lastChild,Z=M?cd(M):[];if(Z.length){let k=Z[Z.length-1],w=l?k.right-x.left:x.right-k.left;w>a&&(a=w,this.minWidth=s,this.minWidthFrom=u,this.minWidthTo=S)}}f&&m==h.children.length-1&&(c+=f.bottom-x.bottom),u=S+O.breakAfter}};return d(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?qe.RTL:qe.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let d=cd(c.dom);if(d.length!=1)return;a+=d[0].width,l=d[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let t=document.createElement("div"),r,i,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=cd(t.firstChild)[0];r=t.getBoundingClientRect().height,i=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,t.remove()}),{lineHeight:r,charWidth:i,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let r=0,i=0;;i++){let s=i==t.viewports.length?null:t.viewports[i],o=s?s.from-1:this.view.state.doc.length;if(o>r){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(r).top)/this.view.scaleY;e.push(K.replace({widget:new tl(a),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return K.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Rd).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,i=this.view.state.facet(Tm).map((s,o)=>{let a=typeof s=="function";return a&&(r=!0),a?s(this.view):s});for(i.length&&(this.dynamicDecorationMap[e++]=r,t.push($e.join(i))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(xv))try{if(c(this.view,e.range,e))return!0}catch(d){jn(this.view.state,d,"scroll handler")}let{range:t}=e,r=this.coordsAt(t.head,t.assoc||(t.head>t.anchor?-1:1)),i;if(!r)return;!t.empty&&(i=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(r={left:Math.min(r.left,i.left),top:Math.min(r.top,i.top),right:Math.max(r.right,i.right),bottom:Math.max(r.bottom,i.bottom)});let s=Am(this.view),o={left:r.left-s.left,top:r.top-s.top,right:r.right+s.right,bottom:r.bottom+s.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(b_(this.view.scrollDOM,o,t.head1&&(r.top>window.visualViewport.offsetTop+window.visualViewport.height||r.bottomr.isWidget()||r.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Vp(this.tile)}};function Vp(n,e){let t=e==null?void 0:e.get(n);if(t!=1){t==null&&n.destroy();for(let r of n.children)Vp(r,e)}}function Z_(n){return n.node.nodeType==1&&n.node.firstChild&&(n.offset==0||n.node.childNodes[n.offset-1].contentEditable=="false")&&(n.offset==n.node.childNodes.length||n.node.childNodes[n.offset].contentEditable=="false")}function Cv(n,e){let t=n.observer.selectionRange;if(!t.focusNode)return null;let r=lv(t.focusNode,t.focusOffset),i=cv(t.focusNode,t.focusOffset),s=r||i;if(i&&r&&i.node!=r.node){let a=mt.get(i.node);if(!a||a.isText()&&a.text!=i.node.nodeValue)s=i;else if(n.docView.lastCompositionAfterCursor){let l=mt.get(r.node);!l||l.isText()&&l.text!=r.node.nodeValue||(s=i)}}if(n.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function I_(n,e,t){let r=Cv(n,t);if(!r)return null;let{node:i,from:s,to:o}=r,a=i.nodeValue;if(/[\n\r]/.test(a)||n.state.doc.sliceString(r.from,r.to)!=a)return null;let l=e.invertedDesc;return{range:new zr(l.mapPos(s),l.mapPos(o),s,o),text:i}}function X_(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(t=!0)}),t}var tl=class extends Ct{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function F_(n,e,t=1){let r=n.charCategorizer(e),i=n.doc.lineAt(e),s=e-i.from;if(i.length==0)return z.cursor(e);s==0?t=1:s==i.length&&(t=-1);let o=s,a=s;t<0?o=Pt(i.text,s,!1):a=Pt(i.text,s);let l=r(i.text.slice(o,a));for(;o>0;){let c=Pt(i.text,o,!1);if(r(i.text.slice(c,o))!=l)break;o=c}for(;an.defaultLineHeight*1.5){let a=n.viewState.heightOracle.textHeight,l=Math.floor((i-t.top-(n.defaultLineHeight-a)*.5)/a);s+=l*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(t.from,t.to);return t.from+Kc(o,s,n.state.tabSize)}function Yp(n,e,t){let r=n.lineBlockAt(e);if(Array.isArray(r.type)){let i;for(let s of r.type){if(s.from>e)break;if(!(s.toe)return s;(!i||s.type==Ht.Text&&(i.type!=s.type||(t<0?s.frome)))&&(i=s)}}return i||r}return r}function j_(n,e,t,r){let i=Yp(n,e.head,e.assoc||-1),s=!r||i.type!=Ht.Text||!(n.lineWrapping||i.widgetLineBreaks)?null:n.coordsAtPos(e.assoc<0&&e.head>i.from?e.head-1:e.head);if(s){let o=n.dom.getBoundingClientRect(),a=n.textDirectionAt(i.from),l=n.posAtCoords({x:t==(a==qe.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return z.cursor(l,t?-1:1)}return z.cursor(t?i.to:i.from,t?-1:1)}function kS(n,e,t,r){let i=n.state.doc.lineAt(e.head),s=n.bidiSpans(i),o=n.textDirectionAt(i.from);for(let a=e,l=null;;){let c=T_(i,s,o,a,t),d=pv;if(!c){if(i.number==(t?n.state.doc.lines:1))return a;d=` +`,i=n.state.doc.line(i.number+(t?1:-1)),s=n.bidiSpans(i),c=n.visualLineSide(i,!t)}if(l){if(!l(d))return a}else{if(!r)return c;l=r(d)}a=c}}function U_(n,e,t){let r=n.state.charCategorizer(e),i=r(t);return s=>{let o=r(s);return i==et.Space&&(i=o),i==o}}function q_(n,e,t,r){let i=e.head,s=t?1:-1;if(i==(t?n.state.doc.length:0))return z.cursor(i,e.assoc);let o=e.goalColumn,a,l=n.contentDOM.getBoundingClientRect(),c=n.coordsAtPos(i,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),d=n.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let m=n.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,n.defaultCharacterWidth*(i-m.from))),a=(s<0?m.top:m.bottom)+d}let h=l.left+o,u=n.viewState.heightOracle.textHeight>>1,f=r!=null?r:u;for(let m=0;;m+=u){let O=a+(f+m)*s,S=jp(n,{x:h,y:O},!1,s);if(t?O>l.bottom:Oa:D{if(e>s&&ei(n)),t.from,e.head>t.from?-1:1);return r==t.from?t:z.cursor(r,rn.viewState.docHeight)return new Or(n.state.doc.length,-1);if(c=n.elementAtHeight(l),r==null)break;if(c.type==Ht.Text){if(r<0?c.ton.viewport.to)break;let u=n.docView.coordsAt(r<0?c.from:c.to,r>0?-1:1);if(u&&(r<0?u.top<=l+s:u.bottom>=l+s))break}let h=n.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+h:c.top-h}if(n.viewport.from>=c.to||n.viewport.to<=c.from){if(t)return null;if(c.type==Ht.Text){let h=Y_(n,i,c,o,a);return new Or(h,h==c.from?1:-1)}}if(c.type!=Ht.Text)return l<(c.top+c.bottom)/2?new Or(c.from,1):new Or(c.to,-1);let d=n.docView.lineAt(c.from,2);return(!d||d.length!=c.length)&&(d=n.docView.lineAt(c.from,-2)),new Up(n,o,a,n.textDirectionAt(c.from)).scanTile(d,c.from)}var Up=class{constructor(e,t,r,i){this.view=e,this.x=t,this.y=r,this.baseDir=i,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||r.length&&(r[0].level!=this.baseDir||r[0].to+i.from>1;t:if(o.has(O)){for(let D=1;D=s&&(M-=m),!o.has(M)){O=M;break t}}break e}o.add(O);let S=t(O),x=0;if(S)for(let D=0;D1))if(M.bottomthis.y)(!c||c.top>M.top)&&(c=M),x=-1;else{let Z=M.left>this.x?this.x-M.left:M.right(m+m+O)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(m+O+O)/3)return this.y=c.top+1,this.scan(e,t,!0)}let f=(a?this.dirAt(e[d],1):this.baseDir)==qe.LTR;return{i:d,after:this.x>(u.left+u.right)/2==f}}scanText(e,t){let r=[];for(let s=0;s{let o=r[s]-t,a=r[s+1]-t;return cl(e.dom,o,a).getClientRects()});return i.after?new Or(r[i.i+1],-1):new Or(r[i.i],1)}scanTile(e,t){if(!e.length)return new Or(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let r=[t];for(let a=0,l=t;a{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:cl(l.dom,0,l.length)).getClientRects()}),s=e.children[i.i],o=r[i.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):i.after?new Or(r[i.i+1],-1):new Or(o,1)}},Ro="\uFFFF",qp=class{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(Me.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Ro}readRange(e,t){if(!e)return this;let r=e.parentNode;for(let i=e;;){this.findPointBefore(r,i);let s=this.text.length;this.readNode(i);let o=mt.get(i),a=i.nextSibling;if(a==t){o!=null&&o.breakAfter&&!a&&r!=this.view.contentDOM&&this.lineBreak();break}let l=mt.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:gd(i))||gd(a)&&(i.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>s)&&!H_(a,t)&&this.lineBreak(),i=a}return this.findPointBefore(r,t),this}readTextNode(e){let t=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,t.length));for(let r=0,i=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,a;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(a=i.exec(t))&&(s=a.index,o=a[0].length),this.append(t.slice(r,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);r=s+o}}readNode(e){let t=mt.get(e),r=t&&t.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let i=r.iter();!i.next().done;)i.lineBreak?this.lineBreak():this.append(i.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==t&&(r.pos=this.text.length)}findPointInside(e,t){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(G_(e,r.node,r.offset)?t:0))}};function G_(n,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,a=e.state.selection;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Ev(e.docView.tile,t,r,0))){let l=s||o?[]:J_(e),c=new qp(l,e);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=e2(l,this.bounds.from)}else{let l=e.observer.selectionRange,c=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!Ep(e.contentDOM,l.focusNode)?a.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),d=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!Ep(e.contentDOM,l.anchorNode)?a.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset),h=e.viewport;if((ae.ios||ae.chrome)&&c!=d&&Math.min(c,d)<=a.main.from&&Math.max(c,d)>=a.main.to&&(h.from>0||h.to-1&&a.ranges.length>1)this.newSel=a.replaceRange(z.range(d,c));else if(e.lineWrapping&&d==c&&!(a.main.empty&&a.main.head==c)&&e.inputState.lastTouchTime>Date.now()-100){let u=e.coordsAtPos(c,-1),f=0;u&&(f=e.inputState.lastTouchY<=u.bottom?-1:1),this.newSel=z.create([z.cursor(c,f)])}else this.newSel=z.single(d,c)}}};function Ev(n,e,t,r){if(n.isComposite()){let i=-1,s=-1,o=-1,a=-1;for(let l=0,c=r,d=r;lt)return Ev(h,e,t,c);if(u>=e&&i==-1&&(i=l,s=c),c>t&&h.dom.parentNode==n.dom){o=l,a=d;break}d=u,c=u+h.breakAfter}return{from:s,to:a<0?r+n.length:a,startDOM:(i?n.children[i-1].dom.nextSibling:null)||n.dom.firstChild,endDOM:o=0?n.children[o].dom:null}}else return n.isText()?{from:r,to:r+n.length,startDOM:n.dom,endDOM:n.dom.nextSibling}:null}function Rv(n,e){let t,{newSel:r}=e,{state:i}=n,s=i.selection.main,o=n.inputState.lastKeyTime>Date.now()-100?n.inputState.lastKeyCode:-1;if(e.bounds){let{from:a,to:l}=e.bounds,c=s.from,d=null;(o===8||ae.android&&e.text.length=a&&s.to<=l&&(e.typeOver||h!=e.text)&&h.slice(0,s.from-a)==e.text.slice(0,s.from-a)&&h.slice(s.to-a)==e.text.slice(u=e.text.length-(h.length-(s.to-a)))?t={from:s.from,to:s.to,insert:De.of(e.text.slice(s.from-a,u).split(Ro))}:(f=Mv(h,e.text,c-a,d))&&(ae.chrome&&o==13&&f.toB==f.from+2&&e.text.slice(f.from,f.toB)==Ro+Ro&&f.toB--,t={from:a+f.from,to:a+f.toA,insert:De.of(e.text.slice(f.from,f.toB).split(Ro))})}else r&&(!n.hasFocus&&i.facet(xi)||wd(r,s))&&(r=null);if(!t&&!r)return!1;if((ae.mac||ae.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&n.contentDOM.getAttribute("autocorrect")=="off"?(r&&t.insert.length==2&&(r=z.single(r.main.anchor-1,r.main.head-1)),t={from:t.from,to:t.to,insert:De.of([t.insert.toString().replace("."," ")])}):i.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:i.toText(n.inputState.insertingText)}:ae.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` + `&&n.lineWrapping&&(r&&(r=z.single(r.main.anchor-1,r.main.head-1)),t={from:s.from,to:s.to,insert:De.of([" "])}),t)return Cm(n,t,r,o);if(r&&!wd(r,s)){let a=!1,l="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(a=!0),l=n.inputState.lastSelectionOrigin,l=="select.pointer"&&(r=_v(i.facet(ul).map(c=>c(n)),r))),n.dispatch({selection:r,scrollIntoView:a,userEvent:l}),!0}else return!1}function Cm(n,e,t,r=-1){if(ae.ios&&n.inputState.flushIOSKey(e))return!0;let i=n.state.selection.main;if(ae.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&n.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Xo(n.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||r==8&&e.insert.lengthi.head)&&Xo(n.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&Xo(n.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,a=()=>o||(o=K_(n,e,t));return n.state.facet(yv).some(l=>l(n,e.from,e.to,s,a))||n.dispatch(a()),!0}function K_(n,e,t){let r,i=n.state,s=i.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let l=e.fromh(n)),c,l);e.from==d&&(o=d)}if(o>-1)r={changes:e,selection:z.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&n.inputState.composing<0){let l=s.frome.to?i.sliceDoc(e.to,s.to):"";r=i.replaceSelection(n.state.toText(l+e.insert.sliceString(0,void 0,n.state.lineBreak)+c))}else{let l=i.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(i.selection.ranges.length>1&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let d=n.state.sliceDoc(e.from,e.to),h,u=t&&Cv(n,t.main.head);if(u){let m=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-m}}else h=n.state.doc.lineAt(s.head);let f=s.to-e.to;r=i.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:l,range:c||m.map(l)};let O=m.to-f,S=O-d.length;if(n.state.sliceDoc(S,O)!=d||O>=h.from&&S<=h.to)return{range:m};let x=i.changes({from:S,to:O,insert:e.insert}),D=m.to-s.to;return{changes:x,range:c?z.range(Math.max(0,c.anchor+D),Math.max(0,c.head+D)):m.map(x)}})}else r={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,a+=".compose",n.inputState.compositionFirstChange&&(a+=".start",n.inputState.compositionFirstChange=!1)),i.update(r,{userEvent:a,scrollIntoView:!0})}function Mv(n,e,t,r){let i=Math.min(n.length,e.length),s=0;for(;s0&&a>0&&n.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function J_(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}=n.observer.selectionRange;return t&&(e.push(new vd(t,r)),(i!=t||s!=r)&&e.push(new vd(i,s))),e}function e2(n,e){if(n.length==0)return null;let t=n[0].pos,r=n.length==2?n[1].pos:t;return t>-1&&r>-1?z.single(t+e,r+e):null}function wd(n,e){return e.head==n.main.head&&e.anchor==n.main.anchor}var Hp=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,ae.safari&&e.contentDOM.addEventListener("input",()=>null),ae.gecko&&m2(e.contentDOM.ownerDocument)}handleEvent(e){!l2(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let r=this.handlers[e];if(r){for(let i of r.observers)i(this.view,t);for(let i of r.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=n2(e),r=this.handlers,i=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,a=r[s];a&&o!=!a.handlers.length&&(i.removeEventListener(s,this.handleEvent),a=null),a||i.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!t[s]&&i.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Dv.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),ae.android&&ae.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(ae.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(Lv.some(t=>t.keyCode==e.keyCode)&&!e.ctrlKey||r2.indexOf(e.key)>-1&&e.ctrlKey)){let t={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return t.shiftKey&&ae.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&t2(this.view.win)&&(t.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:t},setTimeout(()=>this.flushIOSKey(),50),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let t=this.pendingIOSKey;return!t||this.view.observer.pendingRecords().length||t.key=="Enter"&&e&&e.from0?!0:ae.safari&&!ae.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function t2(n){return n.visualViewport?n.visualViewport.height*n.visualViewport.scale/n.document.documentElement.clientHeight<.85:!1}function $S(n,e){return(t,r)=>{try{return e.call(n,r,t)}catch(i){jn(t.state,i)}}}function n2(n){let e=Object.create(null);function t(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of n){let i=r.spec,s=i&&i.plugin.domEventHandlers,o=i&&i.plugin.domEventObservers;if(s)for(let a in s){let l=s[a];l&&t(a).handlers.push($S(r.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push($S(r.value,l))}}for(let r in Wr)t(r).handlers.push(Wr[r]);for(let r in yn)t(r).observers.push(yn[r]);return e}var Lv=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],r2="dthko",Dv=[16,17,18,20,91,92,224,225],td=6;function nd(n){return Math.max(0,n)*.7+8}function i2(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}var Kp=class{constructor(e,t,r,i){this.view=e,this.startEvent=t,this.style=r,this.mustSelect=i,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=rv(e.contentDOM),this.atoms=e.state.facet(ul).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(Me.allowMultipleSelections)&&s2(e,t),this.dragging=a2(e,t)&&Xv(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&i2(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,r=0,i=0,s=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:i,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=Am(this.view);e.clientX-l.left<=i+td?t=-nd(i-e.clientX):e.clientX+l.right>=o-td&&(t=nd(e.clientX-o)),e.clientY-l.top<=s+td?r=-nd(s-e.clientY):e.clientY+l.bottom>=a-td&&(r=nd(e.clientY-a)),this.setScrollSpeed(t,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,r=_v(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function s2(n,e){let t=n.state.facet(mv);return t.length?t[0](e):ae.mac?e.metaKey:e.ctrlKey}function o2(n,e){let t=n.state.facet(gv);return t.length?t[0](e):ae.mac?!e.altKey:!e.ctrlKey}function a2(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let r=ll(n.root);if(!r||r.rangeCount==0)return!0;let i=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function l2(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,r;t!=n.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(r=mt.get(t))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}var Wr=Object.create(null),yn=Object.create(null),Zv=ae.ie&&ae.ie_version<15||ae.ios&&ae.webkit_version<604;function c2(n){let e=n.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{n.focus(),t.remove(),Iv(n,t.value)},50)}function Md(n,e,t){for(let r of n.facet(e))t=r(t,n);return t}function Iv(n,e){e=Md(n.state,km,e);let{state:t}=n,r,i=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(Jp!=null&&t.selection.ranges.every(l=>l.empty)&&Jp==s.toString()){let l=-1;r=t.changeByRange(c=>{let d=t.doc.lineAt(c.from);if(d.from==l)return{range:c};l=d.from;let h=t.toText((o?s.line(i++).text:e)+t.lineBreak);return{changes:{from:d.from,insert:h},range:z.cursor(c.from+h.length)}})}else o?r=t.changeByRange(l=>{let c=s.line(i++);return{changes:{from:l.from,to:l.to,insert:c.text},range:z.cursor(l.from+c.length)}}):r=t.replaceSelection(s);n.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}yn.scroll=n=>{let e=n.inputState;e.lastScrollTop=n.scrollDOM.scrollTop,e.lastScrollLeft=n.scrollDOM.scrollLeft,ae.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};yn.wheel=yn.mousewheel=n=>{n.inputState.lastWheelEvent=Date.now()};Wr.keydown=(n,e)=>(n.inputState.setSelectionOrigin("select"),e.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);yn.touchstart=(n,e)=>{let t=n.inputState,r=e.targetTouches[0];t.touchActive=!0,t.lastTouchTime=Date.now(),r&&(t.lastTouchX=r.clientX,t.lastTouchY=r.clientY),t.setSelectionOrigin("select.pointer")};yn.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};yn.touchend=(n,e)=>{n.inputState.touchActive=!1};Wr.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let r of n.state.facet(Ov))if(t=r(n,e),t)break;if(!t&&e.button==0&&(t=h2(n,e)),t){let r=!n.hasFocus;n.inputState.startMouseSelection(new Kp(n,e,t,r)),r&&n.observer.ignore(()=>{ov(n.contentDOM);let s=n.root.activeElement;s&&!s.contains(n.contentDOM)&&s.blur()});let i=n.inputState.mouseSelection;if(i)return i.start(e),i.dragging===!1}else n.inputState.setSelectionOrigin("select.pointer");return!1};function QS(n,e,t,r){if(r==1)return z.cursor(e,t);if(r==2)return F_(n.state,e,t);{let i=n.docView.lineAt(e,t),s=n.state.doc.lineAt(i?i.posAtEnd:e),o=i?i.posAtStart:s.from,a=i?i.posAtEnd:s.to;return aDate.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(AS+1)%3:1}function h2(n,e){let t=n.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=Xv(e),i=n.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),i=i.map(s.changes))},get(s,o,a){let l=n.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),c,d=QS(n,l.pos,l.assoc,r);if(t.pos!=l.pos&&!o){let h=QS(n,t.pos,t.assoc,r),u=Math.min(h.from,d.from),f=Math.max(h.to,d.to);d=u1&&(c=u2(i,l.pos))?c:a?i.addRange(d):z.create([d])}}}function u2(n,e){for(let t=0;t=e)return z.create(n.ranges.slice(0,t).concat(n.ranges.slice(t+1)),n.mainIndex==t?0:n.mainIndex-(n.mainIndex>t?1:0))}return null}Wr.dragstart=(n,e)=>{let{selection:{main:t}}=n.state;if(e.target.draggable){let i=n.docView.tile.nearest(e.target);if(i&&i.isWidget()){let s=i.posAtStart,o=s+i.length;(s>=t.to||o<=t.from)&&(t=z.undirectionalRange(s,o))}}let{inputState:r}=n;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",Md(n.state,$m,n.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Wr.dragend=n=>(n.inputState.draggedContent=null,!1);function _S(n,e,t,r){if(t=Md(n.state,km,t),!t)return;let i=n.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=n.inputState,o=r&&s&&o2(n,e)?{from:s.from,to:s.to}:null,a={from:i,insert:t},l=n.state.changes(o?[o,a]:a);n.focus(),n.dispatch({changes:l,selection:{anchor:l.mapPos(i,-1),head:l.mapPos(i,1)},userEvent:o?"move.drop":"input.drop"}),n.inputState.draggedContent=null}Wr.drop=(n,e)=>{if(!e.dataTransfer)return!1;if(n.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let r=Array(t.length),i=0,s=()=>{++i==t.length&&_S(n,e,r.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(r[o]=a.result),s()},a.readAsText(t[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return _S(n,e,r,!0),!0}return!1};Wr.paste=(n,e)=>{if(n.state.readOnly)return!0;n.observer.flush();let t=Zv?null:e.clipboardData;return t?(Iv(n,t.getData("text/plain")||t.getData("text/uri-list")),!0):(c2(n),!1)};function f2(n,e){let t=n.dom.parentNode;if(!t)return;let r=t.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),n.focus()},50)}function p2(n){let e=[],t=[],r=!1;for(let i of n.selection.ranges)i.empty||(e.push(n.sliceDoc(i.from,i.to)),t.push(i));if(!e.length){let i=-1;for(let{from:s}of n.selection.ranges){let o=n.doc.lineAt(s);o.number>i&&(e.push(o.text),t.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),i=o.number}r=!0}return{text:Md(n,$m,e.join(n.lineBreak)),ranges:t,linewise:r}}var Jp=null;Wr.copy=Wr.cut=(n,e)=>{if(!Ha(n.contentDOM,n.observer.selectionRange))return!1;let{text:t,ranges:r,linewise:i}=p2(n.state);if(!t&&!i)return!1;Jp=i?t:null,e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=Zv?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(f2(n,t),!1)};var zv=Tn.define();function Wv(n,e){let t=[];for(let r of n.facet(Sv)){let i=r(n,e);i&&t.push(i)}return t.length?n.update({effects:t,annotations:zv.of(!0)}):null}function Nv(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let t=Wv(n.state,e);t?n.dispatch(t):n.update([])}},10)}yn.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),Nv(n)};yn.blur=n=>{n.observer.clearSelectionRange(),Nv(n)};yn.compositionstart=yn.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};yn.compositionend=n=>{n.observer.editContext||(n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,ae.chrome&&ae.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};yn.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};Wr.beforeinput=(n,e)=>{var t,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(n.inputState.insertingText=e.data,n.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&n.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let a=o[0],l=n.posAtDOM(a.startContainer,a.startOffset),c=n.posAtDOM(a.endContainer,a.endOffset);return Cm(n,{from:l,to:c,insert:n.state.toText(s)},null),!0}}let i;if(ae.chrome&&ae.android&&(i=Lv.find(s=>s.inputType==e.inputType))&&(n.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}return ae.ios&&e.inputType=="deleteContentForward"&&n.observer.flushSoon(),ae.safari&&e.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>yn.compositionend(n,e),20),!1};var ES=new Set;function m2(n){ES.has(n)||(ES.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}var RS=["pre-wrap","normal","pre-line","break-spaces"],Vo=!1;function MS(){Vo=!1}var em=class{constructor(e){this.lineWrapping=e,this.doc=De.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let r=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((t-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return RS.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let r=0;r-1,l=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=r,this.textHeight=i,this.lineLength=s,l){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>dd&&(Vo=!0),this.height=e)}replace(e,t,r){return n.of(r)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,r,i){let s=this,o=r.doc;for(let a=i.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:d,toB:h}=i[a],u=s.lineAt(l,ct.ByPosNoHeight,r.setDoc(t),0,0),f=u.to>=c?u:s.lineAt(c,ct.ByPosNoHeight,r,0,0);for(h+=f.to-c,c=f.to;a>0&&u.from<=i[a-1].toA;)l=i[a-1].fromA,d=i[a-1].fromB,a--,ls*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),r+=1+a.break,i-=a.size}else if(s>i*2){let a=e[r];a.break?e.splice(r,1,a.left,null,a.right):e.splice(r,1,a.left,a.right),r+=2+a.break,s-=a.size}else break;else if(i=s&&o(this.lineAt(0,ct.ByPos,r,i,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,r=!1,i){return i&&i.from<=t&&i.more&&this.setMeasuredHeight(i),this.outdated=!1,this}toString(){return`block(${this.length})`}},gr=class n extends Pd{constructor(e,t,r){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,t){return new Xr(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,r){let i=r[0];return r.length==1&&(i instanceof n||i instanceof Ui&&i.flags&4)&&Math.abs(this.length-i.length)<10?(i instanceof Ui?i=new n(i.length,this.height,this.spaceAbove):i.height=this.height,this.outdated||(i.outdated=!1),i):Un.of(r)}updateHeight(e,t=0,r=!1,i){return i&&i.from<=t&&i.more?this.setMeasuredHeight(i):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},Ui=class n extends Un{constructor(e){super(e,0)}heightMetrics(e,t){let r=e.doc.lineAt(t).number,i=e.doc.lineAt(t+this.length).number,s=i-r+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*s);o=l/s,this.length>s+1&&(a=(this.height-l)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:i,perLine:o,perChar:a}}blockAt(e,t,r,i){let{firstLine:s,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,i);if(t.lineWrapping){let c=i+(e0){let s=r[r.length-1];s instanceof n?r[r.length-1]=new n(s.length+i):r.push(null,new n(i-1))}if(e>0){let s=r[0];s instanceof n?r[0]=new n(e+s.length):r.unshift(new n(e-1),null)}return Un.of(r)}decomposeLeft(e,t){t.push(new n(e-1),null)}decomposeRight(e,t){t.push(null,new n(this.length-e-1))}updateHeight(e,t=0,r=!1,i){let s=t+this.length;if(i&&i.from<=t+this.length&&i.more){let o=[],a=Math.max(t,i.from),l=-1;for(i.from>t&&o.push(new n(i.from-t-1).updateHeight(e,t));a<=s&&i.more;){let d=e.doc.lineAt(a).length;o.length&&o.push(null);let h=i.heights[i.index++],u=0;h<0&&(u=-h,h=i.heights[i.index++]),l==-1?l=h:Math.abs(h-l)>=dd&&(l=-2);let f=new gr(d,h,u);f.outdated=!1,o.push(f),a+=d+1}a<=s&&o.push(null,new n(s-a).updateHeight(e,a));let c=Un.of(o);return(l<0||Math.abs(c.height-this.height)>=dd||Math.abs(l-this.heightMetrics(e,t).perLine)>=dd)&&(Vo=!0),xd(this,c)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},nm=class extends Un{constructor(e,t,r){super(e.length+t+r.length,e.height+r.height,t|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,t,r,i){let s=r+this.left.height;return ea))return c;let d=t==ct.ByPosNoHeight?ct.ByPosNoHeight:ct.ByPos;return l?c.join(this.right.lineAt(a,d,r,o,a)):this.left.lineAt(a,d,r,i,s).join(c)}forEachLine(e,t,r,i,s,o){let a=i+this.left.height,l=s+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,t,r,a,l,o);else{let c=this.lineAt(l,ct.ByPos,r,i,s);e=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,r,a,l,o)}}replace(e,t,r){let i=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-i,t-i,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let a of r)s.push(a);if(e>0&&LS(s,o-1),t=r&&t.push(null)),e>r&&this.right.decomposeLeft(e-r,t)}decomposeRight(e,t){let r=this.left.length,i=r+this.break;if(e>=i)return this.right.decomposeRight(e-i,t);e2*t.size||t.size>2*e.size?Un.of(this.break?[e,null,t]:[e,t]):(this.left=xd(this.left,e),this.right=xd(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,r=!1,i){let{left:s,right:o}=this,a=t+s.length+this.break,l=null;return i&&i.from<=t+s.length&&i.more?l=s=s.updateHeight(e,t,r,i):s.updateHeight(e,t,r),i&&i.from<=a+o.length&&i.more?l=o=o.updateHeight(e,a,r,i):o.updateHeight(e,a,r),l?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function LS(n,e){let t,r;n[e]==null&&(t=n[e-1])instanceof Ui&&(r=n[e+1])instanceof Ui&&n.splice(e-1,3,new Ui(t.length+1+r.length))}var O2=5,rm=class n{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let r=Math.min(t,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof gr?i.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new gr(r-this.pos,-1,0)),this.writtenTo=r,t>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,r){if(e=O2)&&this.addLineDeco(i,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new gr(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let r=new Ui(t-e);return this.oracle.doc.lineAt(e).to==t&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof gr)return e;let t=new gr(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,r){let i=this.ensureLine();i.length+=r,i.collapsed+=r,i.widgetHeight=Math.max(i.widgetHeight,e),i.breaks+=t,this.writtenTo=this.pos=this.pos+r}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof gr)&&!this.isCovered?this.nodes.push(new gr(0,-1,0)):(this.writtenTod.clientHeight||d.scrollWidth>d.clientWidth)&&h.overflow!="visible"){let u=d.getBoundingClientRect();s=Math.max(s,u.left),o=Math.min(o,u.right),a=Math.max(a,u.top),l=Math.min(c==n.parentNode?i.innerHeight:l,u.bottom)}c=h.position=="absolute"||h.position=="fixed"?d.offsetParent:d.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function S2(n){let e=n.getBoundingClientRect(),t=n.ownerDocument.defaultView||window;return e.left0&&e.top0}function v2(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var rl=class{constructor(e,t,r,i){this.from=e,this.to=t,this.size=r,this.displaySize=i}static same(e,t){if(e.length!=t.length)return!1;for(let r=0;rtypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new em(r),this.stateDeco=ZS(t),this.heightMap=Un.empty().applyChanges(this.stateDeco,De.empty,this.heightOracle.setDoc(t.doc),[new zr(0,0,0,t.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=K.set(this.lineGaps.map(i=>i.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let r=0;r<=1;r++){let i=r?t.head:t.anchor;if(!e.some(({from:s,to:o})=>i>=s&&i<=o)){let{from:s,to:o}=this.lineBlockAt(i);e.push(new Lo(s,o))}}return this.viewports=e.sort((r,i)=>r.from-i.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?DS:new om(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(qa(e,this.scaler))})}update(e,t=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=ZS(this.state);let i=e.changedRanges,s=zr.extendWithRanges(i,b2(r,this.stateDeco,e?e.changes:On.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);MS(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Vo)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(wv)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,t=e.contentDOM,r=window.getComputedStyle(t),i=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?qe.RTL:qe.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,d=0;if(a.width&&a.height){let{scaleX:k,scaleY:w}=nv(t,a);(k>.005&&Math.abs(this.scaleX-k)>.005||w>.005&&Math.abs(this.scaleY-w)>.005)&&(this.scaleX=k,this.scaleY=w,c|=16,o=l=!0)}let h=(parseInt(r.paddingTop)||0)*this.scaleY,u=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=u)&&(this.paddingTop=h,this.paddingBottom=u,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(i.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let f=rv(this.view.contentDOM,!1).y;f!=this.scrollParent&&(this.scrollParent=f,this.scrollAnchorHeight=-1,this.scrollOffset=0);let m=this.getScrollOffset();this.scrollOffset!=m&&(this.scrollAnchorHeight=-1,this.scrollOffset=m),this.scrolledToBottom=av(this.scrollParent||e.win);let O=(this.printing?v2:y2)(t,this.paddingTop),S=O.top-this.pixelViewport.top,x=O.bottom-this.pixelViewport.bottom;this.pixelViewport=O;let D=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(D!=this.inView&&(this.inView=D,D&&(l=!0)),!this.inView&&!this.scrollTarget&&!S2(e.dom))return 0;let M=a.width;if((this.contentDOMWidth!=M||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let k=e.docView.measureVisibleLineHeights(this.viewport);if(i.mustRefreshForHeights(k)&&(o=!0),o||i.lineWrapping&&Math.abs(M-this.contentDOMWidth)>i.charWidth){let{lineHeight:w,charWidth:R,textHeight:X}=e.docView.measureTextSize();o=w>0&&i.refresh(s,w,R,X,Math.max(5,M/R),k),o&&(e.docView.minWidth=0,c|=16)}S>0&&x>0?d=Math.max(S,x):S<0&&x<0&&(d=Math.min(S,x)),MS();for(let w of this.viewports){let R=w.from==this.viewport.from?k:e.docView.measureVisibleLineHeights(w);this.heightMap=(o?Un.empty().applyChanges(this.stateDeco,De.empty,this.heightOracle,[new zr(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(i,0,o,new tm(w.from,R))}Vo&&(c|=2)}let Z=!this.viewportIsAppropriate(this.viewport,d)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return Z&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(d,this.scrollTarget),c|=this.updateForViewport()),(c&2||Z)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),i=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new Lo(i.lineAt(o-r*1e3,ct.ByHeight,s,0,0).from,i.lineAt(a+(1-r)*1e3,ct.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(cl.to){let d=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=i.lineAt(c,ct.ByPos,s,0,0),u;t.y=="center"?u=(h.top+h.bottom)/2-d/2:t.y=="start"||t.y=="nearest"&&c=a+Math.max(10,Math.min(r,250)))&&i>o-2*1e3&&s>1,o=i<<1;if(this.defaultTextDirection!=qe.LTR&&!r)return[];let a=[],l=(d,h,u,f)=>{if(h-dd&&xx.from>=u.from&&x.to<=u.to&&Math.abs(x.from-d)x.fromD));if(!S){if(hM.from<=h&&M.to>=h)){let M=t.moveToLineBoundary(z.cursor(h),!1,!0).head;M>d&&(h=M)}let x=this.gapSize(u,d,h,f),D=r||x<2e6?x:2e6;S=new rl(d,h,x,D)}a.push(S)},c=d=>{if(d.length2e6)for(let w of e)w.from>=d.from&&w.fromd.from&&l(d.from,f,d,h),mt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let r=[];$e.spans(t,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let i=0;if(r.length!=this.visibleRanges.length)i=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||qa(this.heightMap.lineAt(e,ct.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||qa(this.heightMap.lineAt(this.scaler.fromDOM(e),ct.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop*this.scaleY:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return qa(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Lo=class{constructor(e,t){this.from=e,this.to=t}};function w2(n,e,t){let r=[],i=n,s=0;return $e.spans(t,n,e,{span(){},point(o,a){o>i&&(r.push({from:i,to:o}),s+=o-i),i=a}},20),i=1)return e[e.length-1].to;let r=Math.floor(n*t);for(let i=0;;i++){let{from:s,to:o}=e[i],a=o-s;if(r<=a)return s+r;r-=a}}function id(n,e){let t=0;for(let{from:r,to:i}of n.ranges){if(e<=i){t+=e-r;break}t+=i-r}return t/n.total}function x2(n,e){for(let t of n)if(e(t))return t}var DS={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}};function ZS(n){let e=n.facet(Rd).filter(r=>typeof r!="function"),t=n.facet(Tm).filter(r=>typeof r!="function");return t.length&&e.push($e.join(t)),e}var om=class n{constructor(e,t,r){let i=0,s=0,o=0;this.viewports=r.map(({from:a,to:l})=>{let c=t.lineAt(a,ct.ByPos,e,0,0).top,d=t.lineAt(l,ct.ByPos,e,0,0).bottom;return i+=d-c,{from:a,to:l,top:c,bottom:d,domTop:0,domBottom:0}}),this.scale=(7e6-i)/(t.height-i);for(let a of this.viewports)a.domTop=o+(a.top-s)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),s=a.bottom}toDOM(e){for(let t=0,r=0,i=0;;t++){let s=tt.from==e.viewports[r].from&&t.to==e.viewports[r].to):!1}};function qa(n,e){if(e.scale==1)return n;let t=e.toDOM(n.top),r=e.toDOM(n.bottom);return new Xr(n.from,n.length,t,r-t,Array.isArray(n._content)?n._content.map(i=>qa(i,e)):n._content)}var sd=oe.define({combine:n=>n.join(" ")}),am=oe.define({combine:n=>n.indexOf(!0)>-1}),lm=mr.newName(),Bv=mr.newName(),Vv=mr.newName(),Fv={"&light":"."+Bv,"&dark":"."+Vv};function cm(n,e,t){return new mr(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,i=>{if(i=="&")return n;if(!t||!t[i])throw new RangeError(`Unsupported selector: ${i}`);return t[i]}):n+" "+r}})}var P2=cm("."+lm,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{background:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 0) no-repeat",backgroundSize:".4em",backgroundPosition:"calc(min(50%, 0px)) center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Fv),k2={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},xp=ae.ie&&ae.ie_version<=11,dm=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new Rp,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let r of t)this.queue.push(r);(ae.ie&&ae.ie_version<=11||ae.ios&&e.composing)&&t.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&ae.android&&e.constructor.EDIT_CONTEXT!==!1&&!(ae.chrome&&ae.chrome_version<126)&&(this.editContext=new hm(e),e.state.facet(xi)&&(e.contentDOM.editContext=this.editContext.editContext)),xp&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,r)=>t!=e[r]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,i=this.selectionRange;if(r.state.facet(xi)?r.root.activeElement!=this.dom:!Ha(this.dom,i))return;let s=i.anchorNode&&r.docView.tile.nearest(i.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(ae.ie&&ae.ie_version<=11||ae.android&&ae.chrome)&&!r.state.selection.main.empty&&i.focusNode&&Ka(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=ll(e.root);if(!t)return!1;let r=ae.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&$2(this.view,t)||t;if(!r||this.selectionRange.eq(r))return!1;let i=Ha(this.dom,r);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Xo(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(i)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,r=-1,i=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(i=!0),t==-1?{from:t,to:r}=o:(t=Math.min(o.from,t),r=Math.max(o.to,r)))}return{from:t,to:r,typeOver:i}}readChange(){let{from:e,to:t,typeOver:r}=this.processRecords(),i=this.selectionChanged&&Ha(this.dom,this.selectionRange);if(e<0&&!i)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new Gp(this.view,e,t,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let r=this.view.state,i=Rv(this.view,t);return this.view.state==r&&(t.domChanged||t.newSel&&!wd(this.view.state.selection,t.newSel.main))&&this.view.update([]),i}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let r=IS(t,e.previousSibling||e.target.previousSibling,-1),i=IS(t,e.nextSibling||e.target.nextSibling,1);return{from:r?t.posAfter(r):t.posAtStart,to:i?t.posBefore(i):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(xi)!=e.state.facet(xi)&&(e.view.contentDOM.editContext=e.state.facet(xi)?this.editContext.editContext:null))}destroy(){var e,t,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let i of this.scrollTargets)i.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function IS(n,e,t){for(;e;){let r=mt.get(e);if(r&&r.parent==n)return r;let i=e.parentNode;e=i!=n.dom?i:t>0?e.nextSibling:e.previousSibling}return null}function XS(n,e){let t=e.startContainer,r=e.startOffset,i=e.endContainer,s=e.endOffset,o=n.docView.domAtPos(n.state.selection.main.anchor,1);return Ka(o.node,o.offset,i,s)&&([t,r,i,s]=[i,s,t,r]),{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}}function $2(n,e){if(e.getComposedRanges){let i=e.getComposedRanges(n.root)[0];if(i)return XS(n,i)}let t=null;function r(i){i.preventDefault(),i.stopImmediatePropagation(),t=i.getTargetRanges()[0]}return n.contentDOM.addEventListener("beforeinput",r,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",r,!0),t?XS(n,t):null}var hm=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let i=e.state.selection.main,{anchor:s,head:o}=i,a=this.toEditorPos(r.updateRangeStart),l=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:a,drifted:!1});let c=l-a>r.text.length;a==this.from&&sthis.to&&(l=s);let d=Mv(e.state.sliceDoc(a,l),r.text,(c?i.from:i.to)-a,c?"end":null);if(!d){let u=z.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));wd(u,i)||e.dispatch({selection:u,userEvent:"select"});return}let h={from:d.from+a,to:d.toA+a,insert:De.of(r.text.slice(d.from,d.toB).split(` +`))};if((ae.mac||ae.android)&&h.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:De.of([r.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let u=this.to-this.from+(h.to-h.from+h.insert.length);Cm(e,h,z.single(this.toEditorPos(r.selectionStart,u),this.toEditorPos(r.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let i=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);o{let i=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{let i=ll(r.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)return;let d=c.length-(o-s);if(i&&o>=i.to)if(i.from==s&&i.to==o&&i.insert.eq(c)){i=this.pendingContextChange=null,t+=d,this.to+=d;return}else i=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=d,this.to+=d;else if(sthis.to||this.to-this.from+c.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=d}t+=d}),i&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(i=>!i.isUserEvent("input.type")&&i.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(r,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},F=class n{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(i=>i.forEach(s=>r(s,this)))||(i=>this.update(i)),this.dispatch=this.dispatch.bind(this),this._root=e.root||y_(e.parent)||document,this.viewState=new kd(this,e.state||Me.create(e)),e.scrollTo&&e.scrollTo.is(ed)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Mo).map(i=>new el(i));for(let i of this.plugins)i.update(this);this.observer=new dm(this),this.inputState=new Hp(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Sd(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof ut?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,r=!1,i,s=this.state;for(let u of e){if(u.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=u.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,a=0,l=null;e.some(u=>u.annotation(zv))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=Wv(s,o),l||(a=1));let c=this.observer.delayedAndroidKey,d=null;if(c?(this.observer.clearDelayedAndroidKey(),d=this.observer.readChange(),(d&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(d=null)):this.observer.clear(),s.facet(Me.phrases)!=this.state.facet(Me.phrases))return this.setState(s);i=bd.create(this,s,e),i.flags|=a;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(h&&(h=h.map(u.changes)),u.scrollIntoView){let{main:f}=u.state.selection,{x:m,y:O}=this.state.facet(n.cursorScrollMargin);h=new Ja(f.empty?f:z.cursor(f.head,f.head>f.anchor?-1:1),"nearest","nearest",O,m)}for(let f of u.effects)f.is(ed)&&(h=f.value.clip(this.state))}this.viewState.update(i,h),this.bidiCache=$d.update(this.bidiCache,i.changes),i.empty||(this.updatePlugins(i),this.inputState.update(i)),t=this.docView.update(i),this.state.facet(Ua)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(i.startState.facet(sd)!=i.state.facet(sd)&&(this.viewState.mustMeasureContent=!0),(t||r||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!i.empty)for(let u of this.state.facet(Zp))try{u(i)}catch(f){jn(this.state,f,"update listener")}(l||d)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),d&&!Rv(this,d)&&c.force&&Xo(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new kd(this,e),this.plugins=e.facet(Mo).map(r=>new el(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new Sd(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Mo),r=e.state.facet(Mo);if(t!=r){let i=[];for(let s of r){let o=t.indexOf(s);if(o<0)i.push(new el(s));else{let a=this.plugins[o];a.mustUpdate=e,i.push(a)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=i,this.pluginMap.clear()}else for(let i of this.plugins)i.mustUpdate=e;for(let i=0;i-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,r=this.viewState.scrollParent,i=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o,scaleY:a}=this.viewState;Math.abs(i-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0){if(av(r||this.win))s=-1,o=this.viewState.heightMap.height/this.viewState.scaleY;else{let m=this.viewState.scrollAnchorAt(i);s=m.from,o=m.top}a=this.viewState.scaleY}this.updateState=1;let c=this.viewState.measure();if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let d=[];c&4||([this.measureRequests,d]=[d,this.measureRequests]);let h=d.map(m=>{try{return m.read(this)}catch(O){return jn(this.state,O),zS}}),u=bd.create(this,this.state,[]),f=!1;u.flags|=c,t?t.flags|=c:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),f=this.docView.update(u),f&&this.docViewUpdate());for(let m=0;m1||O<-1)&&!(ae.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(r==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){i=i+O,r?s<0?r.scrollTop=r.scrollHeight:r.scrollTop+=O:this.win.scrollBy(0,O),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(Zp))l(t)}get themeClasses(){return lm+" "+(this.state.facet(am)?Vv:Bv)+" "+this.state.facet(sd)}updateAttrs(){let e=WS(this,kv,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(xi)?"true":"false",class:"cm-content",style:`${ae.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),WS(this,Qm,t);let r=this.observer.ignore(()=>{let i=yS(this.contentDOM,this.contentAttrs,t),s=yS(this.dom,this.editorAttrs,e);return i||s});return this.editorAttrs=e,this.contentAttrs=t,r}showAnnouncements(e){let t=!0;for(let r of e)for(let i of r.effects)if(i.is(n.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=i.value}}mountStyles(){this.styleModules=this.state.facet(Ua);let e=this.state.facet(n.cspNonce);mr.mount(this.root,this.styleModules.concat(P2).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;tr.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,r){return wp(this,e,kS(this,e,t,r))}moveByGroup(e,t){return wp(this,e,kS(this,e,t,r=>U_(this,e.head,r)))}visualLineSide(e,t){let r=this.bidiSpans(e),i=this.textDirectionAt(e.from),s=r[t?r.length-1:0];return z.cursor(s.side(t,i)+e.from,s.forward(!t,i)?1:-1)}moveToLineBoundary(e,t,r=!0){return j_(this,e,t,r)}moveVertically(e,t,r){return wp(this,e,q_(this,e,t,r))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let r=jp(this,e,t);return r&&r.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),jp(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let r=this.state.doc.lineAt(e),i=this.bidiSpans(r),s=i[br.find(i,e-r.from,-1,t)];return this.docView.coordsAt(e,t,s.dir==qe.RTL)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(vv)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Q2)return fv(e.length);let t=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||uv(s.isolates,r=wS(this,e))))return s.order;r||(r=wS(this,e));let i=Q_(e.text,t,r);return this.bidiCache.push(new $d(e.from,e.to,t,r,!0,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||ae.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{ov(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var r,i,s,o;return ed.of(new Ja(typeof e=="number"?z.cursor(e):e,(r=t.y)!==null&&r!==void 0?r:"nearest",(i=t.x)!==null&&i!==void 0?i:"nearest",(s=t.yMargin)!==null&&s!==void 0?s:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return ed.of(new Ja(z.cursor(r.from),"start","start",r.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return it.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return it.define(()=>({}),{eventObservers:e})}static theme(e,t){let r=mr.newName(),i=[sd.of(r),Ua.of(cm(`.${r}`,e))];return t&&t.dark&&i.push(am.of(!0)),i}static baseTheme(e){return pr.lowest(Ua.of(cm("."+lm,e,Fv)))}static findFromDOM(e){var t;let r=e.querySelector(".cm-content"),i=r&&mt.get(r)||mt.get(e);return((t=i==null?void 0:i.root)===null||t===void 0?void 0:t.view)||null}};F.styleModule=Ua;F.inputHandler=yv;F.clipboardInputFilter=km;F.clipboardOutputFilter=$m;F.scrollHandler=xv;F.focusChangeEffect=Sv;F.perLineTextDirection=vv;F.exceptionSink=bv;F.updateListener=Zp;F.editable=xi;F.mouseSelectionStyle=Ov;F.dragMovesSelection=gv;F.clickAddsSelectionRange=mv;F.decorations=Rd;F.blockWrappers=$v;F.outerDecorations=Tm;F.atomicRanges=ul;F.bidiIsolatedRanges=Qv;F.cursorScrollMargin=oe.define({combine:n=>{let e=5,t=5;for(let r of n)typeof r=="number"?e=t=r:{x:e,y:t}=r;return{x:e,y:t}}});F.scrollMargins=Tv;F.darkTheme=am;F.cspNonce=oe.define({combine:n=>n.length?n[0]:""});F.contentAttributes=Qm;F.editorAttributes=kv;F.lineWrapping=F.contentAttributes.of({class:"cm-lineWrapping"});F.announce=ye.define();var Q2=4096,zS={},$d=class n{constructor(e,t,r,i,s,o){this.from=e,this.to=t,this.dir=r,this.isolates=i,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let r=[],i=e.length?e[e.length-1].dir:qe.LTR;for(let s=Math.max(0,e.length-10);s=0;i--){let s=r[i],o=typeof s=="function"?s(n):s;o&&wm(o,t)}return t}var T2=ae.mac?"mac":ae.windows?"win":ae.linux?"linux":"key";function A2(n,e){let t=n.split(/-(?!$)/),r=t[t.length-1];r=="Space"&&(r=" ");let i,s,o,a;for(let l=0;lr.concat(i),[]))),t}function jv(n,e,t){return Uv(Yv(n.state),e,n,t)}var ji=null,_2=4e3;function E2(n,e=T2){let t=Object.create(null),r=Object.create(null),i=(o,a)=>{let l=r[o];if(l==null)r[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,a,l,c,d)=>{var h,u;let f=t[o]||(t[o]=Object.create(null)),m=a.split(/ (?!$)/).map(x=>A2(x,e));for(let x=1;x{let Z=ji={view:M,prefix:D,scope:o};return setTimeout(()=>{ji==Z&&(ji=null)},_2),!0}]})}let O=m.join(" ");i(O,!1);let S=f[O]||(f[O]={preventDefault:!1,stopPropagation:!1,run:((u=(h=f._any)===null||h===void 0?void 0:h.run)===null||u===void 0?void 0:u.slice())||[]});l&&S.run.push(l),c&&(S.preventDefault=!0),d&&(S.stopPropagation=!0)};for(let o of n){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let d=t[c]||(t[c]=Object.create(null));d._any||(d._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:h}=o;for(let u in d)d[u].run.push(f=>h(f,um))}let l=o[e]||o.key;if(l)for(let c of a)s(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}var um=null;function Uv(n,e,t,r){um=e;let i=pS(e),s=Ir(i,0),o=Yi(s)==i.length&&i!=" ",a="",l=!1,c=!1,d=!1;ji&&ji.view==t&&ji.scope==r&&(a=ji.prefix+" ",Dv.indexOf(e.keyCode)<0&&(c=!0,ji=null));let h=new Set,u=S=>{if(S){for(let x of S.run)if(!h.has(x)&&(h.add(x),x(t)))return S.stopPropagation&&(d=!0),!0;S.preventDefault&&(S.stopPropagation&&(d=!0),c=!0)}return!1},f=n[r],m,O;return f&&(u(f[a+od(i,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(ae.windows&&e.ctrlKey&&e.altKey)&&!(ae.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(m=wi[e.keyCode])&&m!=i?(u(f[a+od(m,e,!0)])||e.shiftKey&&(O=Eo[e.keyCode])!=i&&O!=m&&u(f[a+od(O,e,!1)]))&&(l=!0):o&&e.shiftKey&&u(f[a+od(i,e,!0)])&&(l=!0),!l&&u(f._any)&&(l=!0)),c&&(l=!0),l&&d&&e.stopPropagation(),um=null,l}var Ws=class n{constructor(e,t,r,i,s){this.className=e,this.left=t,this.top=r,this.width=i,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,r){if(r.empty){let i=e.coordsAtPos(r.head,r.assoc||1);if(!i)return[];let s=qv(e);return[new n(t,i.left-s.left,i.top-s.top,null,i.bottom-i.top)]}else return R2(e,t,r)}};function qv(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==qe.LTR?e.left:e.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:e.top-n.scrollDOM.scrollTop*n.scaleY}}function BS(n,e,t,r){let i=n.coordsAtPos(e,t*2);if(!i)return r;let s=n.dom.getBoundingClientRect(),o=(i.top+i.bottom)/2,a=n.posAtCoords({x:s.left+1,y:o}),l=n.posAtCoords({x:s.right-1,y:o});return a==null||l==null?r:{from:Math.max(r.from,Math.min(a,l)),to:Math.min(r.to,Math.max(a,l))}}function R2(n,e,t){if(t.to<=n.viewport.from||t.from>=n.viewport.to)return[];let r=Math.max(t.from,n.viewport.from),i=Math.min(t.to,n.viewport.to),s=n.textDirection==qe.LTR,o=n.contentDOM,a=o.getBoundingClientRect(),l=qv(n),c=o.querySelector(".cm-line"),d=c&&window.getComputedStyle(c),h=a.left+(d?parseInt(d.paddingLeft)+Math.min(0,parseInt(d.textIndent)):0),u=a.right-(d?parseInt(d.paddingRight):0),f=Yp(n,r,1),m=Yp(n,i,-1),O=f.type==Ht.Text?f:null,S=m.type==Ht.Text?m:null;if(O&&(n.lineWrapping||f.widgetLineBreaks)&&(O=BS(n,r,1,O)),S&&(n.lineWrapping||m.widgetLineBreaks)&&(S=BS(n,i,-1,S)),O&&S&&O.from==S.from&&O.to==S.to)return D(M(t.from,t.to,O));{let k=O?M(t.from,null,O):Z(f,!1),w=S?M(null,t.to,S):Z(m,!0),R=[];return(O||f).to<(S||m).from-(O&&S?1:0)||f.widgetLineBreaks>1&&k.bottom+n.defaultLineHeight/2q&&ve.from=B)break;Qe>we&&de(Math.max(Pe,we),k==null&&Pe<=q,Math.min(Qe,B),w==null&&Qe>=pe,G.dir)}if(we=ue.to+1,we>=B)break}return ne.length==0&&de(q,k==null,pe,w==null,n.textDirection),{top:X,bottom:W,horizontal:ne}}function Z(k,w){let R=a.top+(w?k.top:k.bottom);return{top:R,bottom:R,horizontal:[]}}}function M2(n,e){return n.constructor==e.constructor&&n.eq(e)}var fm=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(hd)!=e.state.facet(hd)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,r=e.facet(hd);for(;t!M2(t,this.drawn[r]))){let t=this.dom.firstChild,r=0;for(let i of e)i.update&&t&&i.constructor&&this.drawn[r].constructor&&i.update(t,this.drawn[r])?(t=t.nextSibling,r++):this.dom.insertBefore(i.draw(),t);for(;t;){let i=t.nextSibling;t.remove(),t=i}this.drawn=e,ae.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},hd=oe.define();function Gv(n){return[it.define(e=>new fm(e,n)),hd.of(n)]}var Fo=oe.define({combine(n){return Yn(n,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Ld(n={}){return[Fo.of(n),L2,D2,I2,wv.of(!0)]}function Hv(n){return n.startState.facet(Fo)!=n.state.facet(Fo)}var L2=Gv({above:!0,markers(n){let{state:e}=n,t=e.facet(Fo),r=[];for(let i of e.selection.ranges){let s=i==e.selection.main;if(i.empty||t.drawRangeCursor&&!(s&&ae.ios&&t.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=i.empty?i:z.cursor(i.head,i.assoc);for(let l of Ws.forRange(n,o,a))r.push(l)}}return r},update(n,e){n.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Hv(n);return t&&VS(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){VS(e.state,n)},class:"cm-cursorLayer"});function VS(n,e){e.style.animationDuration=n.facet(Fo).cursorBlinkRate+"ms"}var D2=Gv({above:!1,markers(n){let e=[],{main:t,ranges:r}=n.state.selection;for(let i of r)if(!i.empty)for(let s of Ws.forRange(n,"cm-selectionBackground",i))e.push(s);if(ae.ios&&!t.empty&&n.state.facet(Fo).iosSelectionHandles){for(let i of Ws.forRange(n,"cm-selectionHandle cm-selectionHandle-start",z.cursor(t.from,1)))e.push(i);for(let i of Ws.forRange(n,"cm-selectionHandle cm-selectionHandle-end",z.cursor(t.to,1)))e.push(i)}return e},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||Hv(n)},class:"cm-selectionLayer"}),Z2=ae.gecko&&ae.gecko_version==153?"#ffffff01":"transparent",I2=pr.highest(F.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:`${Z2} !important`},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Kv=ye.define({map(n,e){return n==null?null:e.mapPos(n)}}),Ga=Xe.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,r)=>r.is(Kv)?r.value:t,n)}}),X2=it.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let t=n.state.field(Ga);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(Ga)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,e=n.state.field(Ga),t=e!=null&&n.coordsAtPos(e);if(!t)return null;let r=n.scrollDOM.getBoundingClientRect();return{left:t.left-r.left+n.scrollDOM.scrollLeft*n.scaleX,top:t.top-r.top+n.scrollDOM.scrollTop*n.scaleY,height:t.bottom-t.top}}drawCursor(n){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;n?(this.cursor.style.left=n.left/e+"px",this.cursor.style.top=n.top/t+"px",this.cursor.style.height=n.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(Ga)!=n&&this.view.dispatch({effects:Kv.of(n)})}},{eventObservers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Jv(){return[Ga,X2]}function FS(n,e,t,r,i){e.lastIndex=0;for(let s=n.iterRange(t,r),o=t,a;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;a=e.exec(s.value);)i(o+a.index,a)}function z2(n,e){let t=n.visibleRanges;if(t.length==1&&t[0].from==n.viewport.from&&t[0].to==n.viewport.to)return t;let r=[];for(let{from:i,to:s}of t)i=Math.max(n.state.doc.lineAt(i).from,i-e),s=Math.min(n.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=i?r[r.length-1].to=s:r.push({from:i,to:s});return r}var dl=class{constructor(e){let{regexp:t,decoration:r,decorate:i,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,i)this.addMatch=(a,l,c,d)=>i(d,c,c+a[0].length,a,l);else if(typeof r=="function")this.addMatch=(a,l,c,d)=>{let h=r(a,l,c);h&&d(c,c+a[0].length,h)};else if(r)this.addMatch=(a,l,c,d)=>d(c,c+a[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new Zr,r=t.add.bind(t);for(let{from:i,to:s}of z2(e,this.maxLength))FS(e.state.doc,this.regexp,i,s,(o,a)=>this.addMatch(a,e,o,r));return t.finish()}updateDeco(e,t){let r=1e9,i=-1;return e.docChanged&&e.changes.iterChanges((s,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(r=Math.min(a,r),i=Math.max(l,i))}),e.viewportMoved||i-r>1e3?this.createDeco(e.view):i>-1?this.updateRange(e.view,t.map(e.changes),r,i):t}updateRange(e,t,r,i){for(let s of e.visibleRanges){let o=Math.max(s.from,r),a=Math.min(s.to,i);if(a>=o){let l=e.state.doc.lineAt(o),c=l.tol.from;o--)if(this.boundary.test(l.text[o-1-l.from])){d=o;break}for(;au.push(x.range(O,S));if(l==c)for(this.regexp.lastIndex=d-l.from;(f=this.regexp.exec(l.text))&&f.indexthis.addMatch(S,e,O,m));t=t.update({filterFrom:d,filterTo:h,filter:(O,S)=>Oh,add:u})}}return t}},pm=/x/.unicode!=null?"gu":"g",W2=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,pm),N2={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},Pp=null;function B2(){var n;if(Pp==null&&typeof document!="undefined"&&document.body){let e=document.body.style;Pp=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Pp||!1}var ud=oe.define({combine(n){let e=Yn(n,{render:null,specialChars:W2,addSpecialChars:null});return(e.replaceTabs=!B2())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,pm)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,pm)),e}});function ew(n={}){return[ud.of(n),V2()]}var YS=null;function V2(){return YS||(YS=it.fromClass(class{constructor(n){this.view=n,this.decorations=K.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(ud)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new dl({regexp:n.specialChars,decoration:(e,t,r)=>{let{doc:i}=t.state,s=Ir(e[0],0);if(s==9){let o=i.lineAt(r),a=t.state.tabSize,l=Gt(o.text,a,r-o.from);return K.replace({widget:new gm((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=K.replace({widget:new mm(n,s)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(ud);n.startState.facet(ud)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}var F2="\u2022";function Y2(n){return n>=32?F2:n==10?"\u2424":String.fromCharCode(9216+n)}var mm=class extends Ct{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=Y2(this.code),r=e.state.phrase("Control character")+" "+(N2[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,r,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},gm=class extends Ct{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Dd(){return U2}var j2=K.line({class:"cm-activeLine"}),U2=it.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let r of n.state.selection.ranges){let i=n.lineBlockAt(r.head);i.from>e&&(t.push(j2.range(i.from)),e=i.from)}return K.set(t)}},{decorations:n=>n.decorations});var Om=2e3;function q2(n,e,t){let r=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Om||t.off>Om||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=i;l++){let c=n.doc.line(l);c.length<=a&&s.push(z.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=r;l<=i;l++){let c=n.doc.line(l),d=Kc(c.text,o,n.tabSize,!0);if(d<0)s.push(z.cursor(c.to));else{let h=Kc(c.text,a,n.tabSize);s.push(z.range(c.from+d,c.from+h))}}}return s}function G2(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function jS(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),r=n.state.doc.lineAt(t),i=t-r.from,s=i>Om?-1:i==r.length?G2(n,e.clientX):Gt(r.text,n.state.tabSize,t-r.from);return{line:r.number,col:s,off:i}}function H2(n,e){let t=jS(n,e),r=n.state.selection;return t?{update(i){if(i.docChanged){let s=i.changes.mapPos(i.startState.doc.line(t.line).from),o=i.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},r=r.map(i.changes)}},get(i,s,o){let a=jS(n,i);if(!a)return r;let l=q2(n.state,t,a);return l.length?o?z.create(l.concat(r.ranges)):z.create(l):r}}:null}function Zd(n){let e=(n==null?void 0:n.eventFilter)||(t=>t.altKey&&t.button==0);return F.mouseSelectionStyle.of((t,r)=>e(r)?H2(t,r):null)}var K2={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},J2={style:"cursor: crosshair"};function Id(n={}){let[e,t]=K2[n.key||"Alt"],r=it.fromClass(class{constructor(i){this.view=i,this.isDown=!1}set(i){this.isDown!=i&&(this.isDown=i,this.view.update([]))}},{eventObservers:{keydown(i){this.set(i.keyCode==e||t(i))},keyup(i){(i.keyCode==e||!t(i))&&this.set(!1)},mousemove(i){this.set(t(i))}}});return[r,F.contentAttributes.of(i=>{var s;return!((s=i.plugin(r))===null||s===void 0)&&s.isDown?J2:null})]}var ad="-10000px",Qd=class{constructor(e,t,r,i){this.facet=t,this.createTooltipView=r,this.removeTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,t){var r;let i=e.state.facet(this.facet),s=i.filter(l=>l);if(i===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;lt[c]=l),t.length=a.length),this.input=i,this.tooltips=s,this.tooltipViews=o,!0}};function eE(n){let e=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var kp=oe.define({combine:n=>{var e,t,r;return{position:ae.ios?"absolute":((e=n.find(i=>i.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(i=>i.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((r=n.find(i=>i.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||eE}}}),US=new WeakMap,tw=it.fromClass(class{constructor(n){this.view=n,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(kp);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Qd(n,_m,(t,r)=>this.createTooltip(t,r),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n,this.above);e&&this.observeIntersection();let t=e||n.geometryChanged,r=n.state.facet(kp);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let i of this.manager.tooltipViews)i.dom.style.position=this.position;t=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let i of this.manager.tooltipViews)this.container.appendChild(i.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n,e){let t=n.create(this.view),r=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),n.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let i=document.createElement("div");i.className="cm-tooltip-arrow",t.dom.appendChild(i)}return t.dom.style.position=this.position,t.dom.style.top=ad,t.dom.style.left="0px",this.container.insertBefore(t.dom,r),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var n,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(n=r.destroy)===null||n===void 0||n.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(ae.safari){let o=s.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(n=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:n,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),i=Am(this.view);return{visible:{left:r.left+i.left,top:r.top+i.top,right:r.right-i.right,bottom:r.bottom-i.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(kp).tooltipSpace(this.view),scaleX:n,scaleY:e,makeAbsolute:t}}writeMeasure(n){var e;if(n.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:r,scaleX:i,scaleY:s}=n,o=[];for(let a=0;a=Math.min(t.bottom,r.bottom)||h.rightMath.min(t.right,r.right)+.1)){d.style.top=ad;continue}let f=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,m=f?7:0,O=u.right-u.left,S=(e=US.get(c))!==null&&e!==void 0?e:u.bottom-u.top,x=c.offset||nE,D=this.view.textDirection==qe.LTR,M=u.width>r.right-r.left?D?r.left:r.right-u.width:D?Math.max(r.left,Math.min(h.left-(f?14:0)+x.x,r.right-O)):Math.min(Math.max(r.left,h.left-O+(f?14:0)-x.x),r.right-O),Z=this.above[a];!l.strictSide&&(Z?h.top-S-m-x.yr.bottom)&&Z==r.bottom-h.bottom>h.top-r.top&&(Z=this.above[a]=!Z);let k=(Z?h.top-r.top:r.bottom-h.bottom)-m;if(kM&&X.topw&&(w=Z?X.top-S-2-m:X.bottom+m+2);if(this.position=="absolute"?(d.style.top=(w-n.parent.top)/s+"px",qS(d,(M-n.parent.left)/i)):(d.style.top=w/s+"px",qS(d,M/i)),f){let X=h.left+(D?x.x:-x.x)-(M+14-7);f.style.left=X/i+"px"}c.overlap!==!0&&o.push({left:M,top:w,right:R,bottom:w+S}),d.classList.toggle("cm-tooltip-above",Z),d.classList.toggle("cm-tooltip-below",!Z),c.positioned&&c.positioned(n.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=ad}},{eventObservers:{scroll(){this.maybeMeasure()}}});function qS(n,e){let t=parseInt(n.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(n.style.left=e+"px")}var tE=F.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),nE={x:0,y:0},_m=oe.define({enables:[tw,tE]}),Td=oe.define({combine:n=>n.reduce((e,t)=>e.concat(t),[])}),Ad=class n{static create(e){return new n(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Qd(e,Td,(t,r)=>this.createHostedView(t,r),t=>t.dom.remove())}createHostedView(e,t){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let r of this.manager.tooltipViews){let i=r[e];if(i!==void 0){if(t===void 0)t=i;else if(t!==i)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},rE=_m.compute([Td],n=>{let e=n.facet(Td);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var r;return(r=t.end)!==null&&r!==void 0?r:t.pos})),create:Ad.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),iE=oe.define(),bm=class{constructor(e,t,r,i,s,o){this.view=e,this.source=t,this.field=r,this.locked=i,this.setHover=s,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(e){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eo.bottom||t.xo.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(i)).find(c=>c.from<=i&&c.to>=i),l=a&&a.dir==qe.RTL?-1:1;s=t.x{if(a&&!(Array.isArray(a)&&!a.length)){let l=Array.isArray(a)?a:[a];i&&this.locked.set(l,i),e.dispatch({effects:this.setHover.of(l)})}};if(s&&"then"in s){let a=this.pending={pos:t};s.then(l=>{this.pending==a&&(this.pending=null,o(l))},l=>jn(e.state,l,"hover tooltip"))}else o(s)}get tooltip(){let e=this.view.plugin(tw),t=e?e.manager.tooltips.findIndex(r=>r.create==Ad.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:i,tooltip:s}=this;if(i.length&&!this.locked.has(i)&&s&&!sE(s.dom,e)||this.pending){let{pos:o}=i[0]||this.pending,a=(r=(t=i[0])===null||t===void 0?void 0:t.end)!==null&&r!==void 0?r:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!oE(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length&&!this.locked.has(t)){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=r=>{e.removeEventListener("mouseleave",t);let{active:i}=this;i.length&&!this.locked.has(i)&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},ld=4;function sE(n,e){let{left:t,right:r,top:i,bottom:s}=n.getBoundingClientRect(),o;if(o=n.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();i=Math.min(a.top,i),s=Math.max(a.bottom,s)}return e.clientX>=t-ld&&e.clientX<=r+ld&&e.clientY>=i-ld&&e.clientY<=s+ld}function oE(n,e,t,r,i,s){let o=n.scrollDOM.getBoundingClientRect(),a=n.documentTop+n.documentPadding.top+n.contentHeight;if(o.left>r||o.righti||Math.min(o.bottom,a)=e&&l<=t}function nw(n,e={}){let t=ye.define(),r=new WeakMap,i=Xe.define({create(){return[]},update(o,a){let l=r.get(o);if(o.length&&(e.hideOnChange&&(a.docChanged||a.selection)?o=[]:l&&l(a)?o=[]:e.hideOn&&(o=o.filter(c=>!e.hideOn(a,c)))),a.docChanged&&o.length){let c=[];for(let d of o){let h=a.changes.mapPos(d.pos,-1,Xt.TrackDel);if(h!=null){let u=Object.assign(Object.create(null),d);u.pos=h,u.end!=null&&(u.end=a.changes.mapPos(u.end)),c.push(u)}}o=c}for(let c of a.effects)c.is(t)&&(o=c.value,l=void 0),(c.is(aE)&&!c.value||c.value==i)&&(o=[]);return o.length&&l&&r.set(o,l),o},provide:o=>Td.from(o)}),s=it.define(o=>new bm(o,n,i,r,t,e.hoverTime||300));return{active:i,extension:[i,s,iE.of(s),rE]}}var aE=ye.define();var GS=oe.define({combine(n){let e,t;for(let r of n)e=e||r.topContainer,t=t||r.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Em(n,e){let t=n.plugin(rw),r=t?t.specs.indexOf(e):-1;return r>-1?t.panels[r]:null}var rw=it.fromClass(class{constructor(n){this.input=n.state.facet(hl),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(GS);this.top=new Do(n,!0,e.topContainer),this.bottom=new Do(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(GS);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Do(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Do(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(hl);if(t!=this.input){let r=t.filter(l=>l),i=[],s=[],o=[],a=[];for(let l of r){let c=this.specs.indexOf(l),d;c<0?(d=l(n.view),a.push(d)):(d=this.panels[c],d.update&&d.update(n)),i.push(d),(d.top?s:o).push(d)}this.specs=r,this.panels=i,this.top.sync(s),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let r of this.panels)r.update&&r.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>F.scrollMargins.of(e=>{let t=e.plugin(n);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})}),Do=class{constructor(e,t,r){this.view=e,this.top=t,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=HS(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=HS(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function HS(n){let e=n.nextSibling;return n.remove(),e}var hl=oe.define({enables:rw});function iw(n,e){let t,r=new Promise(o=>t=o),i=o=>lE(o,e,t);n.state.field($p,!1)?n.dispatch({effects:sw.of(i)}):n.dispatch({effects:ye.appendConfig.of($p.init(()=>[i]))});let s=ow.of(i);return{close:s,result:r.then(o=>((n.win.queueMicrotask||(l=>n.win.setTimeout(l,10)))(()=>{n.state.field($p).indexOf(i)>-1&&n.dispatch({effects:s})}),o))}}var $p=Xe.define({create(){return[]},update(n,e){for(let t of e.effects)t.is(sw)?n=[t.value].concat(n):t.is(ow)&&(n=n.filter(r=>r!=t.value));return n},provide:n=>hl.computeN([n],e=>e.field(n))}),sw=ye.define(),ow=ye.define();function lE(n,e,t){let r=e.content?e.content(n,()=>o(null)):null;if(!r){if(r=kt("form"),e.input){let a=kt("input",e.input);/^(text|password|number|email|tel|url)$/.test(a.type)&&a.classList.add("cm-textfield"),a.name||(a.name="input"),r.appendChild(kt("label",(e.label||"")+": ",a))}else r.appendChild(document.createTextNode(e.label||""));r.appendChild(document.createTextNode(" ")),r.appendChild(kt("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let i=r.nodeName=="FORM"?[r]:r.querySelectorAll("form");for(let a=0;a{c.keyCode==27?(c.preventDefault(),o(null)):c.keyCode==13&&(c.preventDefault(),o(l))}),l.addEventListener("submit",c=>{c.preventDefault(),o(l)})}let s=kt("div",r,kt("button",{onclick:()=>o(null),"aria-label":n.state.phrase("close"),class:"cm-dialog-close",type:"button"},["\xD7"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(a){s.contains(s.ownerDocument.activeElement)&&n.focus(),t(a)}return{dom:s,top:e.top,mount:()=>{if(e.focus){let a;typeof e.focus=="string"?a=r.querySelector(e.focus):a=r.querySelector("input")||r.querySelector("button"),a&&"select"in a?a.select():a&&"focus"in a&&a.focus()}}}}var $t=class extends fr{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};$t.prototype.elementClass="";$t.prototype.toDOM=void 0;$t.prototype.mapMode=Xt.TrackBefore;$t.prototype.startSide=$t.prototype.endSide=-1;$t.prototype.point=!0;var fd=oe.define(),cE=oe.define(),dE={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>$e.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},il=oe.define();function Hi(n){return[aw(),il.of(Ue(Ue({},dE),n))]}var ym=oe.define({combine:n=>n.some(e=>e)});function aw(n){let e=[hE];return n&&n.fixed===!1&&e.push(ym.of(!0)),e}var hE=it.fromClass(class{constructor(n){this.view=n,this.domAfter=null,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=n.state.facet(il).map(e=>new Cd(n,e)),this.fixed=!n.state.facet(ym);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(n){if(this.updateGutters(n)){let e=this.prevViewport,t=n.view.viewport,r=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(r<(t.to-t.from)*.8)}if(n.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(ym)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=$e.iter(this.view.state.facet(fd),this.view.viewport.from),r=[],i=this.gutters.map(s=>new vm(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let a of s.type)if(a.type==Ht.Text&&o){Sm(t,r,a.from);for(let l of i)l.line(this.view,a,r);o=!1}else if(a.widget)for(let l of i)l.widget(this.view,a)}else if(s.type==Ht.Text){Sm(t,r,s.from);for(let o of i)o.line(this.view,s,r)}else if(s.widget)for(let o of i)o.widget(this.view,s);for(let s of i)s.finish();n&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(n){let e=n.startState.facet(il),t=n.state.facet(il),r=n.docChanged||n.heightChanged||n.viewportChanged||!$e.eq(n.startState.facet(fd),n.state.facet(fd),n.view.viewport.from,n.view.viewport.to);if(e==t)for(let i of this.gutters)i.update(n)&&(r=!0);else{r=!0;let i=[];for(let s of t){let o=e.indexOf(s);o<0?i.push(new Cd(this.view,s)):(this.gutters[o].update(n),i.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),i.indexOf(s)<0&&s.destroy();for(let s of i)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=i}return r}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:n=>F.scrollMargins.of(e=>{let t=e.plugin(n);if(!t||t.gutters.length==0||!t.fixed)return null;let r=t.dom.offsetWidth*e.scaleX,i=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==qe.LTR?{left:r,right:i}:{right:r,left:i}})});function KS(n){return Array.isArray(n)?n:[n]}function Sm(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}var vm=class{constructor(e,t,r){this.gutter=e,this.height=r,this.i=0,this.cursor=$e.iter(e.markers,t.from)}addElement(e,t,r){let{gutter:i}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==i.elements.length){let a=new _d(e,o,s,r);i.elements.push(a),i.dom.appendChild(a.dom)}else i.elements[this.i].update(e,o,s,r);this.height=t.bottom,this.i++}line(e,t,r){let i=[];Sm(this.cursor,i,t.from),r.length&&(i=i.concat(r));let s=this.gutter.config.lineMarker(e,t,i);s&&i.unshift(s);let o=this.gutter;i.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,i)}widget(e,t){let r=this.gutter.config.widgetMarker(e,t.widget,t),i=r?[r]:null;for(let s of e.state.facet(cE)){let o=s(e,t.widget,t);o&&(i||(i=[])).push(o)}i&&this.addElement(e,t,i)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},Cd=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in t.domEventHandlers)this.dom.addEventListener(r,i=>{let s=i.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let l=s.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=i.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[r](e,a,i)&&i.preventDefault()});this.markers=KS(t.markers(e)),t.initialSpacer&&(this.spacer=new _d(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=KS(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let i=this.config.updateSpacer(this.spacer.markers[0],e);i!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[i])}let r=e.view.viewport;return!$e.eq(this.markers,t,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},_d=class{constructor(e,t,r,i){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,r,i)}update(e,t,r,i){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),uE(this.markers,i)||this.setMarkers(e,i)}setMarkers(e,t){let r="cm-gutterElement",i=this.dom.firstChild;for(let s=0,o=0;;){let a=o,l=ss(a,l,c)||o(a,l,c):o}return r}})}}),sl=class extends $t{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function Qp(n,e){return n.state.facet(Zo).formatNumber(e,n.state)}var mE=il.compute([Zo],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(fE)},lineMarker(e,t,r){return r.some(i=>i.toDOM)?null:new sl(Qp(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,r)=>{for(let i of e.state.facet(pE)){let s=i(e,t,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Zo)!=e.state.facet(Zo),initialSpacer(e){return new sl(Qp(e,JS(e.state.doc.lines)))},updateSpacer(e,t){let r=Qp(t.view,JS(t.view.state.doc.lines));return r==e.number?e:new sl(r)},domEventHandlers:n.facet(Zo).domEventHandlers,side:"before"}));function Xd(n={}){return[Zo.of(n),aw(),mE]}function JS(n){let e=9;for(;e{let e=[],t=-1;for(let r of n.selection.ranges){let i=n.doc.lineAt(r.head).from;i>t&&(t=i,e.push(gE.range(i)))}return $e.of(e)});function lw(){return OE}function cw(n){return it.define(e=>({decorations:n.createDeco(e),update(t){this.decorations=n.updateDeco(t,this.decorations)}}),{decorations:e=>e.decorations})}var bE=K.mark({class:"cm-highlightTab"}),yE=K.mark({class:"cm-highlightSpace"}),SE=cw(new dl({regexp:/\t| /g,decoration:n=>n[0]==" "?bE:yE,boundary:/\S/}));function dw(){return SE}var vE=cw(new dl({regexp:/\s+$/g,decoration:K.mark({class:"cm-trailingSpace"})}));function hw(){return vE}var wE=0,Cn=class{constructor(e,t){this.from=e,this.to=t}},xe=class{constructor(e={}){this.id=wE++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=St.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};xe.closedBy=new xe({deserialize:n=>n.split(" ")});xe.openedBy=new xe({deserialize:n=>n.split(" ")});xe.group=new xe({deserialize:n=>n.split(" ")});xe.isolate=new xe({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});xe.contextHash=new xe({perNode:!0});xe.lookAhead=new xe({perNode:!0});xe.mounted=new xe({perNode:!0});var Ki=class{constructor(e,t,r,i=!1){this.tree=e,this.overlay=t,this.parser=r,this.bracketed=i}static get(e){return e&&e.props&&e.props[xe.mounted.id]}},xE=Object.create(null),St=class n{constructor(e,t,r,i=0){this.name=e,this.props=t,this.id=r,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):xE,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new n(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(xe.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let i of r.split(" "))t[i]=e[r];return r=>{for(let i=r.prop(xe.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?r.name:i[s]];if(o)return o}}}};St.none=new St("",Object.create(null),0,8);var $i=class n{constructor(e){this.types=e;for(let t=0;t0;for(let l=this.cursor(o|We.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=i&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Bm(St.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,i)=>new n(this.type,t,r,i,this.propValues),e.makeTree||((t,r,i)=>new n(St.none,t,r,i)))}static build(e){return kE(e)}};Ee.empty=new Ee(St.none,[],[],0);var Rm=class n{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new n(this.buffer,this.index)}},Ji=class n{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return St.none}toString(){let e=[];for(let t=0;t0));l=o[l+3]);return a}slice(e,t,r){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a=e&&te;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function fl(n,e,t,r){for(var i;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to0?a.length:-1;e!=c;e+=t){let d=a[e],h=l[e]+o.from,u;if(!(!(s&We.EnterBracketed&&d instanceof Ee&&(u=Ki.get(d))&&!u.overlay&&u.bracketed&&r>=h&&r<=h+d.length)&&!yw(i,r,h,h+d.length))){if(d instanceof Ji){if(s&We.ExcludeBuffers)continue;let f=d.findChild(0,d.buffer.length,t,r-h,i);if(f>-1)return new Fs(new Lm(o,d,e,h),null,f)}else if(s&We.IncludeAnonymous||!d.type.isAnonymous||Nm(d)){let f;if(!(s&We.IgnoreMounts)&&(f=Ki.get(d))&&!f.overlay)return new n(f.tree,h,e,o);let m=new n(d,h,e,o);return s&We.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(t<0?d.children.length-1:0,t,r,i,s)}}}if(s&We.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,r=0){let i;if(!(r&We.IgnoreOverlays)&&(i=Ki.get(this._tree))&&i.overlay){let s=e-this.from,o=r&We.EnterBracketed&&i.bracketed;for(let{from:a,to:l}of i.overlay)if((t>0||o?a<=s:a=s:l>s))return new n(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function fw(n,e,t,r){let i=n.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=i.type.is(t),!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function Mm(n,e,t=e.length-1){for(let r=n;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var Lm=class{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i}},Fs=class n extends Nd{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){super(),this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new n(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,r=0){if(r&We.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new n(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new n(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new n(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let o=r.buffer[this.index+1];e.push(r.slice(i,s,o)),t.push(0)}return new Ee(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Sw(n){if(!n.length)return null;let e=0,t=n[0];for(let s=1;st.from||o.to=e){let a=new _n(o.tree,o.overlay[0].from+s.from,-1,s);(i||(i=[r])).push(fl(a,e,t,!1))}}return i?Sw(i):r}var Yo=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~We.EnterBracketed,e instanceof _n)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=r+i.buffer[e+1],this.to=r+i.buffer[e+2],!0}yield(e){return e?e instanceof _n?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&We.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&We.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&We.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:i}=this;if(i){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&We.IncludeAnonymous||a instanceof Ji||!a.type.isAnonymous||Nm(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,r=s+1;break e}i=this.stack[--s]}for(let i=r;i=0;s--){if(s<0)return Mm(this._tree,e,i);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function Nm(n){return n.children.some(e=>e instanceof Ji||!e.type.isAnonymous||Nm(e))}function kE(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=r.types.length}=n,a=Array.isArray(t)?new Rm(t,t.length):t,l=r.types,c=0,d=0;function h(k,w,R,X,W,ne){let{id:de,start:q,end:pe,size:ve}=a,we=d,B=c;if(ve<0)if(a.next(),ve==-1){let Ge=s[de];R.push(Ge),X.push(q-k);return}else if(ve==-3){c=de;return}else if(ve==-4){d=de;return}else throw new RangeError(`Unrecognized record size: ${ve}`);let ue=l[de],G,Pe,Qe=q-k;if(pe-q<=i&&(Pe=S(a.pos-w,W))){let Ge=new Uint16Array(Pe.size-Pe.skip),He=a.pos-Pe.size,Ot=Ge.length;for(;a.pos>He;)Ot=x(Pe.start,Ge,Ot);G=new Ji(Ge,pe-Pe.start,r),Qe=Pe.start-k}else{let Ge=a.pos-ve;a.next();let He=[],Ot=[],me=de>=o?de:-1,nn=0,ir=pe;for(;a.pos>Ge;)me>=0&&a.id==me&&a.size>=0?(a.end<=ir-i&&(m(He,Ot,q,nn,a.end,ir,me,we,B),nn=He.length,ir=a.end),a.next()):ne>2500?u(q,Ge,He,Ot):h(q,Ge,He,Ot,me,ne+1);if(me>=0&&nn>0&&nn-1&&nn>0){let sr=f(ue,B);G=Bm(ue,He,Ot,0,He.length,0,pe-q,sr,sr)}else G=O(ue,He,Ot,pe-q,we-pe,B)}R.push(G),X.push(Qe)}function u(k,w,R,X){let W=[],ne=0,de=-1;for(;a.pos>w;){let{id:q,start:pe,end:ve,size:we}=a;if(we>4)a.next();else{if(de>-1&&pe=0;ve-=3)q[we++]=W[ve],q[we++]=W[ve+1]-pe,q[we++]=W[ve+2]-pe,q[we++]=we;R.push(new Ji(q,W[2]-pe,r)),X.push(pe-k)}}function f(k,w){return(R,X,W)=>{let ne=0,de=R.length-1,q,pe;if(de>=0&&(q=R[de])instanceof Ee){if(!de&&q.type==k&&q.length==W)return q;(pe=q.prop(xe.lookAhead))&&(ne=X[de]+q.length+pe)}return O(k,R,X,W,ne,w)}}function m(k,w,R,X,W,ne,de,q,pe){let ve=[],we=[];for(;k.length>X;)ve.push(k.pop()),we.push(w.pop()+R-W);k.push(O(r.types[de],ve,we,ne-W,q-ne,pe)),w.push(W-R)}function O(k,w,R,X,W,ne,de){if(ne){let q=[xe.contextHash,ne];de=de?[q].concat(de):[q]}if(W>25){let q=[xe.lookAhead,W];de=de?[q].concat(de):[q]}return new Ee(k,w,R,X,de)}function S(k,w){let R=a.fork(),X=0,W=0,ne=0,de=R.end-i,q={size:0,start:0,skip:0};e:for(let pe=R.pos-k;R.pos>pe;){let ve=R.size;if(R.id==w&&ve>=0){q.size=X,q.start=W,q.skip=ne,ne+=4,X+=4,R.next();continue}let we=R.pos-ve;if(ve<0||we=o?4:0,ue=R.start;for(R.next();R.pos>we;){if(R.size<0)if(R.size==-3||R.size==-4)B+=4;else break e;else R.id>=o&&(B+=4);R.next()}W=ue,X+=ve,ne+=B}return(w<0||X==k)&&(q.size=X,q.start=W,q.skip=ne),q.size>4?q:void 0}function x(k,w,R){let{id:X,start:W,end:ne,size:de}=a;if(a.next(),de>=0&&X4){let pe=a.pos-(de-4);for(;a.pos>pe;)R=x(k,w,R)}w[--R]=q,w[--R]=ne-k,w[--R]=W-k,w[--R]=X}else de==-3?c=X:de==-4&&(d=X);return R}let D=[],M=[];for(;a.pos>0;)h(n.start||0,n.bufferStart||0,D,M,-1,0);let Z=(e=n.length)!==null&&e!==void 0?e:D.length?M[0]+D[0].length:0;return new Ee(l[n.topID],D.reverse(),M.reverse(),Z)}var pw=new WeakMap;function Wd(n,e){if(!n.isAnonymous||e instanceof Ji||e.type!=n)return 1;let t=pw.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof Ee)){t=1;break}t+=Wd(n,r)}pw.set(e,t)}return t}function Bm(n,e,t,r,i,s,o,a,l){let c=0;for(let m=r;m=d)break;w+=R}if(M==Z+1){if(w>d){let R=m[Z];f(R.children,R.positions,0,R.children.length,O[Z]+D);continue}h.push(m[Z])}else{let R=O[M-1]+m[M-1].length-k;h.push(Bm(n,m,O,Z,M,k,R,null,l))}u.push(k+D-s)}}return f(e,t,r,i,0),(a||l)(h,u,o)}var jo=class{constructor(){this.map=new WeakMap}setBuffer(e,t,r){let i=this.map.get(e);i||this.map.set(e,i=new Map),i.set(t,r)}getBuffer(e,t){let r=this.map.get(e);return r&&r.get(t)}set(e,t){e instanceof Fs?this.setBuffer(e.context.buffer,e.index,t):e instanceof _n&&this.map.set(e.tree,t)}get(e){return e instanceof Fs?this.getBuffer(e.context.buffer,e.index):e instanceof _n?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},Qi=class n{constructor(e,t,r,i,s=!1,o=!1){this.from=e,this.to=t,this.tree=r,this.offset=i,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],r=!1){let i=[new n(0,e.length,e,0,!1,r)];for(let s of t)s.to>e.length&&i.push(s);return i}static applyChanges(e,t,r=128){if(!t.length)return e;let i=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let d=a=r)for(;o&&o.from=u.from||h<=u.to||c){let f=Math.max(u.from,l)-c,m=Math.min(u.to,h)-c;u=f>=m?null:new n(f,m,u.tree,u.offset+c,a>0,!!d)}if(u&&i.push(u),o.to>h)break;o=snew Cn(i.from,i.to)):[new Cn(0,0)]:[new Cn(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let i=this.startParse(e,t,r);for(;;){let s=i.advance();if(s)return s}}},Zm=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function Fd(n){return(e,t,r,i)=>new zm(e,n,t,r,i)}var Bd=class{constructor(e,t,r,i,s,o){this.parser=e,this.parse=t,this.overlay=r,this.bracketed=i,this.target=s,this.from=o}};function mw(n){if(!n.length||n.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(n))}var Im=class{constructor(e,t,r,i,s,o,a,l){this.parser=e,this.predicate=t,this.mounts=r,this.index=i,this.start=s,this.bracketed=o,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}},Xm=new xe({perNode:!0}),zm=class{constructor(e,t,r,i,s){this.nest=t,this.input=r,this.fragments=i,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let r=this.baseParse.advance();if(!r)return null;if(this.baseParse=null,this.baseTree=r,this.startInner(),this.stoppedAt!=null)for(let i of this.inner)i.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let r=this.baseTree;return this.stoppedAt!=null&&(r=new Ee(r.type,r.children,r.positions,r.length,r.propValues.concat([[Xm,this.stoppedAt]]))),r}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let r=Object.assign(Object.create(null),e.target.props);r[xe.mounted.id]=new Ki(t,e.overlay,e.parser,e.bracketed),e.target.props=r}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)a=!1;else if(e.hasNode(i)){if(t){let c=t.mounts.find(d=>d.frag.from<=i.from&&d.frag.to>=i.to&&d.mount.overlay);if(c)for(let d of c.mount.overlay){let h=d.from+c.pos,u=d.to+c.pos;h>=i.from&&u<=i.to&&!t.ranges.some(f=>f.fromh)&&t.ranges.push({from:h,to:u})}}a=!1}else if(r&&(o=$E(r.ranges,i.from,i.to)))a=o!=2;else if(!i.type.isAnonymous&&(s=this.nest(i,this.input))&&(i.fromnew Cn(h.from-i.from,h.to-i.from)):null,!!s.bracketed,i.tree,d.length?d[0].from:i.from)),s.overlay?d.length&&(r={ranges:d,depth:0,prev:r}):a=!1}}else if(t&&(l=t.predicate(i))&&(l===!0&&(l=new Cn(i.from,i.to)),l.from=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&i.firstChild())t&&t.depth++,r&&r.depth++;else for(;!i.nextSibling();){if(!i.parent())break e;if(t&&!--t.depth){let c=Ow(this.ranges,t.ranges);c.length&&(mw(c),this.inner.splice(t.index,0,new Bd(t.parser,t.parser.startParse(this.input,bw(t.mounts,c),c),t.ranges.map(d=>new Cn(d.from-t.start,d.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}r&&!--r.depth&&(r=r.prev)}}}};function $E(n,e,t){for(let r of n){if(r.from>=t)break;if(r.to>e)return r.from<=e&&r.to>=t?2:1}return 0}function gw(n,e,t,r,i,s){if(e=e&&t.enter(r,1,We.IgnoreOverlays|We.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof Ee)t=t.children[0];else break}return!1}},Wm=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let r=this.curFrag=e[0];this.curTo=(t=r.tree.prop(Xm))!==null&&t!==void 0?t:r.to,this.inner=new Vd(r.tree,-r.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Xm))!==null&&e!==void 0?e:t.to,this.inner=new Vd(t.tree,-t.offset)}}findMounts(e,t){var r;let i=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(r=s.tree)===null||r===void 0?void 0:r.prop(xe.mounted);if(o&&o.parser==t)for(let a=this.fragI;a=s.to)break;l.tree==this.curFrag.tree&&i.push({frag:l,pos:s.from-l.offset,mount:o})}}}return i}};function Ow(n,e){let t=null,r=e;for(let i=1,s=0;i=a)break;l.to<=o||(t||(r=t=e.slice()),l.froma&&t.splice(s+1,0,new Cn(a,l.to))):l.to>a?t[s--]=new Cn(a,l.to):t.splice(s--,1))}}return r}function TE(n,e,t,r){let i=0,s=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let d=i==n.length?1e9:o?n[i].to:n[i].from,h=s==e.length?1e9:a?e[s].to:e[s].from;if(o!=a){let u=Math.max(l,t),f=Math.min(d,h,r);unew Cn(u.from+r,u.to+r)),h=TE(e,d,l,c);for(let u=0,f=l;;u++){let m=u==h.length,O=m?c:h[u].from;if(O>f&&t.push(new Qi(f,O,i.tree,-o,s.from>=f||s.openStart,s.to<=O||s.openEnd)),m)break;f=h[u].to}}else t.push(new Qi(l,c,i.tree,-o,s.from>=o||s.openStart,s.to<=a||s.openEnd))}return t}var AE=0,qn=class n{constructor(e,t,r,i){this.name=e,this.set=t,this.base=r,this.modified=i,this.id=AE++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let r=typeof e=="string"?e:"?";if(e instanceof n&&(t=e),t!=null&&t.base)throw new Error("Can not derive from a modified tag");let i=new n(r,[],null,[]);if(i.set.push(i),t)for(let s of t.set)i.set.push(s);return i}static defineModifier(e){let t=new qd(e);return r=>r.modified.indexOf(t)>-1?r:qd.get(r.base||r,r.modified.concat(t).sort((i,s)=>i.id-s.id))}},CE=0,qd=class n{constructor(e){this.name=e,this.instances=[],this.id=CE++}static get(e,t){if(!t.length)return e;let r=t[0].instances.find(a=>a.base==e&&_E(t,a.modified));if(r)return r;let i=[],s=new qn(e.name,i,e,t);for(let a of t)a.instances.push(s);let o=EE(t);for(let a of e.set)if(!a.modified.length)for(let l of o)i.push(n.get(a,l));return s}};function _E(n,e){return n.length==e.length&&n.every((t,r)=>t==e[r])}function EE(n){let e=[[]];for(let t=0;tr.length-t.length)}function Kt(n){let e=Object.create(null);for(let t in n){let r=n[t];Array.isArray(r)||(r=[r]);for(let i of t.split(" "))if(i){let s=[],o=2,a=i;for(let h=0;;){if(a=="..."&&h>0&&h+3==i.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!u)throw new RangeError("Invalid path: "+i);if(s.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),h+=u[0].length,h==i.length)break;let f=i[h++];if(h==i.length&&f=="!"){o=0;break}if(f!="/")throw new RangeError("Invalid path: "+i);a=i.slice(h)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+i);let d=new js(r,o,l>0?s.slice(0,l):null);e[c]=d.sort(e[c])}}return xw.add(e)}var xw=new xe({combine(n,e){let t,r,i;for(;n||e;){if(!n||e&&n.depth>=e.depth?(i=e,e=e.next):(i=n,n=n.next),t&&t.mode==i.mode&&!i.context&&!t.context)continue;let s=new js(i.tags,i.mode,i.context);t?t.next=s:r=s,t=s}return r}}),js=class{constructor(e,t,r,i){this.tags=e,this.mode=t,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=i;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:r}}function RE(n,e){let t=null;for(let r of n){let i=r.style(e);i&&(t=t?t+" "+i:i)}return t}function Pw(n,e,t,r=0,i=n.length){let s=new Fm(r,Array.isArray(e)?e:[e],t);s.highlightRange(n.cursor(),r,i,"",s.highlighters),s.flush(i)}var Fm=class{constructor(e,t,r){this.at=e,this.highlighters=t,this.span=r,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,r,i,s){let{type:o,from:a,to:l}=e;if(a>=r||l<=t)return;o.isTop&&(s=this.highlighters.filter(f=>!f.scope||f.scope(o)));let c=i,d=Um(e)||js.empty,h=RE(s,d.tags);if(h&&(c&&(c+=" "),c+=h,d.mode==1&&(i+=(i?" ":"")+h)),this.startSpan(Math.max(t,a),c),d.opaque)return;let u=e.tree&&e.tree.prop(xe.mounted);if(u&&u.overlay){let f=e.node.enter(u.overlay[0].from+a,1),m=this.highlighters.filter(S=>!S.scope||S.scope(u.tree.type)),O=e.firstChild();for(let S=0,x=a;;S++){let D=S=M||!e.nextSibling())););if(!D||M>r)break;x=D.to+a,x>t&&(this.highlightRange(f.cursor(),Math.max(t,D.from+a),Math.min(r,x),"",m),this.startSpan(Math.min(r,x),c))}O&&e.parent()}else if(e.firstChild()){u&&(i="");do if(!(e.to<=t)){if(e.from>=r)break;this.highlightRange(e,t,r,i,s),this.startSpan(Math.min(r,e.to),c)}while(e.nextSibling());e.parent()}}};function Um(n){let e=n.type.prop(xw);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}var se=qn.define,Yd=se(),es=se(),vw=se(es),ww=se(es),ts=se(),jd=se(ts),Vm=se(ts),ni=se(),Ys=se(ni),ei=se(),ti=se(),Ym=se(),pl=se(Ym),Ud=se(),g={comment:Yd,lineComment:se(Yd),blockComment:se(Yd),docComment:se(Yd),name:es,variableName:se(es),typeName:vw,tagName:se(vw),propertyName:ww,attributeName:se(ww),className:se(es),labelName:se(es),namespace:se(es),macroName:se(es),literal:ts,string:jd,docString:se(jd),character:se(jd),attributeValue:se(jd),number:Vm,integer:se(Vm),float:se(Vm),bool:se(ts),regexp:se(ts),escape:se(ts),color:se(ts),url:se(ts),keyword:ei,self:se(ei),null:se(ei),atom:se(ei),unit:se(ei),modifier:se(ei),operatorKeyword:se(ei),controlKeyword:se(ei),definitionKeyword:se(ei),moduleKeyword:se(ei),operator:ti,derefOperator:se(ti),arithmeticOperator:se(ti),logicOperator:se(ti),bitwiseOperator:se(ti),compareOperator:se(ti),updateOperator:se(ti),definitionOperator:se(ti),typeOperator:se(ti),controlOperator:se(ti),punctuation:Ym,separator:se(Ym),bracket:pl,angleBracket:se(pl),squareBracket:se(pl),paren:se(pl),brace:se(pl),content:ni,heading:Ys,heading1:se(Ys),heading2:se(Ys),heading3:se(Ys),heading4:se(Ys),heading5:se(Ys),heading6:se(Ys),contentSeparator:se(ni),list:se(ni),quote:se(ni),emphasis:se(ni),strong:se(ni),link:se(ni),monospace:se(ni),strikethrough:se(ni),inserted:se(),deleted:se(),changed:se(),invalid:se(),meta:Ud,documentMeta:se(Ud),annotation:se(Ud),processingInstruction:se(Ud),definition:qn.defineModifier("definition"),constant:qn.defineModifier("constant"),function:qn.defineModifier("function"),standard:qn.defineModifier("standard"),local:qn.defineModifier("local"),special:qn.defineModifier("special")};for(let n in g){let e=g[n];e instanceof qn&&(e.name=n)}var QN=jm([{tag:g.link,class:"tok-link"},{tag:g.heading,class:"tok-heading"},{tag:g.emphasis,class:"tok-emphasis"},{tag:g.strong,class:"tok-strong"},{tag:g.keyword,class:"tok-keyword"},{tag:g.atom,class:"tok-atom"},{tag:g.bool,class:"tok-bool"},{tag:g.url,class:"tok-url"},{tag:g.labelName,class:"tok-labelName"},{tag:g.inserted,class:"tok-inserted"},{tag:g.deleted,class:"tok-deleted"},{tag:g.literal,class:"tok-literal"},{tag:g.string,class:"tok-string"},{tag:g.number,class:"tok-number"},{tag:[g.regexp,g.escape,g.special(g.string)],class:"tok-string2"},{tag:g.variableName,class:"tok-variableName"},{tag:g.local(g.variableName),class:"tok-variableName tok-local"},{tag:g.definition(g.variableName),class:"tok-variableName tok-definition"},{tag:g.special(g.variableName),class:"tok-variableName2"},{tag:g.definition(g.propertyName),class:"tok-propertyName tok-definition"},{tag:g.typeName,class:"tok-typeName"},{tag:g.namespace,class:"tok-namespace"},{tag:g.className,class:"tok-className"},{tag:g.macroName,class:"tok-macroName"},{tag:g.propertyName,class:"tok-propertyName"},{tag:g.operator,class:"tok-operator"},{tag:g.comment,class:"tok-comment"},{tag:g.meta,class:"tok-meta"},{tag:g.invalid,class:"tok-invalid"},{tag:g.punctuation,class:"tok-punctuation"}]);var qm,Ai=new xe;function Uo(n){return oe.define({combine:n?e=>e.concat(n):void 0})}var Jd=new xe,cn=class{constructor(e,t,r=[],i=""){this.data=e,this.name=i,Me.prototype.hasOwnProperty("tree")||Object.defineProperty(Me.prototype,"tree",{get(){return ze(this)}}),this.parser=t,this.extension=[ri.of(this),Me.languageData.of((s,o,a)=>{let l=kw(s,o,a),c=l.type.prop(Ai);if(!c)return[];let d=s.facet(c),h=l.type.prop(Jd);if(h){let u=l.resolve(o-l.from,a);for(let f of h)if(f.test(u,s)){let m=s.facet(f.facet);return f.type=="replace"?m:m.concat(d)}}return d})].concat(r)}isActiveAt(e,t,r=-1){return kw(e,t,r).type.prop(Ai)==this.data}findRegions(e){let t=e.facet(ri);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let r=[],i=(s,o)=>{if(s.prop(Ai)==this.data){r.push({from:o,to:o+s.length});return}let a=s.prop(xe.mounted);if(a){if(a.tree.prop(Ai)==this.data){if(a.overlay)for(let l of a.overlay)r.push({from:l.from+o,to:l.to+o});else r.push({from:o,to:o+s.length});return}else if(a.overlay){let l=r.length;if(i(a.tree,a.overlay[0].from+o),r.length>l)return}}for(let l=0;lr.isTop?t:void 0)]}),e.name)}configure(e,t){return new n(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function ze(n){let e=n.field(cn.state,!1);return e?e.tree:Ee.empty}var Jm=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let r=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-r,t-r)}},ml=null,Us=class n{constructor(e,t,r=[],i,s,o,a,l){this.parser=e,this.state=t,this.fragments=r,this.tree=i,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,r){return new n(e,t,[],Ee.empty,0,r,[],null)}startParse(){return this.parser.startParse(new Jm(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Ee.empty&&this.isDone(t!=null?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let i=Date.now()+e;e=()=>Date.now()>i}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Qi.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=ml;ml=this;try{return e()}finally{ml=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=$w(e,t.from,t.to);return e}changes(e,t){let{fragments:r,tree:i,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,d,h,u)=>l.push({fromA:c,toA:d,fromB:h,toB:u})),r=Qi.applyChanges(r,l),i=Ee.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let d=e.mapPos(c.from,1),h=e.mapPos(c.to,-1);de.from&&(this.fragments=$w(this.fragments,i,s),this.skipped.splice(r--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Ti{createParse(t,r,i){let s=i[0].from,o=i[i.length-1].to;return{parsedPos:s,advance(){let l=ml;if(l){for(let c of i)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new Ee(St.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return ml}};function $w(n,e,t){return Qi.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}var Ol=class n{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,r)||t.takeTree(),new n(t)}static init(e){let t=Math.min(3e3,e.doc.length),r=Us.create(e.facet(ri).parser,e,{from:0,to:t});return r.work(20,t)||r.takeTree(),new n(r)}};cn.state=Xe.define({create:Ol.init,update(n,e){for(let t of e.effects)if(t.is(cn.setState))return t.value;return e.startState.facet(ri)!=e.state.facet(ri)?Ol.init(e.state):n.apply(e)}});var Lw=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(Lw=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var Gm=typeof navigator!="undefined"&&(!((qm=navigator.scheduling)===null||qm===void 0)&&qm.isInputPending)?()=>navigator.scheduling.isInputPending():null,ME=it.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(cn.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(cn.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Lw(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndi+1e3,l=s.context.work(()=>Gm&&Gm()||Date.now()>o,i+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:cn.setState.of(new Ol(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>jn(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),ri=oe.define({combine(n){return n.length?n[0]:null},enables:n=>[cn.state,ME,F.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})]}),Ye=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},bl=class n{constructor(e,t,r,i,s,o=void 0){this.name=e,this.alias=t,this.extensions=r,this.filename=i,this.loadFunc=s,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:r}=e;if(!t){if(!r)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(r)}return new n(e.name,(e.alias||[]).concat(e.name).map(i=>i.toLowerCase()),e.extensions||[],e.filename,t,r)}static matchFilename(e,t){for(let i of e)if(i.filename&&i.filename.test(t))return i;let r=/\.([^.]+)$/.exec(t);if(r){for(let i of e)if(i.extensions.indexOf(r[1])>-1)return i}return null}static matchLanguageName(e,t,r=!0){t=t.toLowerCase();for(let i of e)if(i.alias.some(s=>s==t))return i;if(r)for(let i of e)for(let s of i.alias){let o=t.indexOf(s);if(o>-1&&(s.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+s.length])))return i}return null}},lg=oe.define(),yr=oe.define({combine:n=>{if(!n.length)return" ";let e=n[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return e}});function ii(n){let e=n.facet(yr);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function qo(n,e){let t="",r=n.tabSize,i=n.facet(yr)[0];if(i==" "){for(;e>=r;)t+=" ",e-=r;i=" "}for(let s=0;s=e?LE(n,t,e):null}var qs=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=ii(e)}lineAt(e,t=1){let r=this.state.doc.lineAt(e),{simulateBreak:i,simulateDoubleBreak:s}=this.options;return i!=null&&i>=r.from&&i<=r.to?s&&i==e?{text:"",from:e}:(t<0?i-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,t=e.length){return Gt(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:r,from:i}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(i);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},En=new xe;function LE(n,e,t){let r=e.resolveStack(t),i=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(i!=r.node){let s=[];for(let o=i;o&&!(o.fromr.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return Dw(r,n,t)}function Dw(n,e,t){for(let r=n;r;r=r.next){let i=ZE(r.node);if(i)return i(eg.create(e,t,r))}return 0}function DE(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function ZE(n){let e=n.type.prop(En);if(e)return e;let t=n.firstChild,r;if(t&&(r=t.type.prop(xe.closedBy))){let i=n.lastChild,s=i&&r.indexOf(i.name)>-1;return o=>Zw(o,!0,1,void 0,s&&!DE(o)?i.from:void 0)}return n.parent==null?IE:null}function IE(){return 0}var eg=class n extends qs{constructor(e,t,r){super(e.state,e.options),this.base=e,this.pos=t,this.context=r}get node(){return this.context.node}static create(e,t,r){return new n(e,t,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(t.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(XE(r,e))break;t=this.state.doc.lineAt(r.from)}return this.lineIndent(t.from)}continue(){return Dw(this.context.next,this.base,this.pos)}};function XE(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function zE(n){let e=n.node,t=e.childAfter(e.from),r=e.lastChild;if(!t)return null;let i=n.options.simulateBreak,s=n.state.doc.lineAt(t.from),o=i==null||i<=s.from?s.to:Math.min(s.to,i);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==r)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function Go({closing:n,align:e=!0,units:t=1}){return r=>Zw(r,e,t,n)}function Zw(n,e,t,r,i){let s=n.textAfter,o=s.match(/^\s*/)[0].length,a=r&&s.slice(o,o+r.length)==r||i==n.pos+o,l=e?zE(n):null;return l?a?n.column(l.from):n.column(l.to):n.baseIndent+(a?0:n.unit*t)}var Iw=n=>n.baseIndent;function Gn({except:n,units:e=1}={}){return t=>{let r=n&&n.test(t.textAfter);return t.baseIndent+(r?0:e*t.unit)}}var WE=200;function Xw(){return Me.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let t=n.newDoc,{head:r}=n.newSelection.main,i=t.lineAt(r);if(r>i.from+WE)return n;let s=t.sliceString(i.from,r);if(!e.some(c=>c.test(s)))return n;let{state:o}=n,a=-1,l=[];for(let{head:c}of o.selection.ranges){let d=o.doc.lineAt(c);if(d.from==a)continue;a=d.from;let h=eh(o,d.from);if(h==null)continue;let u=/^\s*/.exec(d.text)[0],f=qo(o,h);u!=f&&l.push({from:d.from,to:d.from+u.length,insert:f})}return l.length?[n,{changes:l,sequential:!0}]:n})}var cg=oe.define(),dn=new xe;function Ft(n){let e=n.firstChild,t=n.lastChild;return e&&e.tot)continue;if(s&&a.from=e&&c.to>t&&(s=c)}}return s}function BE(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}function Qw(n,e,t){for(let r of n.facet(cg)){let i=r(n,e,t);if(i)return i}return NE(n,e,t)}function zw(n,e){let t=e.mapPos(n.from,1),r=e.mapPos(n.to,-1);return t>=r?void 0:{from:t,to:r}}var Ww=ye.define({map:zw}),dg=ye.define({map:zw});var Gd=Xe.define({create(){return K.none},update(n,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((r,i)=>n=Tw(n,r,i)),n=n.map(e.changes);let t=[];for(let r of e.effects)r.is(Ww)&&!VE(n,r.value.from,r.value.to)?t.push(r.value):r.is(dg)&&(n=n.update({filter:(i,s)=>r.value.from!=i||r.value.to!=s,filterFrom:r.value.from,filterTo:r.value.to}));if(t.length){let{preparePlaceholder:r}=e.state.facet(hg),i=t.map(s=>(r?K.replace({widget:new ng(r(e.state,s))}):Aw).range(s.from,s.to));n=n.update({add:i})}return e.selection&&(n=Tw(n,e.selection.main.head)),n},provide:n=>F.decorations.from(n),toJSON(n,e){let t=[];return n.between(0,e.doc.length,(r,i)=>{t.push(r,i)}),t},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{ie&&(r=!0)}),r?n.update({filterFrom:e,filterTo:t,filter:(i,s)=>i>=t||s<=e}):n}function tg(n,e,t){var r;let i=null;return(r=n.field(Gd,!1))===null||r===void 0||r.between(e,t,(s,o)=>{(!i||i.from>s)&&(i={from:s,to:o})}),i}function VE(n,e,t){let r=!1;return n.between(e,e,(i,s)=>{i==e&&s==t&&(r=!0)}),r}var FE={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},hg=oe.define({combine(n){return Yn(n,FE)}});function YE(n){let e=[Gd,UE];return n&&e.push(hg.of(n)),e}function Nw(n,e){let{state:t}=n,r=t.facet(hg),i=o=>{let a=n.lineBlockAt(n.posAtDOM(o.target)),l=tg(n.state,a.from,a.to);l&&n.dispatch({effects:dg.of(l)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(n,i,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=i,s}var Aw=K.replace({widget:new class extends Ct{toDOM(n){return Nw(n,null)}}}),ng=class extends Ct{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Nw(e,this.value)}},jE={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},gl=class extends $t{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function Bw(n={}){let e=Ue(Ue({},jE),n),t=new gl(e,!0),r=new gl(e,!1),i=it.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(ri)!=o.state.facet(ri)||o.startState.field(Gd,!1)!=o.state.field(Gd,!1)||ze(o.startState)!=ze(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new Zr;for(let l of o.viewportLineBlocks){let c=tg(o.state,l.from,l.to)?r:Qw(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:s}=e;return[i,Hi({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(i))===null||a===void 0?void 0:a.markers)||$e.empty},initialSpacer(){return new gl(e,!1)},domEventHandlers:zi(Ue({},s),{click:(o,a,l)=>{if(s.click&&s.click(o,a,l))return!0;let c=tg(o.state,a.from,a.to);if(c)return o.dispatch({effects:dg.of(c)}),!0;let d=Qw(o.state,a.from,a.to);return d?(o.dispatch({effects:Ww.of(d)}),!0):!1}})}),YE()]}var UE=F.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),ns=class n{constructor(e,t){this.specs=e;let r;function i(a){let l=mr.newName();return(r||(r=Object.create(null)))["."+l]=a,l}let s=typeof t.all=="string"?t.all:t.all?i(t.all):void 0,o=t.scope;this.scope=o instanceof cn?a=>a.prop(Ai)==o.data:o?a=>a==o:void 0,this.style=jm(e.map(a=>({tag:a.tag,class:a.class||i(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=r?new mr(r):null,this.themeType=t.themeType}static define(e,t){return new n(e,t||{})}},rg=oe.define(),Vw=oe.define({combine(n){return n.length?[n[0]]:null}});function Hm(n){let e=n.facet(rg);return e.length?e:n.facet(Vw)}function th(n,e){let t=[qE],r;return n instanceof ns&&(n.module&&t.push(F.styleModule.of(n.module)),r=n.themeType),e!=null&&e.fallback?t.push(Vw.of(n)):r?t.push(rg.computeN([F.darkTheme],i=>i.facet(F.darkTheme)==(r=="dark")?[n]:[])):t.push(rg.of(n)),t}var ig=class{constructor(e){this.markCache=Object.create(null),this.tree=ze(e.state),this.decorations=this.buildDeco(e,Hm(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ze(e.state),r=Hm(e.state),i=r!=Hm(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return K.none;let r=new Zr;for(let{from:i,to:s}of e.visibleRanges)Pw(this.tree,t,(o,a,l)=>{r.add(o,a,this.markCache[l]||(this.markCache[l]=K.mark({class:l})))},i,s);return r.finish()}},qE=pr.high(it.fromClass(ig,{decorations:n=>n.decorations})),LN=ns.define([{tag:g.meta,color:"#404740"},{tag:g.link,textDecoration:"underline"},{tag:g.heading,textDecoration:"underline",fontWeight:"bold"},{tag:g.emphasis,fontStyle:"italic"},{tag:g.strong,fontWeight:"bold"},{tag:g.strikethrough,textDecoration:"line-through"},{tag:g.keyword,color:"#708"},{tag:[g.atom,g.bool,g.url,g.contentSeparator,g.labelName],color:"#219"},{tag:[g.literal,g.inserted],color:"#164"},{tag:[g.string,g.deleted],color:"#a11"},{tag:[g.regexp,g.escape,g.special(g.string)],color:"#e40"},{tag:g.definition(g.variableName),color:"#00f"},{tag:g.local(g.variableName),color:"#30a"},{tag:[g.typeName,g.namespace],color:"#085"},{tag:g.className,color:"#167"},{tag:[g.special(g.variableName),g.macroName],color:"#256"},{tag:g.definition(g.propertyName),color:"#00c"},{tag:g.comment,color:"#940"},{tag:g.invalid,color:"#f00"}]),GE=F.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Fw=1e4,Yw="()[]{}",jw=oe.define({combine(n){return Yn(n,{afterCursor:!0,brackets:Yw,maxScanDistance:Fw,renderMatch:JE})}}),HE=K.mark({class:"cm-matchingBracket"}),KE=K.mark({class:"cm-nonmatchingBracket"});function JE(n){let e=[],t=n.matched?HE:KE;return e.push(t.range(n.start.from,n.start.to)),n.end&&e.push(t.range(n.end.from,n.end.to)),e}function Cw(n){let e=[],t=n.facet(jw);for(let r of n.selection.ranges){if(!r.empty)continue;let i=Nr(n,r.head,-1,t)||r.head>0&&Nr(n,r.head-1,1,t)||t.afterCursor&&(Nr(n,r.head,1,t)||r.headn.decorations}),tR=[eR,GE];function Uw(n={}){return[jw.of(n),tR]}var ug=new xe;function sg(n,e,t){let r=n.prop(e<0?xe.openedBy:xe.closedBy);if(r)return r;if(n.name.length==1){let i=t.indexOf(n.name);if(i>-1&&i%2==(e<0?1:0))return[t[i+e]]}return null}function og(n){let e=n.type.prop(ug);return e?e(n.node):n}function Nr(n,e,t,r={}){let i=r.maxScanDistance||Fw,s=r.brackets||Yw,o=ze(n),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=sg(l.type,t,s);if(c&&l.from0?e>=d.from&&ed.from&&e<=d.to))return nR(n,e,t,l,d,c,s)}}return rR(n,e,t,o,a.type,i,s)}function nR(n,e,t,r,i,s,o){let a=r.parent,l={from:i.from,to:i.to},c=0,d=a==null?void 0:a.cursor();if(d&&(t<0?d.childBefore(r.from):d.childAfter(r.to)))do if(t<0?d.to<=r.from:d.from>=r.to){if(c==0&&s.indexOf(d.type.name)>-1&&d.from0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},d=n.doc.iterRange(e,t>0?n.doc.length:0),h=0;for(let u=0;!d.next().done&&u<=s;){let f=d.value;t<0&&(u+=f.length);let m=e+u*t;for(let O=t>0?0:f.length-1,S=t>0?f.length:-1;O!=S;O+=t){let x=o.indexOf(f[O]);if(!(x<0||r.resolveInner(m+O,1).type!=i))if(x%2==0==t>0)h++;else{if(h==1)return{start:c,end:{from:m+O,to:m+O+1},matched:x>>1==l>>1};h--}}t>0&&(u+=f.length)}return d.done?{start:c,matched:!1}:null}function _w(n,e,t,r=0,i=0){e==null&&(e=n.search(/[^\s\u00a0]/),e==-1&&(e=n.length));let s=i;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosr?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return i(s)==i(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let i=this.string.slice(this.pos).match(e);return i&&i.index>0?null:(i&&t!==!1&&(this.pos+=i[0].length),i)}}current(){return this.string.slice(this.start,this.pos)}};function iR(n){return{name:n.name||"",token:n.token,blankLine:n.blankLine||(()=>{}),startState:n.startState||(()=>!0),copyState:n.copyState||sR,indent:n.indent||(()=>null),languageData:n.languageData||{},tokenTable:n.tokenTable||pg,mergeTokens:n.mergeTokens!==!1}}function sR(n){if(typeof n!="object")return n;let e={};for(let t in n){let r=n[t];e[t]=r instanceof Array?r.slice():r}return e}var Ew=new WeakMap,zt=class n extends cn{constructor(e){let t=Uo(e.languageData),r=iR(e),i,s=new class extends Ti{createParse(o,a,l){return new ag(i,o,a,l)}};super(t,s,[],e.name),this.topNode=cR(t,this),i=this,this.streamParser=r,this.stateAfter=new xe({perNode:!0}),this.tokenTable=e.tokenTable?new Kd(r.tokenTable):lR}static define(e){return new n(e)}getIndent(e){let t,{overrideIndentation:r}=e.options;r&&(t=Ew.get(e.state),t!=null&&t1e4)return null;for(;s=r&&t+e.length<=i&&e.prop(n.stateAfter);if(s)return{state:n.streamParser.copyState(s),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let a=e.children[o],l=t+e.positions[o],c=a instanceof Ee&&l=e.length)return e;!i&&t==0&&e.type==n.topNode&&(i=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],a=e.children[s],l;if(ot&&fg(n,s.tree,0-s.offset,t,a),c;if(l&&l.pos<=r&&(c=qw(n,s.tree,t+s.offset,l.pos+s.offset,!1)))return{state:l.state,tree:c}}return{state:n.streamParser.startState(i?ii(i):4),tree:Ee.empty}}var ag=class{constructor(e,t,r,i){this.lang=e,this.input=t,this.fragments=r,this.ranges=i,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=i[i.length-1].to;let s=Us.get(),o=i[0].from,{state:a,tree:l}=oR(e,r,o,this.to,s==null?void 0:s.state);this.state=a,this.parsedPos=this.chunkStart=o+l.length;for(let c=0;cc.from<=s.viewport.from&&c.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(ii(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=Us.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),r=Math.min(t,this.chunkStart+512);for(e&&(r=Math.min(r,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` `&&(t="");else{let r=t.indexOf(` -`);r>-1&&(t=t.slice(0,r))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),r=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=r||(t=t.slice(0,s-(r-t.length)),i++,i==this.ranges.length))break;let o=this.ranges[i].from,a=this.lineAfter(o);t+=a,r=o+a.length}return{line:t,end:r}}skipGapsTo(e,t,r){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(r>0?i>s:i>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-i}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){i=this.skipGapsTo(t,i,1),t+=i;let a=this.chunk.length;i=this.skipGapsTo(r,i,-1),r+=i,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=r:this.chunk.push(e,t,r,s),i}parseLine(e){let{line:t,end:r}=this.nextLine(),i=0,{streamParser:s}=this.lang,o=new Hd(t,e?e.state.tabSize:4,e?ii(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=Gw(s.token,o,this.state);if(a&&(i=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,i)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPose.start)return i}throw new Error("Stream parser failed to advance stream.")}var pg=Object.create(null),yl=[St.none],sR=new $i(yl),Rw=[],Mw=Object.create(null),Hw=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Hw[n]=Kw(pg,e);var Kd=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Hw)}resolve(e){return e?this.table[e]||(this.table[e]=Kw(this.extra,e)):0}},oR=new Kd(pg);function Km(n,e){Rw.indexOf(n)>-1||(Rw.push(n),console.warn(e))}function Kw(n,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=n[c]||g[c];d?typeof d=="function"?l.length?l=l.map(d):Km(c,`Modifier ${c} used at start of tag`):l.length?Km(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:Km(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),i=r+" "+t.map(a=>a.id),s=Mw[i];if(s)return s.id;let o=Mw[i]=St.define({id:yl.length,name:r,props:[Kt({[r]:t})]});return yl.push(o),o.id}function aR(n,e){let t=St.define({id:yl.length,name:"Document",props:[Ai.add(()=>n),En.add(()=>r=>e.getIndent(r))],top:!0});return yl.push(t),t}var MN={rtl:K.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:qe.RTL}),ltr:K.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:qe.LTR}),auto:K.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var nh=class{constructor(e,t,r,i){this.state=e,this.pos=t,this.explicit=r,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ze(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),r=Math.max(t.from,this.pos-250),i=t.text.slice(r-t.from,this.pos-t.from),s=i.search(cR(e,!1));return s<0?null:{from:r+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}};function Jw(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function lR(n){let e=Object.create(null),t=Object.create(null);for(let{label:i}of n){e[i[0]]=!0;for(let s=1;stypeof i=="string"?{label:i}:i),[t,r]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:lR(e);return i=>{let s=i.matchBefore(r);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}function ix(n,e){return t=>{for(let r=ze(t.state).resolveInner(t.pos,-1);r;r=r.parent){if(n.indexOf(r.name)>-1)return null;if(r.type.isTop)break}return e(t)}}function cR(n,e){var t;let{source:r}=n,i=e&&r[0]!="^",s=r[r.length-1]!="$";return!i&&!s?n:new RegExp(`${i?"^":""}(?:${r})${s?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}var dR=Tn.define();var YN=typeof navigator=="object"&&/Win/.test(navigator.platform);var hR=F.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),gg=class{constructor(e,t,r,i){this.field=e,this.line=t,this.from=r,this.to=i}},Og=class n{constructor(e,t,r){this.field=e,this.from=t,this.to=r}map(e){let t=e.mapPos(this.from,-1,Xt.TrackDel),r=e.mapPos(this.to,1,Xt.TrackDel);return t==null||r==null?null:new n(this.field,t,r)}},bg=class n{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let r=[],i=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let l of this.lines){if(r.length){let c=o,d=/^\t*/.exec(l)[0].length;for(let h=0;hnew Og(l.field,i[l.line]+l.from,i[l.line]+l.to));return{text:r,ranges:a}}static parse(e){let t=[],r=[],i=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=s[1]?+s[1]:null,l=s[2]||s[3]||"",c=-1;a===0&&(a=1e9);let d=l.replace(/\\[{}]/g,h=>h[1]);for(let h=0;h=c&&u.field++}for(let h of i)if(h.line==r.length&&h.from>s.index){let u=s[2]?3+(s[1]||"").length:2;h.from-=u,h.to-=u}i.push(new gg(c,r.length,s.index,s.index+d.length)),o=o.slice(0,s.index)+l+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let d of i)d.line==r.length&&d.from>c&&(d.from--,d.to--);return l}),r.push(o)}return new n(r,i)}},uR=K.widget({widget:new class extends Ct{toDOM(){let n=document.createElement("span");return n.className="cm-snippetFieldPosition",n}ignoreEvent(){return!1}}}),fR=K.mark({class:"cm-snippetField"}),Ho=class n{constructor(e,t){this.ranges=e,this.active=t,this.deco=K.set(e.map(r=>(r.from==r.to?uR:fR).range(r.from,r.to)),!0)}map(e){let t=[];for(let r of this.ranges){let i=r.map(e);if(!i)return null;t.push(i)}return new n(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(r=>r.field==this.active&&r.from<=t.from&&r.to>=t.to))}},wl=ye.define({map(n,e){return n&&n.map(e)}}),pR=ye.define(),Sl=Xe.define({create(){return null},update(n,e){for(let t of e.effects){if(t.is(wl))return t.value;if(t.is(pR)&&n)return new Ho(n.ranges,t.value)}return n&&e.docChanged&&(n=n.map(e.changes)),n&&e.selection&&!n.selectionInsideField(e.selection)&&(n=null),n},provide:n=>F.decorations.from(n,e=>e?e.deco:K.none)});function yg(n,e){return z.create(n.filter(t=>t.field==e).map(t=>z.range(t.from,t.to)))}function mR(n){let e=bg.parse(n);return(t,r,i,s)=>{let{text:o,ranges:a}=e.instantiate(t.state,i),{main:l}=t.state.selection,c={changes:{from:i,to:s==l.from?l.to:s,insert:De.of(o)},scrollIntoView:!0,annotations:r?[dR.of(r),ut.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=yg(a,0)),a.some(d=>d.field>0)){let d=new Ho(a,0),h=c.effects=[wl.of(d)];t.state.field(Sl,!1)===void 0&&h.push(ye.appendConfig.of([Sl,SR,vR,hR]))}t.dispatch(t.state.update(c))}}function sx(n){return({state:e,dispatch:t})=>{let r=e.field(Sl,!1);if(!r||n<0&&r.active==0)return!1;let i=r.active+n,s=n>0&&!r.ranges.some(o=>o.field==i+n);return t(e.update({selection:yg(r.ranges,i),effects:wl.of(s?null:new Ho(r.ranges,i)),scrollIntoView:!0})),!0}}var gR=({state:n,dispatch:e})=>n.field(Sl,!1)?(e(n.update({effects:wl.of(null)})),!0):!1,OR=sx(1),bR=sx(-1);var yR=[{key:"Tab",run:OR,shift:bR},{key:"Escape",run:gR}],ex=oe.define({combine(n){return n.length?n[0]:yR}}),SR=pr.highest(Sn.compute([ex],n=>n.facet(ex)));function vn(n,e){return zi(Ue({},e),{apply:mR(n)})}var vR=F.domEventHandlers({mousedown(n,e){let t=e.state.field(Sl,!1),r;if(!t||(r=e.posAtCoords({x:n.clientX,y:n.clientY}))==null)return!1;let i=t.ranges.find(s=>s.from<=r&&s.to>=r);return!i||i.field==t.active?!1:(e.dispatch({selection:yg(t.ranges,i.field),effects:wl.of(t.ranges.some(s=>s.field>i.field)?new Ho(t.ranges,i.field):null),scrollIntoView:!0}),!0)}});var vl={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Gs=ye.define({map(n,e){let t=e.mapPos(n,-1,Xt.TrackAfter);return t==null?void 0:t}}),Sg=new class extends fr{};Sg.startSide=1;Sg.endSide=-1;var ox=Xe.define({create(){return $e.empty},update(n,e){if(n=n.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);n=n.update({filter:r=>r>=t.from&&r<=t.to})}for(let t of e.effects)t.is(Gs)&&(n=n.update({add:[Sg.range(t.value,t.value+1)]}));return n}});function ax(){return[xR,ox]}var mg="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function lx(n){for(let e=0;e{if((wR?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let i=n.state.selection.main;if(r.length>2||r.length==2&&Yi(Ir(r,0))==1||e!=i.from||t!=i.to)return!1;let s=PR(n.state,r);return s?(n.dispatch(s),!0):!1}),dx=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let r=cx(n,n.selection.main.head).brackets||vl.brackets,i=null,s=n.changeByRange(o=>{if(o.empty){let a=kR(n.doc,o.head);for(let l of r)if(l==a&&rh(n.doc,o.head)==lx(Ir(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:z.cursor(o.head-l.length)}}return{range:i=o}});return i||e(n.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!i};function PR(n,e){let t=cx(n,n.selection.main.head),r=t.brackets||vl.brackets;for(let i of r){let s=lx(Ir(i,0));if(e==i)return s==i?TR(n,i,r.indexOf(i+i+i)>-1,t):$R(n,i,s,t.before||vl.before);if(e==s&&hx(n,n.selection.main.from))return QR(n,i,s)}return null}function hx(n,e){let t=!1;return n.field(ox).between(0,n.doc.length,r=>{r==e&&(t=!0)}),t}function rh(n,e){let t=n.sliceString(e,e+2);return t.slice(0,Yi(Ir(t,0)))}function kR(n,e){let t=n.sliceString(e-2,e);return Yi(Ir(t,0))==t.length?t:t.slice(1)}function $R(n,e,t,r){let i=null,s=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Gs.of(o.to+e.length),range:z.range(o.anchor+e.length,o.head+e.length)};let a=rh(n.doc,o.head);return!a||/\s/.test(a)||r.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:Gs.of(o.head+e.length),range:z.cursor(o.head+e.length)}:{range:i=o}});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function QR(n,e,t){let r=null,i=n.changeByRange(s=>s.empty&&rh(n.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:z.cursor(s.head+t.length)}:r={range:s});return r?null:n.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function TR(n,e,t,r){let i=r.stringPrefixes||vl.stringPrefixes,s=null,o=n.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:Gs.of(a.to+e.length),range:z.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=rh(n.doc,l),d;if(c==e){if(tx(n,l))return{changes:{insert:e+e,from:l},effects:Gs.of(l+e.length),range:z.cursor(l+e.length)};if(hx(n,l)){let u=t&&n.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+u.length,insert:u},range:z.cursor(l+u.length)}}}else{if(t&&n.sliceDoc(l-2*e.length,l)==e+e&&(d=nx(n,l-2*e.length,i))>-1&&tx(n,d))return{changes:{insert:e+e+e+e,from:l},effects:Gs.of(l+e.length),range:z.cursor(l+e.length)};if(n.charCategorizer(l)(c)!=et.Word&&nx(n,l,i)>-1&&!AR(n,l,e,i))return{changes:{insert:e+e,from:l},effects:Gs.of(l+e.length),range:z.cursor(l+e.length)}}return{range:s=a}});return s?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function tx(n,e){let t=ze(n).resolveInner(e+1);return t.parent&&t.from==e}function AR(n,e,t,r){let i=ze(n).resolveInner(e,-1),s=r.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=n.sliceDoc(i.from,Math.min(i.to,i.from+t.length+s)),l=a.indexOf(t);if(!l||l>-1&&r.indexOf(a.slice(0,l))>-1){let d=i.firstChild;for(;d&&d.from==i.from&&d.to-d.from>t.length+l;){if(n.sliceDoc(d.to-t.length,d.to)==t)return!1;d=d.firstChild}return!0}let c=i.to==e&&i.parent;if(!c)break;i=c}return!1}function nx(n,e,t){let r=n.charCategorizer(e);if(r(n.sliceDoc(e-1,e))!=et.Word)return e;for(let i of t){let s=e-i.length;if(n.sliceDoc(s,e)==i&&r(n.sliceDoc(s-1,s))!=et.Word)return s}return-1}var ux=nw((n,e,t)=>{let r=ze(n.state).resolveInner(e,t),i=Um(r),s="";if(i)for(let c of i.tags)s+=c.set.join(" < ")+` +`);r>-1&&(t=t.slice(0,r))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),r=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=r||(t=t.slice(0,s-(r-t.length)),i++,i==this.ranges.length))break;let o=this.ranges[i].from,a=this.lineAfter(o);t+=a,r=o+a.length}return{line:t,end:r}}skipGapsTo(e,t,r){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(r>0?i>s:i>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-i}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){i=this.skipGapsTo(t,i,1),t+=i;let a=this.chunk.length;i=this.skipGapsTo(r,i,-1),r+=i,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=r:this.chunk.push(e,t,r,s),i}parseLine(e){let{line:t,end:r}=this.nextLine(),i=0,{streamParser:s}=this.lang,o=new Hd(t,e?e.state.tabSize:4,e?ii(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=Gw(s.token,o,this.state);if(a&&(i=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,i)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPose.start)return i}throw new Error("Stream parser failed to advance stream.")}var pg=Object.create(null),yl=[St.none],aR=new $i(yl),Rw=[],Mw=Object.create(null),Hw=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Hw[n]=Kw(pg,e);var Kd=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Hw)}resolve(e){return e?this.table[e]||(this.table[e]=Kw(this.extra,e)):0}},lR=new Kd(pg);function Km(n,e){Rw.indexOf(n)>-1||(Rw.push(n),console.warn(e))}function Kw(n,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let d=n[c]||g[c];d?typeof d=="function"?l.length?l=l.map(d):Km(c,`Modifier ${c} used at start of tag`):l.length?Km(c,`Tag ${c} used as modifier`):l=Array.isArray(d)?d:[d]:Km(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),i=r+" "+t.map(a=>a.id),s=Mw[i];if(s)return s.id;let o=Mw[i]=St.define({id:yl.length,name:r,props:[Kt({[r]:t})]});return yl.push(o),o.id}function cR(n,e){let t=St.define({id:yl.length,name:"Document",props:[Ai.add(()=>n),En.add(()=>r=>e.getIndent(r))],top:!0});return yl.push(t),t}var DN={rtl:K.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:qe.RTL}),ltr:K.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:qe.LTR}),auto:K.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var nh=class{constructor(e,t,r,i){this.state=e,this.pos=t,this.explicit=r,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ze(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),r=Math.max(t.from,this.pos-250),i=t.text.slice(r-t.from,this.pos-t.from),s=i.search(hR(e,!1));return s<0?null:{from:r+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}};function Jw(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function dR(n){let e=Object.create(null),t=Object.create(null);for(let{label:i}of n){e[i[0]]=!0;for(let s=1;stypeof i=="string"?{label:i}:i),[t,r]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:dR(e);return i=>{let s=i.matchBefore(r);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}function ix(n,e){return t=>{for(let r=ze(t.state).resolveInner(t.pos,-1);r;r=r.parent){if(n.indexOf(r.name)>-1)return null;if(r.type.isTop)break}return e(t)}}function hR(n,e){var t;let{source:r}=n,i=e&&r[0]!="^",s=r[r.length-1]!="$";return!i&&!s?n:new RegExp(`${i?"^":""}(?:${r})${s?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}var uR=Tn.define();var UN=typeof navigator=="object"&&/Win/.test(navigator.platform);var fR=F.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),gg=class{constructor(e,t,r,i){this.field=e,this.line=t,this.from=r,this.to=i}},Og=class n{constructor(e,t,r){this.field=e,this.from=t,this.to=r}map(e){let t=e.mapPos(this.from,-1,Xt.TrackDel),r=e.mapPos(this.to,1,Xt.TrackDel);return t==null||r==null?null:new n(this.field,t,r)}},bg=class n{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let r=[],i=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let l of this.lines){if(r.length){let c=o,d=/^\t*/.exec(l)[0].length;for(let h=0;hnew Og(l.field,i[l.line]+l.from,i[l.line]+l.to));return{text:r,ranges:a}}static parse(e){let t=[],r=[],i=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=s[1]?+s[1]:null,l=s[2]||s[3]||"",c=-1;a===0&&(a=1e9);let d=l.replace(/\\[{}]/g,h=>h[1]);for(let h=0;h=c&&u.field++}for(let h of i)if(h.line==r.length&&h.from>s.index){let u=s[2]?3+(s[1]||"").length:2;h.from-=u,h.to-=u}i.push(new gg(c,r.length,s.index,s.index+d.length)),o=o.slice(0,s.index)+l+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let d of i)d.line==r.length&&d.from>c&&(d.from--,d.to--);return l}),r.push(o)}return new n(r,i)}},pR=K.widget({widget:new class extends Ct{toDOM(){let n=document.createElement("span");return n.className="cm-snippetFieldPosition",n}ignoreEvent(){return!1}}}),mR=K.mark({class:"cm-snippetField"}),Ho=class n{constructor(e,t){this.ranges=e,this.active=t,this.deco=K.set(e.map(r=>(r.from==r.to?pR:mR).range(r.from,r.to)),!0)}map(e){let t=[];for(let r of this.ranges){let i=r.map(e);if(!i)return null;t.push(i)}return new n(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(r=>r.field==this.active&&r.from<=t.from&&r.to>=t.to))}},wl=ye.define({map(n,e){return n&&n.map(e)}}),gR=ye.define(),Sl=Xe.define({create(){return null},update(n,e){for(let t of e.effects){if(t.is(wl))return t.value;if(t.is(gR)&&n)return new Ho(n.ranges,t.value)}return n&&e.docChanged&&(n=n.map(e.changes)),n&&e.selection&&!n.selectionInsideField(e.selection)&&(n=null),n},provide:n=>F.decorations.from(n,e=>e?e.deco:K.none)});function yg(n,e){return z.create(n.filter(t=>t.field==e).map(t=>z.range(t.from,t.to)))}function OR(n){let e=bg.parse(n);return(t,r,i,s)=>{let{text:o,ranges:a}=e.instantiate(t.state,i),{main:l}=t.state.selection,c={changes:{from:i,to:s==l.from?l.to:s,insert:De.of(o)},scrollIntoView:!0,annotations:r?[uR.of(r),ut.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=yg(a,0)),a.some(d=>d.field>0)){let d=new Ho(a,0),h=c.effects=[wl.of(d)];t.state.field(Sl,!1)===void 0&&h.push(ye.appendConfig.of([Sl,wR,xR,fR]))}t.dispatch(t.state.update(c))}}function sx(n){return({state:e,dispatch:t})=>{let r=e.field(Sl,!1);if(!r||n<0&&r.active==0)return!1;let i=r.active+n,s=n>0&&!r.ranges.some(o=>o.field==i+n);return t(e.update({selection:yg(r.ranges,i),effects:wl.of(s?null:new Ho(r.ranges,i)),scrollIntoView:!0})),!0}}var bR=({state:n,dispatch:e})=>n.field(Sl,!1)?(e(n.update({effects:wl.of(null)})),!0):!1,yR=sx(1),SR=sx(-1);var vR=[{key:"Tab",run:yR,shift:SR},{key:"Escape",run:bR}],ex=oe.define({combine(n){return n.length?n[0]:vR}}),wR=pr.highest(Sn.compute([ex],n=>n.facet(ex)));function vn(n,e){return zi(Ue({},e),{apply:OR(n)})}var xR=F.domEventHandlers({mousedown(n,e){let t=e.state.field(Sl,!1),r;if(!t||(r=e.posAtCoords({x:n.clientX,y:n.clientY}))==null)return!1;let i=t.ranges.find(s=>s.from<=r&&s.to>=r);return!i||i.field==t.active?!1:(e.dispatch({selection:yg(t.ranges,i.field),effects:wl.of(t.ranges.some(s=>s.field>i.field)?new Ho(t.ranges,i.field):null),scrollIntoView:!0}),!0)}});var vl={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Gs=ye.define({map(n,e){let t=e.mapPos(n,-1,Xt.TrackAfter);return t==null?void 0:t}}),Sg=new class extends fr{};Sg.startSide=1;Sg.endSide=-1;var ox=Xe.define({create(){return $e.empty},update(n,e){if(n=n.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);n=n.update({filter:r=>r>=t.from&&r<=t.to})}for(let t of e.effects)t.is(Gs)&&(n=n.update({add:[Sg.range(t.value,t.value+1)]}));return n}});function ax(){return[kR,ox]}var mg="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function lx(n){for(let e=0;e{if((PR?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let i=n.state.selection.main;if(r.length>2||r.length==2&&Yi(Ir(r,0))==1||e!=i.from||t!=i.to)return!1;let s=$R(n.state,r);return s?(n.dispatch(s),!0):!1}),dx=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let r=cx(n,n.selection.main.head).brackets||vl.brackets,i=null,s=n.changeByRange(o=>{if(o.empty){let a=QR(n.doc,o.head);for(let l of r)if(l==a&&rh(n.doc,o.head)==lx(Ir(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:z.cursor(o.head-l.length)}}return{range:i=o}});return i||e(n.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!i};function $R(n,e){let t=cx(n,n.selection.main.head),r=t.brackets||vl.brackets;for(let i of r){let s=lx(Ir(i,0));if(e==i)return s==i?CR(n,i,r.indexOf(i+i+i)>-1,t):TR(n,i,s,t.before||vl.before);if(e==s&&hx(n,n.selection.main.from))return AR(n,i,s)}return null}function hx(n,e){let t=!1;return n.field(ox).between(0,n.doc.length,r=>{r==e&&(t=!0)}),t}function rh(n,e){let t=n.sliceString(e,e+2);return t.slice(0,Yi(Ir(t,0)))}function QR(n,e){let t=n.sliceString(e-2,e);return Yi(Ir(t,0))==t.length?t:t.slice(1)}function TR(n,e,t,r){let i=null,s=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Gs.of(o.to+e.length),range:z.range(o.anchor+e.length,o.head+e.length)};let a=rh(n.doc,o.head);return!a||/\s/.test(a)||r.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:Gs.of(o.head+e.length),range:z.cursor(o.head+e.length)}:{range:i=o}});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function AR(n,e,t){let r=null,i=n.changeByRange(s=>s.empty&&rh(n.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:z.cursor(s.head+t.length)}:r={range:s});return r?null:n.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function CR(n,e,t,r){let i=r.stringPrefixes||vl.stringPrefixes,s=null,o=n.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:Gs.of(a.to+e.length),range:z.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=rh(n.doc,l),d;if(c==e){if(tx(n,l))return{changes:{insert:e+e,from:l},effects:Gs.of(l+e.length),range:z.cursor(l+e.length)};if(hx(n,l)){let u=t&&n.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+u.length,insert:u},range:z.cursor(l+u.length)}}}else{if(t&&n.sliceDoc(l-2*e.length,l)==e+e&&(d=nx(n,l-2*e.length,i))>-1&&tx(n,d))return{changes:{insert:e+e+e+e,from:l},effects:Gs.of(l+e.length),range:z.cursor(l+e.length)};if(n.charCategorizer(l)(c)!=et.Word&&nx(n,l,i)>-1&&!_R(n,l,e,i))return{changes:{insert:e+e,from:l},effects:Gs.of(l+e.length),range:z.cursor(l+e.length)}}return{range:s=a}});return s?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function tx(n,e){let t=ze(n).resolveInner(e+1);return t.parent&&t.from==e}function _R(n,e,t,r){let i=ze(n).resolveInner(e,-1),s=r.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=n.sliceDoc(i.from,Math.min(i.to,i.from+t.length+s)),l=a.indexOf(t);if(!l||l>-1&&r.indexOf(a.slice(0,l))>-1){let d=i.firstChild;for(;d&&d.from==i.from&&d.to-d.from>t.length+l;){if(n.sliceDoc(d.to-t.length,d.to)==t)return!1;d=d.firstChild}return!0}let c=i.to==e&&i.parent;if(!c)break;i=c}return!1}function nx(n,e,t){let r=n.charCategorizer(e);if(r(n.sliceDoc(e-1,e))!=et.Word)return e;for(let i of t){let s=e-i.length;if(n.sliceDoc(s,e)==i&&r(n.sliceDoc(s-1,s))!=et.Word)return s}return-1}var ux=nw((n,e,t)=>{let r=ze(n.state).resolveInner(e,t),i=Um(r),s="";if(i)for(let c of i.tags)s+=c.set.join(" < ")+` `;let o=n.state.facet(ri),a=o instanceof Jt?"Lezer LRLanguage":o instanceof zt?"StreamLanguage":"Unknown",l=o instanceof Jt?"AST ":o instanceof zt?"Token ":"Name ";return{pos:e,above:!0,arrow:!0,create(c){let d=document.createElement("div");d.style.overflow="visible",d.style.height="0",d.style.width="0";let h=document.createElement("div");return h.className="cm-debug-tooltip",h.textContent=`Parser: ${a} ${l}: ${r.name} -Tags : ${s}`,h.style.whiteSpace="pre-wrap",h.style.fontFamily="monospace",h.style.background="#333",h.style.color="white",h.style.padding="2px 8px",h.style.borderRadius="4px",h.style.fontSize="12px",h.style.border="1px solid #555",h.style.pointerEvents="none",h.style.position="absolute",h.style.bottom="0",h.style.width="max-content",d.appendChild(h),{dom:d}}}},{hoverTime:10,hideOnChange:!0});var CR=n=>{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),r=$g(n.state,t.from);return r.line?_R(n):r.block?RR(n):!1};function kg(n,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let i=n(e,t);return i?(r(t.update(i)),!0):!1}}var _R=kg(DR,0);var ER=kg(vx,0);var RR=kg((n,e)=>vx(n,e,LR(e)),0);function $g(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var xl=50;function MR(n,{open:e,close:t},r,i){let s=n.sliceDoc(r-xl,r),o=n.sliceDoc(i,i+xl),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:r-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let d,h;i-r<=2*xl?d=h=n.sliceDoc(r,i):(d=n.sliceDoc(r,r+xl),h=n.sliceDoc(i-xl,i));let u=/^\s*/.exec(d)[0].length,f=/\s*$/.exec(h)[0].length,m=h.length-f-t.length;return d.slice(u,u+e.length)==e&&h.slice(m,m+t.length)==t?{open:{pos:r+u+e.length,margin:/\s/.test(d.charAt(u+e.length))?1:0},close:{pos:i-f-t.length,margin:/\s/.test(h.charAt(m-1))?1:0}}:null}function LR(n){let e=[];for(let t of n.selection.ranges){let r=n.doc.lineAt(t.from),i=t.to<=r.to?r:n.doc.lineAt(t.to);i.from>r.from&&i.from==t.to&&(i=t.to==r.to+1?r:n.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=i.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return e}function vx(n,e,t=e.selection.ranges){let r=t.map(s=>$g(e,s.from).block);if(!r.every(s=>s))return null;let i=t.map((s,o)=>MR(e,r[o],s.from,s.to));if(n!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(n!=1&&i.some(s=>s)){let s=[];for(let o=0,a;oi&&(s==o||o>h.from)){i=h.from;let u=/^\s*/.exec(h.text)[0].length,f=u==h.length,m=h.text.slice(u,u+c.length)==c?u:-1;us.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:d,single:h}of r)(h||!d)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)if(a>=0){let c=o.from+a,d=c+l.length;o.text[d-o.from]==" "&&d++,s.push({from:c,to:d})}return{changes:s}}return null}var wg=Tn.define(),oh=Tn.define(),ZR=oe.define(),wx=oe.define({combine(n){return Yn(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,i)=>e(r,i)||t(r,i)})}}),xx=Xe.define({create(){return Hs.empty},update(n,e){let t=e.state.facet(wx),r=e.annotation(wg);if(r){let l=Br.fromTransaction(e,r.selection),c=r.side,d=c==0?n.undone:n.done;return l?d=sh(d,d.length,t.minDepth,l):d=$x(d,e.startState.selection),new Hs(c==0?r.rest:d,c==0?d:r.rest)}let i=e.annotation(oh);if((i=="full"||i=="before")&&(n=n.isolate()),e.annotation(ut.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let s=Br.fromTransaction(e),o=e.annotation(ut.time),a=e.annotation(ut.userEvent);return s?n=n.addChanges(s,o,a,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new Hs(n.done.map(Br.fromJSON),n.undone.map(Br.fromJSON))}});function Px(n={}){return[xx,wx.of(n),F.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?Pl:e.inputType=="historyRedo"?Ko:null;return r?(e.preventDefault(),r(t)):!1}})]}function ah(n,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let i=t.field(xx,!1);if(!i)return!1;let s=i.pop(n,t,e);return s?(r(s),!0):!1}}var Pl=ah(0,!1),Ko=ah(1,!1),IR=ah(0,!0),XR=ah(1,!0);var Br=class n{constructor(e,t,r,i,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new n(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(i=>i.toJSON())}}static fromJSON(e){return new n(e.changes&&On.fromJSON(e.changes),[],e.mapped&&vi.fromJSON(e.mapped),e.startSelection&&z.fromJSON(e.startSelection),e.selectionsAfter.map(z.fromJSON))}static fromTransaction(e,t){let r=Sr;for(let i of e.startState.facet(ZR)){let s=i(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new n(e.changes.invert(e.startState.doc),r,void 0,t||e.startState.selection,Sr)}static selection(e){return new n(void 0,Sr,void 0,void 0,e)}};function sh(n,e,t,r){let i=e+1>t+20?e-t-1:0,s=n.slice(i,e);return s.push(r),s}function zR(n,e){let t=[],r=!1;return n.iterChangedRanges((i,s)=>t.push(i,s)),e.iterChangedRanges((i,s,o,a)=>{for(let l=0;l=c&&o<=d&&(r=!0)}}),r}function WR(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,r)=>t.empty!=e.ranges[r].empty).length===0}function kx(n,e){return n.length?e.length?n.concat(e):n:e}var Sr=[],NR=200;function $x(n,e){if(n.length){let t=n[n.length-1],r=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-NR));return r.length&&r[r.length-1].eq(e)?n:(r.push(e),sh(n,n.length-1,1e9,t.setSelAfter(r)))}else return[Br.selection([e])]}function BR(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function vg(n,e){if(!n.length)return n;let t=n.length,r=Sr;for(;t;){let i=VR(n[t-1],e,r);if(i.changes&&!i.changes.empty||i.effects.length){let s=n.slice(0,t);return s[t-1]=i,s}else e=i.mapped,t--,r=i.selectionsAfter}return r.length?[Br.selection(r)]:Sr}function VR(n,e,t){let r=kx(n.selectionsAfter.length?n.selectionsAfter.map(a=>a.map(e)):Sr,t);if(!n.changes)return Br.selection(r);let i=n.changes.map(e),s=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(s):s;return new Br(i,ye.mapEffects(n.effects,e),o,n.startSelection.map(s),r)}var FR=/^(input\.type|delete)($|\.)/,Hs=class n{constructor(e,t,r=0,i=void 0){this.done=e,this.undone=t,this.prevTime=r,this.prevUserEvent=i}isolate(){return this.prevTime?new n(this.done,this.undone):this}addChanges(e,t,r,i,s){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!r||FR.test(r))&&(!a.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?n.moveByChar(t,e):lh(t,e))}function hn(n){return n.textDirectionAt(n.state.selection.main.head)==qe.LTR}var Ax=n=>Tx(n,!hn(n)),Cx=n=>Tx(n,hn(n));function _x(n,e){return Fr(n,t=>t.empty?n.moveByGroup(t,e):lh(t,e))}var YR=n=>_x(n,!hn(n)),jR=n=>_x(n,hn(n));var sB=typeof Intl!="undefined"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function UR(n,e,t){if(e.type.prop(t))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function ch(n,e,t){let r=ze(n).resolveInner(e.head),i=t?xe.closedBy:xe.openedBy;for(let l=e.head;;){let c=t?r.childAfter(l):r.childBefore(l);if(!c)break;UR(n,c,i)?r=c:l=t?c.to:c.from}let s=r.type.prop(i),o,a;return s&&(o=t?Nr(n,r.from,1):Nr(n,r.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?r.to:r.from,z.cursor(a,t?-1:1)}var qR=n=>Fr(n,e=>ch(n.state,e,!hn(n))),GR=n=>Fr(n,e=>ch(n.state,e,hn(n)));function Ex(n,e){return Fr(n,t=>{if(!t.empty)return lh(t,e);let r=n.moveVertically(t,e);return r.head!=t.head?r:n.moveToLineBoundary(t,e)})}var Rx=n=>Ex(n,!1),Mx=n=>Ex(n,!0);function Lx(n){let e=n.scrollDOM.clientHeighto.empty?n.moveVertically(o,e,t.height):lh(o,e));if(i.eq(r.selection))return!1;let s;if(t.selfScroll){let o=n.coordsAtPos(r.selection.main.head),a=n.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottomDx(n,!1),xg=n=>Dx(n,!0);function rs(n,e,t){let r=n.lineBlockAt(e.head),i=n.moveToLineBoundary(e,t);if(i.head==e.head&&i.head!=(t?r.to:r.from)&&(i=n.moveToLineBoundary(e,t,!1)),!t&&i.head==r.from&&r.length){let s=/^\s*/.exec(n.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(i=z.cursor(r.from+s))}return i}var HR=n=>Fr(n,e=>rs(n,e,!0)),KR=n=>Fr(n,e=>rs(n,e,!1)),JR=n=>Fr(n,e=>rs(n,e,!hn(n))),eM=n=>Fr(n,e=>rs(n,e,hn(n))),tM=n=>Fr(n,e=>z.cursor(n.lineBlockAt(e.head).from,1)),nM=n=>Fr(n,e=>z.cursor(n.lineBlockAt(e.head).to,-1));function rM(n,e,t){let r=!1,i=Jo(n.selection,s=>{let o=Nr(n,s.head,-1)||Nr(n,s.head,1)||s.head>0&&Nr(n,s.head-1,1)||s.headrM(n,e,!1);function vr(n,e,t){let r=Jo(n.state.selection,i=>{i.undirectional&&i.head>=i.anchor!=e&&(i=z.range(i.head,i.anchor));let s=t(i);return z.range(i.anchor,s.head,s.goalColumn,s.bidiLevel||void 0,s.assoc)});return r.eq(n.state.selection)?!1:(n.dispatch(Vr(n.state,r)),!0)}function Zx(n,e){return vr(n,e,t=>n.moveByChar(t,e))}var Ix=n=>Zx(n,!hn(n)),Xx=n=>Zx(n,hn(n));function zx(n,e){return vr(n,e,t=>n.moveByGroup(t,e))}var sM=n=>zx(n,!hn(n)),oM=n=>zx(n,hn(n));var aM=n=>{let e=!hn(n);return vr(n,e,t=>ch(n.state,t,e))},lM=n=>{let e=hn(n);return vr(n,e,t=>ch(n.state,t,e))};function Wx(n,e){return vr(n,e,t=>n.moveVertically(t,e))}var Nx=n=>Wx(n,!1),Bx=n=>Wx(n,!0);function Vx(n,e){return vr(n,e,t=>n.moveVertically(t,e,Lx(n).height))}var px=n=>Vx(n,!1),mx=n=>Vx(n,!0),cM=n=>vr(n,!0,e=>rs(n,e,!0)),dM=n=>vr(n,!1,e=>rs(n,e,!1)),hM=n=>{let e=!hn(n);return vr(n,e,t=>rs(n,t,e))},uM=n=>{let e=hn(n);return vr(n,e,t=>rs(n,t,e))},fM=n=>vr(n,!1,e=>z.cursor(n.lineBlockAt(e.head).from)),pM=n=>vr(n,!0,e=>z.cursor(n.lineBlockAt(e.head).to)),gx=({state:n,dispatch:e})=>(e(Vr(n,{anchor:0})),!0),Ox=({state:n,dispatch:e})=>(e(Vr(n,{anchor:n.doc.length})),!0),bx=({state:n,dispatch:e})=>(e(Vr(n,{anchor:n.selection.main.anchor,head:0})),!0),yx=({state:n,dispatch:e})=>(e(Vr(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),mM=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),gM=({state:n,dispatch:e})=>{let t=dh(n).map(({from:r,to:i})=>z.undirectionalRange(r,Math.min(i+1,n.doc.length)));return e(n.update({selection:z.create(t),userEvent:"select"})),!0},OM=({state:n,dispatch:e})=>{let t=Jo(n.selection,r=>{let i=ze(n),s=i.resolveStack(r.from,1);if(r.empty){let o=i.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:a}=o;if((a.from=r.to||a.to>r.to&&a.from<=r.from)&&o.next)return z.undirectionalRange(a.from,a.to)}return r});return t.eq(n.selection)?!1:(e(Vr(n,t)),!0)};function Fx(n,e){let{state:t}=n,r=t.selection,i=t.selection.ranges.slice();for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head);if(e?o.to0)for(let a=s;;){let l=n.moveVertically(a,e);if(l.heado.to){i.some(c=>c.head==l.head)||i.push(l);break}else{if(l.head==a.head)break;a=l}}}return i.length==r.ranges.length?!1:(n.dispatch(Vr(t,z.create(i,i.length-1))),!0)}var bM=n=>Fx(n,!1),yM=n=>Fx(n,!0),SM=({state:n,dispatch:e})=>{let t=n.selection,r=null;return t.ranges.length>1?r=z.create([t.main]):t.main.empty||(r=z.create([z.cursor(t.main.head)])),r?(e(Vr(n,r)),!0):!1};function kl(n,e){if(n.state.readOnly)return!1;let t="delete.selection",{state:r}=n,i=r.changeByRange(s=>{let{from:o,to:a}=s;if(o==a){let l=e(s);lo&&(t="delete.forward",l=ih(n,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=ih(n,o,!1),a=ih(n,a,!0);return o==a?{range:s}:{changes:{from:o,to:a},range:z.cursor(o,oi(n)))r.between(e,e,(i,s)=>{ie&&(e=t?s:i)});return e}var Yx=(n,e,t)=>kl(n,r=>{let i=r.from,{state:s}=n,o=s.doc.lineAt(i),a,l;if(t&&!e&&i>o.from&&iYx(n,!1,!0);var jx=n=>Yx(n,!0,!1),Ux=(n,e)=>kl(n,t=>{let r=t.head,{state:i}=n,s=i.doc.lineAt(r),o=i.charCategorizer(r);for(let a=null;;){if(r==(e?s.to:s.from)){r==t.head&&s.number!=(e?i.doc.lines:1)&&(r+=e?1:-1);break}let l=Pt(s.text,r-s.from,e)+s.from,c=s.text.slice(Math.min(r,l)-s.from,Math.max(r,l)-s.from),d=o(c);if(a!=null&&d!=a)break;(c!=" "||r!=t.head)&&(a=d),r=l}return r}),qx=n=>Ux(n,!1),vM=n=>Ux(n,!0);var wM=n=>kl(n,e=>{let t=n.lineBlockAt(e.head).to;return e.headkl(n,e=>{let t=n.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),PM=n=>kl(n,e=>{let t=n.moveToLineBoundary(e,!0).head;return e.head{if(n.readOnly)return!1;let t=n.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:De.of(["",""])},range:z.cursor(r.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},$M=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(r=>{if(!r.empty||r.from==0||r.from==n.doc.length)return{range:r};let i=r.from,s=n.doc.lineAt(i),o=i==s.from?i-1:Pt(s.text,i-s.from,!1)+s.from,a=i==s.to?i+1:Pt(s.text,i-s.from,!0)+s.from;return{changes:{from:o,to:a,insert:n.doc.slice(i,a).append(n.doc.slice(o,i))},range:z.cursor(a)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function dh(n){let e=[],t=-1;for(let r of n.selection.ranges){let i=n.doc.lineAt(r.from),s=n.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=n.doc.lineAt(r.to-1)),t>=i.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:i.from,to:s.to,ranges:[r]});t=s.number+1}return e}function Gx(n,e,t){if(n.readOnly)return!1;let r=[],i=[];for(let s of dh(n)){if(t?s.to==n.doc.length:s.from==0)continue;let o=n.doc.lineAt(t?s.to+1:s.from-1),a=o.length+1;if(t){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+n.lineBreak});for(let l of s.ranges)i.push(z.range(Math.min(n.doc.length,l.anchor+a),Math.min(n.doc.length,l.head+a)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:n.lineBreak+o.text});for(let l of s.ranges)i.push(z.range(l.anchor-a,l.head-a))}}return r.length?(e(n.update({changes:r,scrollIntoView:!0,selection:z.create(i,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}var QM=({state:n,dispatch:e})=>Gx(n,e,!1),TM=({state:n,dispatch:e})=>Gx(n,e,!0);function Hx(n,e,t){if(n.readOnly)return!1;let r=[];for(let s of dh(n))t?r.push({from:s.from,insert:n.doc.slice(s.from,s.to)+n.lineBreak}):r.push({from:s.to,insert:n.lineBreak+n.doc.slice(s.from,s.to)});let i=n.changes(r);return e(n.update({changes:i,selection:n.selection.map(i,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var AM=({state:n,dispatch:e})=>Hx(n,e,!1),CM=({state:n,dispatch:e})=>Hx(n,e,!0),Qg=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(dh(e).map(({from:i,to:s})=>(i>0?i--:s{let s;if(n.lineWrapping){let o=n.lineBlockAt(i.head),a=n.coordsAtPos(i.head,i.assoc||1);a&&(s=o.bottom+n.documentTop-a.bottom+n.defaultLineHeight/2)}return n.moveVertically(i,!0,s)}).map(t);return n.dispatch({changes:t,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0},Kx=({state:n,dispatch:e})=>(e(n.update(n.replaceSelection(n.lineBreak),{scrollIntoView:!0,userEvent:"input"})),!0);function _M(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ze(n).resolveInner(e),r=t.childBefore(e),i=t.childAfter(e),s;return r&&i&&r.to<=e&&i.from>=e&&(s=r.type.prop(xe.closedBy))&&s.indexOf(i.name)>-1&&n.doc.lineAt(r.to).from==n.doc.lineAt(i.from).from&&!/\S/.test(n.sliceDoc(r.to,i.from))?{from:r.to,to:i.from}:null}var Sx=Jx(!1),EM=Jx(!0);function Jx(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let r=e.changeByRange(i=>{let{from:s,to:o}=i,a=e.doc.lineAt(s),l=!n&&s==o&&_M(e,s);n&&(s=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new qs(e,{simulateBreak:s,simulateDoubleBreak:!!l}),d=eh(c,s);for(d==null&&(d=Gt(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));oa.from&&s{let i=[];for(let o=r.from;o<=r.to;){let a=n.doc.lineAt(o);a.number>t&&(r.empty||r.to>a.from)&&(e(a,i,r),t=a.number),o=a.to+1}let s=n.changes(i);return{changes:i,range:z.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}var RM=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),r=new qs(n,{overrideIndentation:s=>{let o=t[s];return o==null?-1:o}}),i=Tg(n,(s,o,a)=>{let l=eh(r,s.from);if(l==null)return;/\S/.test(s.text)||(l=0);let c=/^\s*/.exec(s.text)[0],d=qo(n,l);(c!=d||a.fromn.readOnly?!1:(e(n.update(Tg(n,(t,r)=>{r.push({from:t.from,insert:n.facet(yr)})}),{userEvent:"input.indent"})),!0),uh=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(Tg(n,(t,r)=>{let i=/^\s*/.exec(t.text)[0];if(!i)return;let s=Gt(i,n.tabSize),o=0,a=qo(n,Math.max(0,s-ii(n)));for(;o(n.setTabFocusMode(),!0);var e1=({state:n,dispatch:e})=>n.selection.ranges.some(t=>!t.empty)?hh({state:n,dispatch:e}):(e(n.update(n.replaceSelection(" "),{scrollIntoView:!0,userEvent:"input"})),!0),LM=[{key:"Ctrl-b",run:Ax,shift:Ix,preventDefault:!0},{key:"Ctrl-f",run:Cx,shift:Xx},{key:"Ctrl-p",run:Rx,shift:Nx},{key:"Ctrl-n",run:Mx,shift:Bx},{key:"Ctrl-a",run:tM,shift:fM},{key:"Ctrl-e",run:nM,shift:pM},{key:"Ctrl-d",run:jx},{key:"Ctrl-h",run:Pg},{key:"Ctrl-k",run:wM},{key:"Ctrl-Alt-h",run:qx},{key:"Ctrl-o",run:kM},{key:"Ctrl-t",run:$M},{key:"Ctrl-v",run:xg}],DM=[{key:"ArrowLeft",run:Ax,shift:Ix,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:YR,shift:sM,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:JR,shift:hM,preventDefault:!0},{key:"ArrowRight",run:Cx,shift:Xx,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:jR,shift:oM,preventDefault:!0},{mac:"Cmd-ArrowRight",run:eM,shift:uM,preventDefault:!0},{key:"ArrowUp",run:Rx,shift:Nx,preventDefault:!0},{mac:"Cmd-ArrowUp",run:gx,shift:bx},{mac:"Ctrl-ArrowUp",run:fx,shift:px},{key:"ArrowDown",run:Mx,shift:Bx,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Ox,shift:yx},{mac:"Ctrl-ArrowDown",run:xg,shift:mx},{key:"PageUp",run:fx,shift:px},{key:"PageDown",run:xg,shift:mx},{key:"Home",run:KR,shift:dM,preventDefault:!0},{key:"Mod-Home",run:gx,shift:bx},{key:"End",run:HR,shift:cM,preventDefault:!0},{key:"Mod-End",run:Ox,shift:yx},{key:"Enter",run:Sx,shift:Sx},{key:"Mod-a",run:mM},{key:"Backspace",run:Pg,shift:Pg,preventDefault:!0},{key:"Delete",run:jx,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:qx,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:vM,preventDefault:!0},{mac:"Mod-Backspace",run:xM,preventDefault:!0},{mac:"Mod-Delete",run:PM,preventDefault:!0}].concat(LM.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),t1=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:qR,shift:aM},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:GR,shift:lM},{key:"Alt-ArrowUp",run:QM},{key:"Shift-Alt-ArrowUp",run:AM},{key:"Alt-ArrowDown",run:TM},{key:"Shift-Alt-ArrowDown",run:CM},{key:"Mod-Alt-ArrowUp",run:bM},{key:"Mod-Alt-ArrowDown",run:yM},{key:"Escape",run:SM},{key:"Mod-Enter",run:EM},{key:"Alt-l",mac:"Ctrl-l",run:gM},{key:"Mod-i",run:OM,preventDefault:!0},{key:"Mod-[",run:uh},{key:"Mod-]",run:hh},{key:"Mod-Alt-\\",run:RM},{key:"Shift-Mod-k",run:Qg},{key:"Shift-Mod-\\",run:iM},{key:"Mod-/",run:CR},{key:"Alt-A",mac:"Ctrl-A",run:ER},{key:"Ctrl-m",mac:"Shift-Alt-m",run:MM}].concat(DM);function ZM(n,e){let t=n.doc.lineAt(e),r=t.text.slice(0,e-t.from),i=Gt(r,n.tabSize),s=/^\s*$/.test(r)?ii(n):n.tabSize;return" ".repeat(s-i%s)}function n1(n){let e=new Map,t=0,r=0,i=0;for(let a of n.split(` -`,2e3)){if(!a.trim())continue;if(a[0]==" "){t++;continue}let l=a.length-a.trimStart().length;l>0&&r++;let c=l-i;c>=2&&c<=8&&e.set(c,(e.get(c)||0)+1),i=l}if(t>r)return" ";let s=2,o=0;for(let[a,l]of e)(l>o||l==o&&a!t.empty)?hh(n):(n.dispatch(e.changeByRange(t=>{let r=ZM(e,t.head);return{changes:{from:t.head,insert:r},range:z.cursor(t.head+r.length)}}),{scrollIntoView:!0,userEvent:"input"}),!0)}function XM(n){for(let e=1;e<=n.doc.lines;e++)if(/^\d\d/.test(n.doc.line(e).text))return!0;return!1}var r1=[{key:"Enter",run:n=>XM(n.state)&&Kx(n)}],i1=[{key:"Tab",run:IM},{key:"Shift-Tab",run:uh}],s1=[{key:"Tab",run:e1},{key:"Shift-Tab",run:uh}],$l=50,fh=8,zM=!0;function ea(n){zM&&console.log("[asm-tab] "+n)}function ta(n,e){let t=0;for(let r=0;r0&&e.set(n,(e.get(n)||0)+1)}function WM(n,e){let t=[],r=/\S+/g,i;for(;(i=r.exec(n))!==null&&n[i.index]!=";";)t.push(ta(n,i.index));let s=/(^|\s);/.exec(n);s&&Ag(ta(n,s.index+s[1].length),e);let o=t.length&&t[0]==0?t.slice(1):t;o.length>=1&&Ag(o[0],e),o.length>=2&&Ag(o[1],e)}var NM=3;function o1(n,e){let t=n.doc.lineAt(e),r=n.doc.lines,i=(a,l,c,d)=>{let h=0;for(let u=a;u!=l&&h<$l;u+=c){let f=n.doc.line(u);f.text.trim()&&(WM(f.text,d),h++)}return h},s=new Map;return i(t.number+1,Math.min(r,t.number+$l)+1,1,s)e&&(o>i||o==i&&s=0?r:(Math.floor(e/t)+1)*t}function VM(n,e,t){let r=-1,i=0;for(let[s,o]of n)si||o==i&&s>r)&&(r=s,i=o);return r>=0?r:Math.max(0,Math.min(Math.floor((e-1)/t)*t,e-1))}function a1(n,e){let t=n.doc.lineAt(e),r=Math.max(1,t.number-$l),i=Math.min(n.doc.lines,t.number+$l);for(let s=r;s<=i;s++)if(n.doc.line(s).text.includes(" "))return!0;return!1}function l1(n){return"["+[...n.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>`${e}:${t}`).join(" ")+"]"}function FM(n,e){let t=n.doc.lineAt(e),r=ta(t.text,e-t.from),i=a1(n,e),s=i?fh:n.tabSize,o=o1(n,e),a=BM(o,r,s);return ea(`Tab @ line ${t.number} col ${r}: stops(col:freq)=${l1(o)} ${i?"grid=8 (file has tabs)":`grid=${n.tabSize}`} -> target=${a} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),a<=r?null:{from:e,insert:" ".repeat(a-r)}}function YM(n,e){let t=n.doc.lineAt(e),r=e-t.from;if(r==0)return ea(`Backspace @ line ${t.number} col 0: start of line, using default`),null;if(t.text[r-1]==" ")return ea(`Backspace @ line ${t.number} col ${ta(t.text,r)}: deleting one tab char`),{from:e-1,to:e};if(!/^[ \t]+$/.test(t.text.slice(0,r)))return ea(`Backspace @ line ${t.number} col ${ta(t.text,r)}: cursor not in leading whitespace, using default`),null;let i=a1(n,e),s=i?fh:n.tabSize,o=ta(t.text,r),a=o1(n,e),l=VM(a,o,s);if(l>=o)return ea(`Backspace @ line ${t.number} col ${o}: no stop before cursor, using default`),null;let c=e-(o-l);return ea(`Backspace @ line ${t.number} col ${o}: stops(col:freq)=${l1(a)} ${i?"grid=8 (file has tabs)":`grid=${n.tabSize}`} -> deleting cols ${l}..${o} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),{from:c,to:e}}function jM(n){let e=n.state;if(e.selection.ranges.some(r=>!r.empty))return!1;let t=e.changeByRange(r=>{let i=FM(e,r.head);return i?{changes:i,range:z.cursor(r.head+i.insert.length)}:{range:r}});return n.dispatch(t),!0}function UM(n){let e=n.state,t=e.selection.main;if(!t.empty)return!1;let r=YM(e,t.head);return r?(n.dispatch(e.update({changes:r,selection:z.cursor(r.from)})),!0):!1}function c1(n){return[{key:"Tab",run:e=>n()&&jM(e)},{key:"Backspace",run:e=>n()&&UM(e)}]}var qM=new Vt,GM=new Vt,HM=new Vt,KM=new Vt,JM=new Vt,eL=new Vt,tL=new Vt,nL=new Vt,h1="8bitworkshop/editorSettings",d1={tabSize:8,tabsToSpaces:!0,highlightSpecialChars:!1,highlightWhitespace:!1,highlightTrailingWhitespace:!1,closeBrackets:!1,debugHighlightTags:!1,showLineNumbers:!1,showStatusBar:!0};function na(){try{var n=localStorage.getItem(h1);if(n)return Ue(Ue({},d1),JSON.parse(n))}catch(e){}return Ue({},d1)}function rL(n){localStorage.setItem(h1,JSON.stringify(n))}var u1=[[KM,n=>[Me.tabSize.of(n.tabSize),yr.of(" ".repeat(n.tabSize))]],[eL,n=>Sn.of(n.tabsToSpaces?i1:s1)],[qM,n=>n.highlightSpecialChars?ew():[]],[GM,n=>n.highlightWhitespace?dw():[]],[HM,n=>n.highlightTrailingWhitespace?hw():[]],[JM,n=>n.closeBrackets?[ax(),Sn.of([{key:"Backspace",run:dx}])]:[]],[tL,n=>n.debugHighlightTags?ux:[]],[nL,n=>n.showLineNumbers?Xd():[]]];function f1(n){return u1.map(([e,t])=>e.of(t(n)))}var p1=new Set;function m1(n){p1.add(n)}function iL(n){var e=u1.map(([r,i])=>r.reconfigure(i(n)));for(var t of p1)t.dispatch({effects:e})}function g1(){var n=na(),e=!wo();bootbox.dialog({onEscape:!0,title:"Settings",message:`
+Tags : ${s}`,h.style.whiteSpace="pre-wrap",h.style.fontFamily="monospace",h.style.background="#333",h.style.color="white",h.style.padding="2px 8px",h.style.borderRadius="4px",h.style.fontSize="12px",h.style.border="1px solid #555",h.style.pointerEvents="none",h.style.position="absolute",h.style.bottom="0",h.style.width="max-content",d.appendChild(h),{dom:d}}}},{hoverTime:10,hideOnChange:!0});var ER=n=>{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),r=$g(n.state,t.from);return r.line?RR(n):r.block?LR(n):!1};function kg(n,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let i=n(e,t);return i?(r(t.update(i)),!0):!1}}var RR=kg(IR,0);var MR=kg(vx,0);var LR=kg((n,e)=>vx(n,e,ZR(e)),0);function $g(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var xl=50;function DR(n,{open:e,close:t},r,i){let s=n.sliceDoc(r-xl,r),o=n.sliceDoc(i,i+xl),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:r-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let d,h;i-r<=2*xl?d=h=n.sliceDoc(r,i):(d=n.sliceDoc(r,r+xl),h=n.sliceDoc(i-xl,i));let u=/^\s*/.exec(d)[0].length,f=/\s*$/.exec(h)[0].length,m=h.length-f-t.length;return d.slice(u,u+e.length)==e&&h.slice(m,m+t.length)==t?{open:{pos:r+u+e.length,margin:/\s/.test(d.charAt(u+e.length))?1:0},close:{pos:i-f-t.length,margin:/\s/.test(h.charAt(m-1))?1:0}}:null}function ZR(n){let e=[];for(let t of n.selection.ranges){let r=n.doc.lineAt(t.from),i=t.to<=r.to?r:n.doc.lineAt(t.to);i.from>r.from&&i.from==t.to&&(i=t.to==r.to+1?r:n.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=i.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return e}function vx(n,e,t=e.selection.ranges){let r=t.map(s=>$g(e,s.from).block);if(!r.every(s=>s))return null;let i=t.map((s,o)=>DR(e,r[o],s.from,s.to));if(n!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(n!=1&&i.some(s=>s)){let s=[];for(let o=0,a;oi&&(s==o||o>h.from)){i=h.from;let u=/^\s*/.exec(h.text)[0].length,f=u==h.length,m=h.text.slice(u,u+c.length)==c?u:-1;us.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:d,single:h}of r)(h||!d)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)if(a>=0){let c=o.from+a,d=c+l.length;o.text[d-o.from]==" "&&d++,s.push({from:c,to:d})}return{changes:s}}return null}var wg=Tn.define(),oh=Tn.define(),XR=oe.define(),wx=oe.define({combine(n){return Yn(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,i)=>e(r,i)||t(r,i)})}}),xx=Xe.define({create(){return Hs.empty},update(n,e){let t=e.state.facet(wx),r=e.annotation(wg);if(r){let l=Br.fromTransaction(e,r.selection),c=r.side,d=c==0?n.undone:n.done;return l?d=sh(d,d.length,t.minDepth,l):d=$x(d,e.startState.selection),new Hs(c==0?r.rest:d,c==0?d:r.rest)}let i=e.annotation(oh);if((i=="full"||i=="before")&&(n=n.isolate()),e.annotation(ut.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let s=Br.fromTransaction(e),o=e.annotation(ut.time),a=e.annotation(ut.userEvent);return s?n=n.addChanges(s,o,a,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new Hs(n.done.map(Br.fromJSON),n.undone.map(Br.fromJSON))}});function Px(n={}){return[xx,wx.of(n),F.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?Pl:e.inputType=="historyRedo"?Ko:null;return r?(e.preventDefault(),r(t)):!1}})]}function ah(n,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let i=t.field(xx,!1);if(!i)return!1;let s=i.pop(n,t,e);return s?(r(s),!0):!1}}var Pl=ah(0,!1),Ko=ah(1,!1),zR=ah(0,!0),WR=ah(1,!0);var Br=class n{constructor(e,t,r,i,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new n(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(i=>i.toJSON())}}static fromJSON(e){return new n(e.changes&&On.fromJSON(e.changes),[],e.mapped&&vi.fromJSON(e.mapped),e.startSelection&&z.fromJSON(e.startSelection),e.selectionsAfter.map(z.fromJSON))}static fromTransaction(e,t){let r=Sr;for(let i of e.startState.facet(XR)){let s=i(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new n(e.changes.invert(e.startState.doc),r,void 0,t||e.startState.selection,Sr)}static selection(e){return new n(void 0,Sr,void 0,void 0,e)}};function sh(n,e,t,r){let i=e+1>t+20?e-t-1:0,s=n.slice(i,e);return s.push(r),s}function NR(n,e){let t=[],r=!1;return n.iterChangedRanges((i,s)=>t.push(i,s)),e.iterChangedRanges((i,s,o,a)=>{for(let l=0;l=c&&o<=d&&(r=!0)}}),r}function BR(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,r)=>t.empty!=e.ranges[r].empty).length===0}function kx(n,e){return n.length?e.length?n.concat(e):n:e}var Sr=[],VR=200;function $x(n,e){if(n.length){let t=n[n.length-1],r=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-VR));return r.length&&r[r.length-1].eq(e)?n:(r.push(e),sh(n,n.length-1,1e9,t.setSelAfter(r)))}else return[Br.selection([e])]}function FR(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function vg(n,e){if(!n.length)return n;let t=n.length,r=Sr;for(;t;){let i=YR(n[t-1],e,r);if(i.changes&&!i.changes.empty||i.effects.length){let s=n.slice(0,t);return s[t-1]=i,s}else e=i.mapped,t--,r=i.selectionsAfter}return r.length?[Br.selection(r)]:Sr}function YR(n,e,t){let r=kx(n.selectionsAfter.length?n.selectionsAfter.map(a=>a.map(e)):Sr,t);if(!n.changes)return Br.selection(r);let i=n.changes.map(e),s=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(s):s;return new Br(i,ye.mapEffects(n.effects,e),o,n.startSelection.map(s),r)}var jR=/^(input\.type|delete)($|\.)/,Hs=class n{constructor(e,t,r=0,i=void 0){this.done=e,this.undone=t,this.prevTime=r,this.prevUserEvent=i}isolate(){return this.prevTime?new n(this.done,this.undone):this}addChanges(e,t,r,i,s){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!r||jR.test(r))&&(!a.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?n.moveByChar(t,e):lh(t,e))}function hn(n){return n.textDirectionAt(n.state.selection.main.head)==qe.LTR}var Ax=n=>Tx(n,!hn(n)),Cx=n=>Tx(n,hn(n));function _x(n,e){return Fr(n,t=>t.empty?n.moveByGroup(t,e):lh(t,e))}var UR=n=>_x(n,!hn(n)),qR=n=>_x(n,hn(n));var aB=typeof Intl!="undefined"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function GR(n,e,t){if(e.type.prop(t))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function ch(n,e,t){let r=ze(n).resolveInner(e.head),i=t?xe.closedBy:xe.openedBy;for(let l=e.head;;){let c=t?r.childAfter(l):r.childBefore(l);if(!c)break;GR(n,c,i)?r=c:l=t?c.to:c.from}let s=r.type.prop(i),o,a;return s&&(o=t?Nr(n,r.from,1):Nr(n,r.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?r.to:r.from,z.cursor(a,t?-1:1)}var HR=n=>Fr(n,e=>ch(n.state,e,!hn(n))),KR=n=>Fr(n,e=>ch(n.state,e,hn(n)));function Ex(n,e){return Fr(n,t=>{if(!t.empty)return lh(t,e);let r=n.moveVertically(t,e);return r.head!=t.head?r:n.moveToLineBoundary(t,e)})}var Rx=n=>Ex(n,!1),Mx=n=>Ex(n,!0);function Lx(n){let e=n.scrollDOM.clientHeighto.empty?n.moveVertically(o,e,t.height):lh(o,e));if(i.eq(r.selection))return!1;let s;if(t.selfScroll){let o=n.coordsAtPos(r.selection.main.head),a=n.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottomDx(n,!1),xg=n=>Dx(n,!0);function rs(n,e,t){let r=n.lineBlockAt(e.head),i=n.moveToLineBoundary(e,t);if(i.head==e.head&&i.head!=(t?r.to:r.from)&&(i=n.moveToLineBoundary(e,t,!1)),!t&&i.head==r.from&&r.length){let s=/^\s*/.exec(n.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(i=z.cursor(r.from+s))}return i}var JR=n=>Fr(n,e=>rs(n,e,!0)),eM=n=>Fr(n,e=>rs(n,e,!1)),tM=n=>Fr(n,e=>rs(n,e,!hn(n))),nM=n=>Fr(n,e=>rs(n,e,hn(n))),rM=n=>Fr(n,e=>z.cursor(n.lineBlockAt(e.head).from,1)),iM=n=>Fr(n,e=>z.cursor(n.lineBlockAt(e.head).to,-1));function sM(n,e,t){let r=!1,i=Jo(n.selection,s=>{let o=Nr(n,s.head,-1)||Nr(n,s.head,1)||s.head>0&&Nr(n,s.head-1,1)||s.headsM(n,e,!1);function vr(n,e,t){let r=Jo(n.state.selection,i=>{i.undirectional&&i.head>=i.anchor!=e&&(i=z.range(i.head,i.anchor));let s=t(i);return z.range(i.anchor,s.head,s.goalColumn,s.bidiLevel||void 0,s.assoc)});return r.eq(n.state.selection)?!1:(n.dispatch(Vr(n.state,r)),!0)}function Zx(n,e){return vr(n,e,t=>n.moveByChar(t,e))}var Ix=n=>Zx(n,!hn(n)),Xx=n=>Zx(n,hn(n));function zx(n,e){return vr(n,e,t=>n.moveByGroup(t,e))}var aM=n=>zx(n,!hn(n)),lM=n=>zx(n,hn(n));var cM=n=>{let e=!hn(n);return vr(n,e,t=>ch(n.state,t,e))},dM=n=>{let e=hn(n);return vr(n,e,t=>ch(n.state,t,e))};function Wx(n,e){return vr(n,e,t=>n.moveVertically(t,e))}var Nx=n=>Wx(n,!1),Bx=n=>Wx(n,!0);function Vx(n,e){return vr(n,e,t=>n.moveVertically(t,e,Lx(n).height))}var px=n=>Vx(n,!1),mx=n=>Vx(n,!0),hM=n=>vr(n,!0,e=>rs(n,e,!0)),uM=n=>vr(n,!1,e=>rs(n,e,!1)),fM=n=>{let e=!hn(n);return vr(n,e,t=>rs(n,t,e))},pM=n=>{let e=hn(n);return vr(n,e,t=>rs(n,t,e))},mM=n=>vr(n,!1,e=>z.cursor(n.lineBlockAt(e.head).from)),gM=n=>vr(n,!0,e=>z.cursor(n.lineBlockAt(e.head).to)),gx=({state:n,dispatch:e})=>(e(Vr(n,{anchor:0})),!0),Ox=({state:n,dispatch:e})=>(e(Vr(n,{anchor:n.doc.length})),!0),bx=({state:n,dispatch:e})=>(e(Vr(n,{anchor:n.selection.main.anchor,head:0})),!0),yx=({state:n,dispatch:e})=>(e(Vr(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),OM=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),bM=({state:n,dispatch:e})=>{let t=dh(n).map(({from:r,to:i})=>z.undirectionalRange(r,Math.min(i+1,n.doc.length)));return e(n.update({selection:z.create(t),userEvent:"select"})),!0},yM=({state:n,dispatch:e})=>{let t=Jo(n.selection,r=>{let i=ze(n),s=i.resolveStack(r.from,1);if(r.empty){let o=i.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:a}=o;if((a.from=r.to||a.to>r.to&&a.from<=r.from)&&o.next)return z.undirectionalRange(a.from,a.to)}return r});return t.eq(n.selection)?!1:(e(Vr(n,t)),!0)};function Fx(n,e){let{state:t}=n,r=t.selection,i=t.selection.ranges.slice();for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head);if(e?o.to0)for(let a=s;;){let l=n.moveVertically(a,e);if(l.heado.to){i.some(c=>c.head==l.head)||i.push(l);break}else{if(l.head==a.head)break;a=l}}}return i.length==r.ranges.length?!1:(n.dispatch(Vr(t,z.create(i,i.length-1))),!0)}var SM=n=>Fx(n,!1),vM=n=>Fx(n,!0),wM=({state:n,dispatch:e})=>{let t=n.selection,r=null;return t.ranges.length>1?r=z.create([t.main]):t.main.empty||(r=z.create([z.cursor(t.main.head)])),r?(e(Vr(n,r)),!0):!1};function kl(n,e){if(n.state.readOnly)return!1;let t="delete.selection",{state:r}=n,i=r.changeByRange(s=>{let{from:o,to:a}=s;if(o==a){let l=e(s);lo&&(t="delete.forward",l=ih(n,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=ih(n,o,!1),a=ih(n,a,!0);return o==a?{range:s}:{changes:{from:o,to:a},range:z.cursor(o,oi(n)))r.between(e,e,(i,s)=>{ie&&(e=t?s:i)});return e}var Yx=(n,e,t)=>kl(n,r=>{let i=r.from,{state:s}=n,o=s.doc.lineAt(i),a,l;if(t&&!e&&i>o.from&&iYx(n,!1,!0);var jx=n=>Yx(n,!0,!1),Ux=(n,e)=>kl(n,t=>{let r=t.head,{state:i}=n,s=i.doc.lineAt(r),o=i.charCategorizer(r);for(let a=null;;){if(r==(e?s.to:s.from)){r==t.head&&s.number!=(e?i.doc.lines:1)&&(r+=e?1:-1);break}let l=Pt(s.text,r-s.from,e)+s.from,c=s.text.slice(Math.min(r,l)-s.from,Math.max(r,l)-s.from),d=o(c);if(a!=null&&d!=a)break;(c!=" "||r!=t.head)&&(a=d),r=l}return r}),qx=n=>Ux(n,!1),xM=n=>Ux(n,!0);var PM=n=>kl(n,e=>{let t=n.lineBlockAt(e.head).to;return e.headkl(n,e=>{let t=n.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),$M=n=>kl(n,e=>{let t=n.moveToLineBoundary(e,!0).head;return e.head{if(n.readOnly)return!1;let t=n.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:De.of(["",""])},range:z.cursor(r.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},TM=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(r=>{if(!r.empty||r.from==0||r.from==n.doc.length)return{range:r};let i=r.from,s=n.doc.lineAt(i),o=i==s.from?i-1:Pt(s.text,i-s.from,!1)+s.from,a=i==s.to?i+1:Pt(s.text,i-s.from,!0)+s.from;return{changes:{from:o,to:a,insert:n.doc.slice(i,a).append(n.doc.slice(o,i))},range:z.cursor(a)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function dh(n){let e=[],t=-1;for(let r of n.selection.ranges){let i=n.doc.lineAt(r.from),s=n.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=n.doc.lineAt(r.to-1)),t>=i.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:i.from,to:s.to,ranges:[r]});t=s.number+1}return e}function Gx(n,e,t){if(n.readOnly)return!1;let r=[],i=[];for(let s of dh(n)){if(t?s.to==n.doc.length:s.from==0)continue;let o=n.doc.lineAt(t?s.to+1:s.from-1),a=o.length+1;if(t){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+n.lineBreak});for(let l of s.ranges)i.push(z.range(Math.min(n.doc.length,l.anchor+a),Math.min(n.doc.length,l.head+a)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:n.lineBreak+o.text});for(let l of s.ranges)i.push(z.range(l.anchor-a,l.head-a))}}return r.length?(e(n.update({changes:r,scrollIntoView:!0,selection:z.create(i,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}var AM=({state:n,dispatch:e})=>Gx(n,e,!1),CM=({state:n,dispatch:e})=>Gx(n,e,!0);function Hx(n,e,t){if(n.readOnly)return!1;let r=[];for(let s of dh(n))t?r.push({from:s.from,insert:n.doc.slice(s.from,s.to)+n.lineBreak}):r.push({from:s.to,insert:n.lineBreak+n.doc.slice(s.from,s.to)});let i=n.changes(r);return e(n.update({changes:i,selection:n.selection.map(i,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var _M=({state:n,dispatch:e})=>Hx(n,e,!1),EM=({state:n,dispatch:e})=>Hx(n,e,!0),Qg=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(dh(e).map(({from:i,to:s})=>(i>0?i--:s{let s;if(n.lineWrapping){let o=n.lineBlockAt(i.head),a=n.coordsAtPos(i.head,i.assoc||1);a&&(s=o.bottom+n.documentTop-a.bottom+n.defaultLineHeight/2)}return n.moveVertically(i,!0,s)}).map(t);return n.dispatch({changes:t,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0},Kx=({state:n,dispatch:e})=>(e(n.update(n.replaceSelection(n.lineBreak),{scrollIntoView:!0,userEvent:"input"})),!0);function RM(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ze(n).resolveInner(e),r=t.childBefore(e),i=t.childAfter(e),s;return r&&i&&r.to<=e&&i.from>=e&&(s=r.type.prop(xe.closedBy))&&s.indexOf(i.name)>-1&&n.doc.lineAt(r.to).from==n.doc.lineAt(i.from).from&&!/\S/.test(n.sliceDoc(r.to,i.from))?{from:r.to,to:i.from}:null}var Sx=Jx(!1),MM=Jx(!0);function Jx(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let r=e.changeByRange(i=>{let{from:s,to:o}=i,a=e.doc.lineAt(s),l=!n&&s==o&&RM(e,s);n&&(s=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new qs(e,{simulateBreak:s,simulateDoubleBreak:!!l}),d=eh(c,s);for(d==null&&(d=Gt(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));oa.from&&s{let i=[];for(let o=r.from;o<=r.to;){let a=n.doc.lineAt(o);a.number>t&&(r.empty||r.to>a.from)&&(e(a,i,r),t=a.number),o=a.to+1}let s=n.changes(i);return{changes:i,range:z.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}var LM=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),r=new qs(n,{overrideIndentation:s=>{let o=t[s];return o==null?-1:o}}),i=Tg(n,(s,o,a)=>{let l=eh(r,s.from);if(l==null)return;/\S/.test(s.text)||(l=0);let c=/^\s*/.exec(s.text)[0],d=qo(n,l);(c!=d||a.fromn.readOnly?!1:(e(n.update(Tg(n,(t,r)=>{r.push({from:t.from,insert:n.facet(yr)})}),{userEvent:"input.indent"})),!0),uh=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(Tg(n,(t,r)=>{let i=/^\s*/.exec(t.text)[0];if(!i)return;let s=Gt(i,n.tabSize),o=0,a=qo(n,Math.max(0,s-ii(n)));for(;o(n.setTabFocusMode(),!0);var e1=({state:n,dispatch:e})=>n.selection.ranges.some(t=>!t.empty)?hh({state:n,dispatch:e}):(e(n.update(n.replaceSelection(" "),{scrollIntoView:!0,userEvent:"input"})),!0),ZM=[{key:"Ctrl-b",run:Ax,shift:Ix,preventDefault:!0},{key:"Ctrl-f",run:Cx,shift:Xx},{key:"Ctrl-p",run:Rx,shift:Nx},{key:"Ctrl-n",run:Mx,shift:Bx},{key:"Ctrl-a",run:rM,shift:mM},{key:"Ctrl-e",run:iM,shift:gM},{key:"Ctrl-d",run:jx},{key:"Ctrl-h",run:Pg},{key:"Ctrl-k",run:PM},{key:"Ctrl-Alt-h",run:qx},{key:"Ctrl-o",run:QM},{key:"Ctrl-t",run:TM},{key:"Ctrl-v",run:xg}],IM=[{key:"ArrowLeft",run:Ax,shift:Ix,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:UR,shift:aM,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:tM,shift:fM,preventDefault:!0},{key:"ArrowRight",run:Cx,shift:Xx,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:qR,shift:lM,preventDefault:!0},{mac:"Cmd-ArrowRight",run:nM,shift:pM,preventDefault:!0},{key:"ArrowUp",run:Rx,shift:Nx,preventDefault:!0},{mac:"Cmd-ArrowUp",run:gx,shift:bx},{mac:"Ctrl-ArrowUp",run:fx,shift:px},{key:"ArrowDown",run:Mx,shift:Bx,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Ox,shift:yx},{mac:"Ctrl-ArrowDown",run:xg,shift:mx},{key:"PageUp",run:fx,shift:px},{key:"PageDown",run:xg,shift:mx},{key:"Home",run:eM,shift:uM,preventDefault:!0},{key:"Mod-Home",run:gx,shift:bx},{key:"End",run:JR,shift:hM,preventDefault:!0},{key:"Mod-End",run:Ox,shift:yx},{key:"Enter",run:Sx,shift:Sx},{key:"Mod-a",run:OM},{key:"Backspace",run:Pg,shift:Pg,preventDefault:!0},{key:"Delete",run:jx,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:qx,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:xM,preventDefault:!0},{mac:"Mod-Backspace",run:kM,preventDefault:!0},{mac:"Mod-Delete",run:$M,preventDefault:!0}].concat(ZM.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),t1=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:HR,shift:cM},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:KR,shift:dM},{key:"Alt-ArrowUp",run:AM},{key:"Shift-Alt-ArrowUp",run:_M},{key:"Alt-ArrowDown",run:CM},{key:"Shift-Alt-ArrowDown",run:EM},{key:"Mod-Alt-ArrowUp",run:SM},{key:"Mod-Alt-ArrowDown",run:vM},{key:"Escape",run:wM},{key:"Mod-Enter",run:MM},{key:"Alt-l",mac:"Ctrl-l",run:bM},{key:"Mod-i",run:yM,preventDefault:!0},{key:"Mod-[",run:uh},{key:"Mod-]",run:hh},{key:"Mod-Alt-\\",run:LM},{key:"Shift-Mod-k",run:Qg},{key:"Shift-Mod-\\",run:oM},{key:"Mod-/",run:ER},{key:"Alt-A",mac:"Ctrl-A",run:MR},{key:"Ctrl-m",mac:"Shift-Alt-m",run:DM}].concat(IM);function XM(n,e){let t=n.doc.lineAt(e),r=t.text.slice(0,e-t.from),i=Gt(r,n.tabSize),s=/^\s*$/.test(r)?ii(n):n.tabSize;return" ".repeat(s-i%s)}function n1(n){let e=new Map,t=0,r=0,i=0;for(let a of n.split(` +`,2e3)){if(!a.trim())continue;if(a[0]==" "){t++;continue}let l=a.length-a.trimStart().length;l>0&&r++;let c=l-i;c>=2&&c<=8&&e.set(c,(e.get(c)||0)+1),i=l}if(t>r)return" ";let s=2,o=0;for(let[a,l]of e)(l>o||l==o&&a!t.empty)?hh(n):(n.dispatch(e.changeByRange(t=>{let r=XM(e,t.head);return{changes:{from:t.head,insert:r},range:z.cursor(t.head+r.length)}}),{scrollIntoView:!0,userEvent:"input"}),!0)}function WM(n){for(let e=1;e<=n.doc.lines;e++)if(/^\d\d/.test(n.doc.line(e).text))return!0;return!1}var r1=[{key:"Enter",run:n=>WM(n.state)&&Kx(n)}],i1=[{key:"Tab",run:zM},{key:"Shift-Tab",run:uh}],s1=[{key:"Tab",run:e1},{key:"Shift-Tab",run:uh}],$l=50,fh=8,NM=!0;function ea(n){NM&&console.log("[asm-tab] "+n)}function ta(n,e){let t=0;for(let r=0;r0&&e.set(n,(e.get(n)||0)+1)}function BM(n,e){let t=[],r=/\S+/g,i;for(;(i=r.exec(n))!==null&&n[i.index]!=";";)t.push(ta(n,i.index));let s=/(^|\s);/.exec(n);s&&Ag(ta(n,s.index+s[1].length),e);let o=t.length&&t[0]==0?t.slice(1):t;o.length>=1&&Ag(o[0],e),o.length>=2&&Ag(o[1],e)}var VM=3;function o1(n,e){let t=n.doc.lineAt(e),r=n.doc.lines,i=(a,l,c,d)=>{let h=0;for(let u=a;u!=l&&h<$l;u+=c){let f=n.doc.line(u);f.text.trim()&&(BM(f.text,d),h++)}return h},s=new Map;return i(t.number+1,Math.min(r,t.number+$l)+1,1,s)e&&(o>i||o==i&&s=0?r:(Math.floor(e/t)+1)*t}function YM(n,e,t){let r=-1,i=0;for(let[s,o]of n)si||o==i&&s>r)&&(r=s,i=o);return r>=0?r:Math.max(0,Math.min(Math.floor((e-1)/t)*t,e-1))}function a1(n,e){let t=n.doc.lineAt(e),r=Math.max(1,t.number-$l),i=Math.min(n.doc.lines,t.number+$l);for(let s=r;s<=i;s++)if(n.doc.line(s).text.includes(" "))return!0;return!1}function l1(n){return"["+[...n.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>`${e}:${t}`).join(" ")+"]"}function jM(n,e){let t=n.doc.lineAt(e),r=ta(t.text,e-t.from),i=a1(n,e),s=i?fh:n.tabSize,o=o1(n,e),a=FM(o,r,s);return ea(`Tab @ line ${t.number} col ${r}: stops(col:freq)=${l1(o)} ${i?"grid=8 (file has tabs)":`grid=${n.tabSize}`} -> target=${a} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),a<=r?null:{from:e,insert:" ".repeat(a-r)}}function UM(n,e){let t=n.doc.lineAt(e),r=e-t.from;if(r==0)return ea(`Backspace @ line ${t.number} col 0: start of line, using default`),null;if(t.text[r-1]==" ")return ea(`Backspace @ line ${t.number} col ${ta(t.text,r)}: deleting one tab char`),{from:e-1,to:e};if(!/^[ \t]+$/.test(t.text.slice(0,r)))return ea(`Backspace @ line ${t.number} col ${ta(t.text,r)}: cursor not in leading whitespace, using default`),null;let i=a1(n,e),s=i?fh:n.tabSize,o=ta(t.text,r),a=o1(n,e),l=YM(a,o,s);if(l>=o)return ea(`Backspace @ line ${t.number} col ${o}: no stop before cursor, using default`),null;let c=e-(o-l);return ea(`Backspace @ line ${t.number} col ${o}: stops(col:freq)=${l1(a)} ${i?"grid=8 (file has tabs)":`grid=${n.tabSize}`} -> deleting cols ${l}..${o} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),{from:c,to:e}}function qM(n){let e=n.state;if(e.selection.ranges.some(r=>!r.empty))return!1;let t=e.changeByRange(r=>{let i=jM(e,r.head);return i?{changes:i,range:z.cursor(r.head+i.insert.length)}:{range:r}});return n.dispatch(t),!0}function GM(n){let e=n.state,t=e.selection.main;if(!t.empty)return!1;let r=UM(e,t.head);return r?(n.dispatch(e.update({changes:r,selection:z.cursor(r.from)})),!0):!1}function c1(n){return[{key:"Tab",run:e=>n()&&qM(e)},{key:"Backspace",run:e=>n()&&GM(e)}]}var HM=new Vt,KM=new Vt,JM=new Vt,eL=new Vt,tL=new Vt,nL=new Vt,rL=new Vt,iL=new Vt,h1="8bitworkshop/editorSettings",d1={tabSize:8,tabsToSpaces:!0,highlightSpecialChars:!1,highlightWhitespace:!1,highlightTrailingWhitespace:!1,closeBrackets:!1,debugHighlightTags:!1,showLineNumbers:!1,showStatusBar:!0};function na(){try{var n=localStorage.getItem(h1);if(n)return Ue(Ue({},d1),JSON.parse(n))}catch(e){}return Ue({},d1)}function sL(n){localStorage.setItem(h1,JSON.stringify(n))}var u1=[[eL,n=>[Me.tabSize.of(n.tabSize),yr.of(" ".repeat(n.tabSize))]],[nL,n=>Sn.of(n.tabsToSpaces?i1:s1)],[HM,n=>n.highlightSpecialChars?ew():[]],[KM,n=>n.highlightWhitespace?dw():[]],[JM,n=>n.highlightTrailingWhitespace?hw():[]],[tL,n=>n.closeBrackets?[ax(),Sn.of([{key:"Backspace",run:dx}])]:[]],[rL,n=>n.debugHighlightTags?ux:[]],[iL,n=>n.showLineNumbers?Xd():[]]];function f1(n){return u1.map(([e,t])=>e.of(t(n)))}var p1=new Set;function m1(n){p1.add(n)}function oL(n){var e=u1.map(([r,i])=>r.reconfigure(i(n)));for(var t of p1)t.dispatch({effects:e})}function g1(){var n=na(),e=!wo();bootbox.dialog({onEscape:!0,title:"Settings",message:`
@@ -38,23 +38,23 @@ Tags : ${s}`,h.style.whiteSpace="pre-wrap",h.style.fontFamily="monospace",h.sty
Internal
`:""} - `,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{n.tabSize=parseInt($("#setting_tabSize").val())||8,n.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),n.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),n.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),n.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),n.closeBrackets=$("#setting_closeBrackets").is(":checked"),n.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(n.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),n.showStatusBar=$("#setting_showStatusBar").is(":checked"),rL(n),iL(n),Cc(n.showStatusBar)}}}})}function ph(){return typeof navigator!="undefined"?navigator.storage:null}function sL(n){var e=n!==void 0?n:ph();return!!(e&&typeof e.persist=="function")}async function oL(n){var e=n!==void 0?n:ph();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(r){console.log("storage.estimate() failed",r)}return{}}async function aL(n){var e=n!==void 0?n:ph(),t={supported:sL(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(i){console.log("storage.persisted() failed",i)}var r=await oL(e);return t.usage=r.usage,t.quota=r.quota,t}async function _g(n){var e=n!==void 0?n:ph(),t=await aL(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(r){console.log("storage.persist() failed",r),t.granted=!1}return t}function lL(n){return n==null&&(n=typeof navigator!="undefined"?navigator.userAgent:""),n?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(n)?"chromium":/Firefox\/|FxiOS\//.test(n)?"firefox":/Safari\//.test(n)?"safari":"other":"other"}function O1(n){if(typeof n!="number"||!isFinite(n))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;n>=1024&&tRequest Local Storage Permissions again.";case"firefox":return"Firefox asks for permission the first time. If you dismissed or blocked that prompt, clear it from the padlock icon in the address bar and try Request Local Storage Permissions again.";case"safari":return"Safari decides on its own, and may delete site data after several days without a visit. Adding this page to your Favorites or Home Screen makes eviction less likely.";default:return"This browser decides on its own whether to keep site data."}}function cL(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+Cg}function S1(n,e){var t=b1(n),r;return n.supported?n.persisted?r=(n.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+Cg:r="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.

"+y1()+"

"+Cg:r=cL(),t?r+"

"+t:r}function v1(n){return"Your browser ran out of space for this site, so your last edit may not have been saved.

"+b1(n)+" Delete unused projects, or use File > Download All Changes as ZIP to back up your work before it is lost."+(n.supported&&!n.persisted?"

"+y1():"")}var Q1=Of(Qf());function Ks(n,e){if(e){var t=Da(e);t!=""&&n.startsWith(t+"/")&&(n=n.substring(t.length+1))}return n}function dL(n,e){var t=Da(e);return t.length>0&&t!="local"?[t+"/"+n,n]:[n]}function hL(n,e,t,r){var i=s=>Ry(n,s).map(o=>dL(o,e));return{includes:i(Lc(t,r)),links:i(Dc(t,r))}}async function x1(n,e,t,r,i){for(var s=[],o=new Set([Ks(e,e)]),a=[{path:e,text:t,tool:i(e)}];a.length;){var{path:l,text:c,tool:d}=a.shift(),h=hL(c,l,d,r),u=h.includes.map(D=>({candidates:D,link:!1})).concat(h.links.map(D=>({candidates:D,link:!0})));for(var{candidates:f,link:m}of u)for(var O of f){var S=Ks(O,e);if(o.has(S))break;var x=await n.readFile(O);if(x!=null){o.add(S),s.push({path:O,filename:S,link:m,data:x}),typeof x=="string"&&a.push({path:O,text:x,tool:m?i(O):d});break}}}return s}function P1(n,e){var t={updates:[],buildsteps:[]},r={},i=[],s=O=>{O&&i.indexOf(O)<0&&i.push(O)},o=Ks(n.mainPath,n.mainPath);t.updates.push({path:o,data:n.mainData}),r[o]=n.mainPath;var a=n.getToolForFilename(n.mainPath);s(a);var l=a.startsWith("remote:"),c=Ey(a),d=[],h=[];for(var u of e)(!u.link||l||c)&&(t.updates.push({path:u.filename,data:u.data}),d.push(u.filename),u.link&&c&&h.push(u.filename)),r[u.filename]=u.path;var f={path:o,files:[o].concat(d),platform:n.platformId,tool:a,mainfile:!0};if(h.length&&(f.linkfiles=h),n.symbols&&(f.symbols=n.symbols),n.buildArgs&&(f.buildArgs=n.buildArgs),t.buildsteps.push(f),!l&&!c){for(var u of e)if(u.data&&u.link){var m=n.getToolForFilename(u.filename);s(m),t.updates.push({path:u.filename,data:u.data}),t.buildsteps.push({path:u.filename,files:[u.filename].concat(d),platform:n.platformId,tool:m})}}return n.dataItems&&(t.setitems=n.dataItems),{msg:t,filename2path:r,preloads:i}}function Eg(n){if(n)for(var e in n){var t=n[e];if(t.lines){t.sourcefile=new Rs(t.lines,t.text);var r={};for(var i of t.lines){var s=i.path||"";(r[s]||(r[s]=[])).push(i)}var o=Object.keys(r);if(o.length>1||o.length==1&&o[0]!=""){t.sourcefiles={};for(var s of o)t.sourcefiles[s]=new Rs(r[s],t.text)}}t.asmlines&&(t.assemblyfile=new Rs(t.asmlines,t.text))}}function k1(n,e){if(!n||!n.sourcefiles)return null;var t=yt(Zt(e));for(var r in n.sourcefiles)if(yt(Zt(r))==t)return n.sourcefiles[r];return null}function w1(n,e){var t=k1(n,e);return t?Object.assign({},n,{sourcefile:t}):n}function Rg(n,e,t){if(n){var r=Ks(e,t),i=Zt(r);for(var s in n)if(s==e||s==r)return w1(n[s],r);for(var s in n)if(Zt(s)==i)return w1(n[s],r);for(var s in n){var o=k1(n[s],r);if(o)return Object.assign({},n[s],{sourcefile:o})}}}function $1(n,e){var t=n||[];return t.forEach(r=>r.source="native"),e&&(e.forEach(r=>r.source="linker"),t=t.concat(e)),t.sort((r,i)=>r.start-i.start),t}var mh=class{constructor(e){this.preset_id=Nt(e)}async getRemoteFile(e){let t=await C0(e,"arraybuffer");return t instanceof Uint8Array?wc(e,t):t}async getFileData(e){var t="presets/"+this.preset_id+"/"+e,r=await this.getRemoteFile(t);return r&&console.log("read",t,r.length,"bytes"),r}async setFileData(e,t){}onFileSystemUpdate(e){}};var ra=class{constructor(e,t){this.basefs=e,this.overlayfs=t}async getFileData(e){var t=await this.overlayfs.getFileData(e);return t==null?this.basefs.getFileData(e):t}async setFileData(e,t){return await this.overlayfs.setFileData(e,t),this.basefs.setFileData(e,t)}onFileSystemUpdate(e){this.overlayfs.onFileSystemUpdate(e),this.basefs.onFileSystemUpdate(e)}},gh=class{constructor(e){this.store=e}async getFileData(e){return this.store.getItem(e)}async setFileData(e,t){return this.store.setItem(e,t)}onFileSystemUpdate(e){}};var Oh=class{constructor(e,t,r,i){this.filedata={};this.pendingWorkerMessages=0;this.tools_preloaded={};this.isCompiling=!1;this.filename2path={};this.pendingQueries={};this.queryCounter=0;this.fileProvider={readFile:async e=>{var t,r;return(r=(t=(await this.loadFiles([e]))[0])==null?void 0:t.data)!=null?r:null}};this.worker=e,this.platform_id=t,this.platform=r,this.filesystem=i,e.onmessage=s=>{this.receiveWorkerMessage(s.data)},i.onFileSystemUpdate(async s=>{if(s in this.filedata){var o=await this.filesystem.getFileData(s);o&&(this.updateFile(s,o),this.onFileChanged&&this.onFileChanged(s,o))}})}receiveWorkerMessage(e){if(e&&e.qid!=null){var t=this.pendingQueries[e.qid];t&&(delete this.pendingQueries[e.qid],t(e));return}var r=this.pendingWorkerMessages>1;r?(this.sendBuild(),this.pendingWorkerMessages=1):(this.callbackBuildStatus&&this.callbackBuildStatus(!1),this.isCompiling||(console.log(this.pendingWorkerMessages),console.trace()),this.isCompiling=!1,this.pendingWorkerMessages=0),e&&Ly(e)?this.processBuildResult(e):Xc(e)&&this.processBuildListings(e),this.callbackBuildResult(e)}queryWorker(e){return new Promise(t=>{var r=++this.queryCounter;this.pendingQueries[r]=s=>{clearTimeout(i),t(s)};var i=setTimeout(()=>{delete this.pendingQueries[r],t(null)},15e3);e.qid=r,this.worker.postMessage(e)})}getToolForFilename(e){return this.remoteTool?"remote:"+this.remoteTool:this.platform.getToolForFilename(e)}preloadTool(e){e&&!this.tools_preloaded[e]&&(this.worker.postMessage({preload:e,platform:this.platform_id}),this.tools_preloaded[e]=!0)}loadFileDependencies(e){return x1(this.fileProvider,this.mainPath,e,this.platform_id,t=>this.getToolForFilename(t))}okToSend(){return this.pendingWorkerMessages++==0&&this.mainPath!=null}updateFileInStore(e,t){this.filesystem.setFileData(e,t)}buildWorkerMessage(e){var{msg:t,filename2path:r,preloads:i}=P1({mainPath:this.mainPath,mainData:this.getFile(this.mainPath),platformId:this.platform_id,getToolForFilename:o=>this.getToolForFilename(o),symbols:this.buildSymbols,buildArgs:this.buildArgs,dataItems:this.dataItems},e);Object.assign(this.filename2path,r);for(var s of i)this.preloadTool(s);return t}async loadFiles(e){var t=[],r=(o,a)=>{t.push({path:o,filename:this.stripLocalPath(o),link:!0,data:a})};for(var i of e)if(i in this.filedata){var s=this.filedata[i];s&&r(i,s)}else{var s=await this.filesystem.getFileData(i);s?(this.filedata[i]=s,r(i,s)):this.filedata[i]=null}return t}getFile(e){return this.filedata[e]}iterateFiles(e){for(var t in this.filedata)e(t,this.getFile(t))}sendBuild(){if(!this.mainPath)throw Error("need to call setMainFile first");var e=this.getFile(this.mainPath);if(e instanceof Uint8Array){this.isCompiling=!0,this.receiveWorkerMessage({output:e,errors:[],listings:null,symbolmap:null,params:{}});return}var t=typeof e=="string"?e:"";return this.loadFileDependencies(t).then(r=>{r||(r=[]);var i=this.buildWorkerMessage(r);this.worker.postMessage(i),this.isCompiling=!0})}updateFile(e,t){this.filedata[e]!=t&&(this.updateFileInStore(e,t),this.filedata[e]=t,this.okToSend()&&(this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()))}setMainFile(e){this.mainPath=e,this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()}processBuildListings(e){e.listings&&(this.listings=e.listings,Eg(this.listings))}processBuildResult(e){this.processBuildListings(e),this.processBuildSegments(e)}processBuildSegments(e){var t=this.platform.getMemoryMap&&this.platform.getMemoryMap().main;this.segments=$1(t,e.segments)}getListings(){return this.listings}getListingForFile(e){return Rg(this.getListings(),e,this.mainPath)}stripLocalPath(e){return Ks(e,this.mainPath)}setBuildOverrides(e,t){this.buildSymbols=e,this.buildArgs=t,this.okToSend()&&this.sendBuild()}updateDataItems(e){this.dataItems=e,this.okToSend()&&this.sendBuild()}};function bh(n){var e=Q1.default.createInstance({name:"__"+n,version:2});return e}var uL=`$NAME + `,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{n.tabSize=parseInt($("#setting_tabSize").val())||8,n.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),n.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),n.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),n.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),n.closeBrackets=$("#setting_closeBrackets").is(":checked"),n.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(n.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),n.showStatusBar=$("#setting_showStatusBar").is(":checked"),sL(n),oL(n),Cc(n.showStatusBar)}}}})}function ph(){return typeof navigator!="undefined"?navigator.storage:null}function aL(n){var e=n!==void 0?n:ph();return!!(e&&typeof e.persist=="function")}async function lL(n){var e=n!==void 0?n:ph();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(r){console.log("storage.estimate() failed",r)}return{}}async function cL(n){var e=n!==void 0?n:ph(),t={supported:aL(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(i){console.log("storage.persisted() failed",i)}var r=await lL(e);return t.usage=r.usage,t.quota=r.quota,t}async function _g(n){var e=n!==void 0?n:ph(),t=await cL(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(r){console.log("storage.persist() failed",r),t.granted=!1}return t}function dL(n){return n==null&&(n=typeof navigator!="undefined"?navigator.userAgent:""),n?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(n)?"chromium":/Firefox\/|FxiOS\//.test(n)?"firefox":/Safari\//.test(n)?"safari":"other":"other"}function O1(n){if(typeof n!="number"||!isFinite(n))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;n>=1024&&tRequest Local Storage Permissions again.";case"firefox":return"Firefox asks for permission the first time. If you dismissed or blocked that prompt, clear it from the padlock icon in the address bar and try Request Local Storage Permissions again.";case"safari":return"Safari decides on its own, and may delete site data after several days without a visit. Adding this page to your Favorites or Home Screen makes eviction less likely.";default:return"This browser decides on its own whether to keep site data."}}function hL(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+Cg}function S1(n,e){var t=b1(n),r;return n.supported?n.persisted?r=(n.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+Cg:r="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.

"+y1()+"

"+Cg:r=hL(),t?r+"

"+t:r}function v1(n){return"Your browser ran out of space for this site, so your last edit may not have been saved.

"+b1(n)+" Delete unused projects, or use File > Download All Changes as ZIP to back up your work before it is lost."+(n.supported&&!n.persisted?"

"+y1():"")}var Q1=Of(Qf());function Ks(n,e){if(e){var t=Da(e);t!=""&&n.startsWith(t+"/")&&(n=n.substring(t.length+1))}return n}function uL(n,e){var t=Da(e);return t.length>0&&t!="local"?[t+"/"+n,n]:[n]}function fL(n,e,t,r){var i=s=>Ry(n,s).map(o=>uL(o,e));return{includes:i(Lc(t,r)),links:i(Dc(t,r))}}async function x1(n,e,t,r,i){for(var s=[],o=new Set([Ks(e,e)]),a=[{path:e,text:t,tool:i(e)}];a.length;){var{path:l,text:c,tool:d}=a.shift(),h=fL(c,l,d,r),u=h.includes.map(D=>({candidates:D,link:!1})).concat(h.links.map(D=>({candidates:D,link:!0})));for(var{candidates:f,link:m}of u)for(var O of f){var S=Ks(O,e);if(o.has(S))break;var x=await n.readFile(O);if(x!=null){o.add(S),s.push({path:O,filename:S,link:m,data:x}),typeof x=="string"&&a.push({path:O,text:x,tool:m?i(O):d});break}}}return s}function P1(n,e){var t={updates:[],buildsteps:[]},r={},i=[],s=O=>{O&&i.indexOf(O)<0&&i.push(O)},o=Ks(n.mainPath,n.mainPath);t.updates.push({path:o,data:n.mainData}),r[o]=n.mainPath;var a=n.getToolForFilename(n.mainPath);s(a);var l=a.startsWith("remote:"),c=Ey(a),d=[],h=[];for(var u of e)(!u.link||l||c)&&(t.updates.push({path:u.filename,data:u.data}),d.push(u.filename),u.link&&c&&h.push(u.filename)),r[u.filename]=u.path;var f={path:o,files:[o].concat(d),platform:n.platformId,tool:a,mainfile:!0};if(h.length&&(f.linkfiles=h),n.symbols&&(f.symbols=n.symbols),n.buildArgs&&(f.buildArgs=n.buildArgs),t.buildsteps.push(f),!l&&!c){for(var u of e)if(u.data&&u.link){var m=n.getToolForFilename(u.filename);s(m),t.updates.push({path:u.filename,data:u.data}),t.buildsteps.push({path:u.filename,files:[u.filename].concat(d),platform:n.platformId,tool:m})}}return n.dataItems&&(t.setitems=n.dataItems),{msg:t,filename2path:r,preloads:i}}function Eg(n){if(n)for(var e in n){var t=n[e];if(t.lines){t.sourcefile=new Rs(t.lines,t.text);var r={};for(var i of t.lines){var s=i.path||"";(r[s]||(r[s]=[])).push(i)}var o=Object.keys(r);if(o.length>1||o.length==1&&o[0]!=""){t.sourcefiles={};for(var s of o)t.sourcefiles[s]=new Rs(r[s],t.text)}}t.asmlines&&(t.assemblyfile=new Rs(t.asmlines,t.text))}}function k1(n,e){if(!n||!n.sourcefiles)return null;var t=yt(Zt(e));for(var r in n.sourcefiles)if(yt(Zt(r))==t)return n.sourcefiles[r];return null}function w1(n,e){var t=k1(n,e);return t?Object.assign({},n,{sourcefile:t}):n}function Rg(n,e,t){if(n){var r=Ks(e,t),i=Zt(r);for(var s in n)if(s==e||s==r)return w1(n[s],r);for(var s in n)if(Zt(s)==i)return w1(n[s],r);for(var s in n){var o=k1(n[s],r);if(o)return Object.assign({},n[s],{sourcefile:o})}}}function $1(n,e){var t=n||[];return t.forEach(r=>r.source="native"),e&&(e.forEach(r=>r.source="linker"),t=t.concat(e)),t.sort((r,i)=>r.start-i.start),t}var mh=class{constructor(e){this.preset_id=Nt(e)}async getRemoteFile(e){let t=await C0(e,"arraybuffer");return t instanceof Uint8Array?wc(e,t):t}async getFileData(e){var t="presets/"+this.preset_id+"/"+e,r=await this.getRemoteFile(t);return r&&console.log("read",t,r.length,"bytes"),r}async setFileData(e,t){}onFileSystemUpdate(e){}};var ra=class{constructor(e,t){this.basefs=e,this.overlayfs=t}async getFileData(e){var t=await this.overlayfs.getFileData(e);return t==null?this.basefs.getFileData(e):t}async setFileData(e,t){return await this.overlayfs.setFileData(e,t),this.basefs.setFileData(e,t)}onFileSystemUpdate(e){this.overlayfs.onFileSystemUpdate(e),this.basefs.onFileSystemUpdate(e)}},gh=class{constructor(e){this.store=e}async getFileData(e){return this.store.getItem(e)}async setFileData(e,t){return this.store.setItem(e,t)}onFileSystemUpdate(e){}};var Oh=class{constructor(e,t,r,i){this.filedata={};this.pendingWorkerMessages=0;this.tools_preloaded={};this.isCompiling=!1;this.filename2path={};this.pendingQueries={};this.queryCounter=0;this.fileProvider={readFile:async e=>{var t,r;return(r=(t=(await this.loadFiles([e]))[0])==null?void 0:t.data)!=null?r:null}};this.worker=e,this.platform_id=t,this.platform=r,this.filesystem=i,e.onmessage=s=>{this.receiveWorkerMessage(s.data)},i.onFileSystemUpdate(async s=>{if(s in this.filedata){var o=await this.filesystem.getFileData(s);o&&(this.updateFile(s,o),this.onFileChanged&&this.onFileChanged(s,o))}})}receiveWorkerMessage(e){if(e&&e.qid!=null){var t=this.pendingQueries[e.qid];t&&(delete this.pendingQueries[e.qid],t(e));return}var r=this.pendingWorkerMessages>1;r?(this.sendBuild(),this.pendingWorkerMessages=1):(this.callbackBuildStatus&&this.callbackBuildStatus(!1),this.isCompiling||(console.log(this.pendingWorkerMessages),console.trace()),this.isCompiling=!1,this.pendingWorkerMessages=0),e&&Ly(e)?this.processBuildResult(e):Xc(e)&&this.processBuildListings(e),this.callbackBuildResult(e)}queryWorker(e){return new Promise(t=>{var r=++this.queryCounter;this.pendingQueries[r]=s=>{clearTimeout(i),t(s)};var i=setTimeout(()=>{delete this.pendingQueries[r],t(null)},15e3);e.qid=r,this.worker.postMessage(e)})}getToolForFilename(e){return this.remoteTool?"remote:"+this.remoteTool:this.platform.getToolForFilename(e)}preloadTool(e){e&&!this.tools_preloaded[e]&&(this.worker.postMessage({preload:e,platform:this.platform_id}),this.tools_preloaded[e]=!0)}loadFileDependencies(e){return x1(this.fileProvider,this.mainPath,e,this.platform_id,t=>this.getToolForFilename(t))}okToSend(){return this.pendingWorkerMessages++==0&&this.mainPath!=null}updateFileInStore(e,t){this.filesystem.setFileData(e,t)}buildWorkerMessage(e){var{msg:t,filename2path:r,preloads:i}=P1({mainPath:this.mainPath,mainData:this.getFile(this.mainPath),platformId:this.platform_id,getToolForFilename:o=>this.getToolForFilename(o),symbols:this.buildSymbols,buildArgs:this.buildArgs,dataItems:this.dataItems},e);Object.assign(this.filename2path,r);for(var s of i)this.preloadTool(s);return t}async loadFiles(e){var t=[],r=(o,a)=>{t.push({path:o,filename:this.stripLocalPath(o),link:!0,data:a})};for(var i of e)if(i in this.filedata){var s=this.filedata[i];s&&r(i,s)}else{var s=await this.filesystem.getFileData(i);s?(this.filedata[i]=s,r(i,s)):this.filedata[i]=null}return t}getFile(e){return this.filedata[e]}iterateFiles(e){for(var t in this.filedata)e(t,this.getFile(t))}sendBuild(){if(!this.mainPath)throw Error("need to call setMainFile first");var e=this.getFile(this.mainPath);if(e instanceof Uint8Array){this.isCompiling=!0,this.receiveWorkerMessage({output:e,errors:[],listings:null,symbolmap:null,params:{}});return}var t=typeof e=="string"?e:"";return this.loadFileDependencies(t).then(r=>{r||(r=[]);var i=this.buildWorkerMessage(r);this.worker.postMessage(i),this.isCompiling=!0})}updateFile(e,t){this.filedata[e]!=t&&(this.updateFileInStore(e,t),this.filedata[e]=t,this.okToSend()&&(this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()))}setMainFile(e){this.mainPath=e,this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()}processBuildListings(e){e.listings&&(this.listings=e.listings,Eg(this.listings))}processBuildResult(e){this.processBuildListings(e),this.processBuildSegments(e)}processBuildSegments(e){var t=this.platform.getMemoryMap&&this.platform.getMemoryMap().main;this.segments=$1(t,e.segments)}getListings(){return this.listings}getListingForFile(e){return Rg(this.getListings(),e,this.mainPath)}stripLocalPath(e){return Ks(e,this.mainPath)}setBuildOverrides(e,t){this.buildSymbols=e,this.buildArgs=t,this.okToSend()&&this.sendBuild()}updateDataItems(e){this.dataItems=e,this.okToSend()&&this.sendBuild()}};function bh(n){var e=Q1.default.createInstance({name:"__"+n,version:2});return e}var T1="https://8bitworkshop.com/latest/";function pL(n){var e=Object.keys(n).filter(t=>n[t]!=null).map(t=>encodeURIComponent(t)+"="+encodeURIComponent(n[t])).join("&");return e?T1+"?"+e:T1}function A1(n,e,t,r){var i=pL({platform:e,githubURL:t,file:r});return`${encodeURIComponent(n)} ===== -[Open this project in 8bitworkshop](https://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE). -`;function Js(){for(var n={},e=0;e{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var r=t.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((e,t)=>{e()})}isFileIgnored(e){return e=e.toUpperCase(),!!(e.startsWith("LICENSE")||e.startsWith("README")||e.startsWith("."))}async getGithubSession(e){var t=Ql(e);if(!t)throw new Error("Please enter a valid GitHub URL.");var r=Js()[t.repopath],i=t.branch||r&&r.branch,s=this.github.repos(t.user,t.repo);try{i=(await s.fetch()).defaultBranch||"master"}catch(a){console.log("could not fetch default branch: "+a),i="main"}console.log("branch =",i);var o={url:e,user:t.user,reponame:t.repo,repopath:t.repopath,branch:i,subtreepath:t.subtreepath,prefix:"",repo:s,platform_id:this.project?this.project.platform_id:r?r.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.git.refs.heads(t.branch).fetch())).then(r=>(t.head=r,t.sha=r.object.sha,t.repo.git.trees(t.sha).fetch())).then(r=>{if(t.subtreepath){for(let i of r.tree)if(i.type=="tree"&&i.path==t.subtreepath&&i.sha)return t.repo.git.trees(i.sha).fetch();throw Error("Cannot find subtree '"+t.subtreepath+"' in tree "+r.sha)}return r}).then(r=>(t.tree=r,t))}bind(e,t){var r="__repo__"+e.repopath;if(t){var i={url:e.url,branch:e.branch,platform_id:e.platform_id,mainPath:e.mainPath,sha:e.sha};console.log("storing",i),localStorage.setItem(r,JSON.stringify(i))}else localStorage.removeItem(r)}import(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.contents("README.md").read())).catch(r=>(console.log(r),console.log("no README.md found"),t.repo.fetch().then(i=>""))).then(r=>{var i;if(i=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(r),i&&i[1]&&(console.log("main path: '"+i[1]+"'"),t.mainPath=i[1]),i=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(r),i){if(console.log("platform id: '"+i[1]+"'"),t.platform_id&&!t.platform_id.startsWith(i[1]))throw Error("Platform mismatch: Repository is '"+i[1]+"', you have '"+t.platform_id+"' selected.");t.platform_id=i[1]}return this.bind(t,!0),t})}pull(e,t){var r;return this.getGithubHEADTree(e).then(i=>{r=i;let s=[];return r.paths=[],r.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),r.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=r.repo.git.blobs(o.sha).fetch().then(l=>{var c=r.prefix+o.path,d=o.size,h=l.encoding,u=l.content;if(l.encoding=="base64"){var f=yc(atob(u)),m=vc(o.path,f);u=m?f:Sc(f)}return l.size!=u.length&&(u=u.slice(0,l.size)),(t||this.store).setItem(c,u)});s.push(a)}else console.log("ignoring "+o.path)}),Promise.all(s)}).then(i=>r)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,r,i){var s,o=this.project.platform_id,a=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:e,description:t,private:i,auto_init:!1,license_template:r}).then(l=>{s=l;var c=uL;c=c.replace(/\$NAME/g,encodeURIComponent(e)),c=c.replace(/\$PLATFORM/g,encodeURIComponent(o)),c=c.replace(/\$GITHUBURL/g,encodeURIComponent(s.htmlUrl)),c=c.replace(/\$MAINFILE/g,encodeURIComponent(a));var d={message:"8bitworkshop: updated metadata in README.md",content:btoa(c)};return s.contents("README.md").add(d)}).then(()=>this.getGithubSession(s.htmlUrl))}commit(e,t,r){var i;return t||(t="updated from 8bitworkshop.com"),this.getGithubHEADTree(e).then(s=>{if(i=s,i.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(r.map(o=>typeof o.data=="string"?i.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):i.repo.git.blobs.create({content:btoa(Q0(o.data)),encoding:"base64"})))}).then(s=>i.repo.git.trees.create({tree:r.map((o,a)=>({path:o.path,mode:"100644",type:"blob",sha:s[a].sha})),base_tree:i.tree.sha})).then(s=>i.repo.git.commits.create({message:t,tree:s.sha,parents:[i.head.object.sha]})).then(s=>i.repo.commits(s.sha).fetch()).then(s=>(i.commit=s,i))}push(e){return e.head.update({sha:e.commit.sha}).then(t=>e)}deleteRepository(e){return this.getGithubSession(e).then(t=>t.repo.remove())}};var Sh=class{constructor(e){this.options=e,this.sampleRate=44100,this.soundData=[],this.tapData=[67,54,52,45,84,65,80,69,45,82,65,87,1,0,0,0,0,0,0,0]}getWAVHeader(){let e=new Uint8Array(44),t=new DataView(e.buffer);return t.setUint32(0,1380533830,!1),t.setUint32(4,44+this.soundData.length,!0),t.setUint32(8,1463899717,!1),t.setUint32(12,1718449184,!1),t.setUint32(16,16,!0),t.setUint16(20,1,!0),t.setUint16(22,1,!0),t.setUint32(24,this.sampleRate,!0),t.setUint32(28,this.sampleRate*2,!0),t.setUint16(32,1,!0),t.setUint16(34,8,!0),t.setUint32(36,1684108385,!1),t.setUint32(40,this.soundData.length,!0),e}addSilence(e){let t=Math.floor(this.sampleRate*e);for(let i=0;i>8&255),this.tapData.push(r>>16&255)}addCycle(e){this.tapData.push(e);let t=Math.floor(this.sampleRate*eo.TAP_LENGTH_IN_SECONDS*e);for(let r=0;r>8&255,this.tapData[18]=e>>16&255,this.tapData[19]=e>>24&255}getTAPData(){return this.updateTAPHeader(),new Uint8Array(this.tapData)}getSoundData(){let e=this.getWAVHeader(),t=new Uint8Array(e.length+this.soundData.length);return t.set(e,0),t.set(new Uint8Array(this.soundData),e.length),t}},Ze=class Ze{constructor(e,t){this.options=t,this.checksum=0,this.data=new Uint8Array(0),this.filenameData=this.makeFilename(e),this.startAddress=0,this.endAddress=0,this.fileType=Ze.FILE_TYPE_NONE,this.waveFile=null}makeFilename(e){let t=[];e=e.toUpperCase();for(let i=0;i0;)this.addByteFrame(t,!0),t-=1,r-=1}addData(){for(let e=0;e>8,!0),this.addByteFrame(this.endAddress&255,!0),this.addByteFrame((this.endAddress&65280)>>8,!0),this.addFilename();for(let t=0;t{var e=T0(window.Module,Array.from(wn()));window.Module=null;var t=_0(e),r=$.param({p:Oe}),i=pL(r,"player.html","r="+t),s=' + ``` Query-string parameters: @@ -24,6 +24,6 @@ Example using Bootstrap's `embed-responsive` class: ```html
+ src="https://8bitworkshop.com/latest/?embed=1&platform=nes&highlight=&file0_name=testembed.dasm&file0_data=...">
``` diff --git a/src/ide/services.ts b/src/ide/services.ts index 89412e3a..f897ceca 100644 --- a/src/ide/services.ts +++ b/src/ide/services.ts @@ -1,4 +1,5 @@ +import { githubReadme } from "../common/links"; import { byteArrayToString, byteArrayToUTF8, isProbablyBinary, stringToByteArray } from "../common/util"; import { FileData } from "../common/workertypes"; import { CodeProject, ProjectFilesystem } from "./project"; @@ -30,8 +31,6 @@ export interface GHSession extends GHRepoMetadata { paths?: string[]; } -const README_md_template = "$NAME\n=====\n\n[Open this project in 8bitworkshop](https://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).\n"; - export function getRepos(): { [key: string]: GHRepoMetadata } { var repos = {}; for (var i = 0; i < localStorage.length; i++) { @@ -293,11 +292,7 @@ export class GithubService { .then((_repo) => { repo = _repo; // create README.md - var s = README_md_template; - s = s.replace(/\$NAME/g, encodeURIComponent(reponame)); - s = s.replace(/\$PLATFORM/g, encodeURIComponent(platform_id)); - s = s.replace(/\$GITHUBURL/g, encodeURIComponent(repo.htmlUrl)); - s = s.replace(/\$MAINFILE/g, encodeURIComponent(mainPath)); + var s = githubReadme(reponame, platform_id, repo.htmlUrl, mainPath); var config = { message: '8bitworkshop: updated metadata in README.md', content: btoa(s) diff --git a/src/tools/buildpresets.ts b/src/tools/buildpresets.ts index ab40194c..412a506e 100644 --- a/src/tools/buildpresets.ts +++ b/src/tools/buildpresets.ts @@ -91,6 +91,7 @@ export interface BuildOptions { run?: boolean; // load each build and run it frames?: number; // frames to advance when running (default 300) pngDir?: string; // directory to write a screenshot into, when running + presetsDir?: string; // where the preset files live (default 'presets') } const DEFAULT_TIMEOUT = 120000; @@ -148,7 +149,7 @@ function toolForPreset(relpath: string, platform: string): string | null { // skeleton. -> the tool that template belongs to. The name is usually // the tool id, but a tool can override it (getSkeletonName). -function toolsBySkeletonName(): { [name: string]: string } { +export function toolsBySkeletonName(): { [name: string]: string } { const map: { [name: string]: string } = {}; for (const tool of Object.keys(TOOLS)) { const name = getSkeletonName(tool); @@ -160,7 +161,7 @@ function toolsBySkeletonName(): { [name: string]: string } { // The IDE loads a skeleton into a file the user names, so it has to be built // under a name the tool will accept -- cmoc, for one, refuses skeleton.cmoc. -function skeletonBuildName(tool: string, skelname: string): string { +export function skeletonBuildName(tool: string, skelname: string): string { const meta = getToolMeta(tool); const ext = meta && meta.extensions && meta.extensions[0]; return 'skeleton' + (ext || '.' + skelname); @@ -538,6 +539,12 @@ export async function runPreset( return run; } +// A preset path is relative to the presets dir, unless it is absolute -- the +// compatibility sweep builds files that live in another tree. +function presetFile(presetsDir: string, preset: string): string { + return path.isAbsolute(preset) ? preset : path.join(presetsDir, preset); +} + export async function buildPreset( preset: string, platform: string, tool: string, opts: BuildOptions & { buildAs?: string } = {} ): Promise { @@ -563,7 +570,7 @@ export async function buildPreset( }); await preloadOnce(tool, platform); result = await Promise.race([ - compileSourceFile(tool, platform, path.join(PRESETS_DIR, preset), opts.buildAs), + compileSourceFile(tool, platform, presetFile(opts.presetsDir || PRESETS_DIR, preset), opts.buildAs), exited, expired, ]); @@ -662,7 +669,7 @@ function runStatus(run: RunResult): string { } } -function compareToBaseline(results: PresetResult[], baselinePath: string): number { +export function compareToBaseline(results: PresetResult[], baselinePath: string): number { const baseline: PresetResult[] = JSON.parse(fs.readFileSync(baselinePath, 'utf8')); const was: { [preset: string]: boolean } = {}; const wasWarnings: { [preset: string]: number } = {}; diff --git a/src/tools/compatcheck.ts b/src/tools/compatcheck.ts new file mode 100644 index 00000000..b3861374 --- /dev/null +++ b/src/tools/compatcheck.ts @@ -0,0 +1,534 @@ +// compatcheck - build an older release's examples with today's toolchain. +// +// The compilers live in the repo as wasm binaries (src/worker/wasm), so +// swapping one out changes what every program in the IDE has to live with. +// This tool answers the question "does the new compiler still accept the old +// code?" by building an older release's examples with the current worker. +// +// npm run compatcheck # the release we track +// npm run compatcheck -- --tag 3.12.1 +// npm run compatcheck -- --dir ~/old/presets +// npm run compatcheck -- --baseline test/compat/3.12.1.json +// npm run compatcheck -- --write-baseline test/compat/3.12.1.json +// npm run compatcheck -- --json out.json +// +// --tag checks the release out into a temporary worktree (removed when the +// run ends) and builds the examples it shipped. --dir builds a preset tree +// that is already on disk. +// +// The sources are the old ones, read the way the IDE reads them; the +// toolchain, the libraries and the build parameters are today's. A failure +// means the current toolchain no longer accepts that old source -- which is +// what the baseline records, so a new one shows up as breakage. +// +// With --baseline it exits nonzero when an example that used to build stops +// building, so it can gate a release. --write-baseline records the current +// results as that baseline. + +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { execFileSync } from 'child_process'; +import { PLATFORMS } from '../common/emu'; +import { TOOL_META } from '../common/toolmeta'; +import { getBasePlatform } from '../common/util'; +import { + PresetEntry, PresetResult, buildAllPresets, compareToBaseline, + listPresets, skeletonBuildName, toolsBySkeletonName, +} from './buildpresets'; +import { getToolForFilename } from './testlib'; +import { toolRoot } from './toolroot'; +import { c } from './cliformat'; + +// The release whose examples we keep building. It is the last one before the +// toolchains started moving (sdcc 4, the cc65 upgrade, the WASI conversions), +// so its examples are the ones most likely to notice a change. +const DEFAULT_TAG = '3.12.1'; + +const useColor = !!process.stdout.isTTY && !process.env.NO_COLOR; +const paint = (code: string) => (s: string | number) => + useColor ? `${code}${s}${c.reset}` : `${s}`; +const bold = paint(c.bold), dim = paint(c.dim); +const green = paint(c.green), red = paint(c.red), yellow = paint(c.yellow), cyan = paint(c.cyan); + +function arg(argv: string[], name: string): string | undefined { + const i = argv.indexOf('--' + name); + return i >= 0 ? argv[i + 1] : undefined; +} + +// --- the old tree --------------------------------------------------------- + +interface Corpus { + dir: string; // the presets directory to build + tree: string; // the tree it came from (its src/platform has the example lists) + label: string; // the tag or the directory it came from + cleanup?: () => void; +} + +/** Check a tag out into a worktree and return its presets directory. */ +function checkoutTag(tag: string): Corpus { + const root = fs.mkdtempSync(path.join(os.tmpdir(), '8bws-compat-')); + const wt = path.join(root, 'wt'); + let done = false; + const cleanup = () => { + if (done) return; + done = true; + process.off('exit', cleanup); + try { + execFileSync('git', ['worktree', 'remove', '--force', wt], + { cwd: toolRoot(), stdio: 'pipe' }); + } catch (e) { /* the worktree is removed below anyway */ } + fs.rmSync(root, { recursive: true, force: true }); + }; + // a killed run must not leave a worktree behind + process.on('exit', cleanup); + try { + execFileSync('git', ['worktree', 'add', '--detach', wt, tag], + { cwd: toolRoot(), stdio: 'pipe' }); + } catch (e) { + cleanup(); + const msg = (e as any).stderr ? '' + (e as any).stderr : '' + e; + throw new Error(`cannot check out ${tag}: ${msg.trim()}`); + } + const dir = path.join(wt, 'presets'); + if (!fs.existsSync(dir)) { + cleanup(); + throw new Error(`${tag} has no presets/ directory`); + } + return { dir, tree: wt, label: tag, cleanup }; +} + +// --- the old release's example list --------------------------------------- + +export interface OldExample { + id: string; // the preset id, e.g. 'hello.c' or 'chase/game.c' + folder: string; // the preset folder it lives in, e.g. 'nes' + platform: string; // the platform that offered it back then +} + +/** Strip the comments from a TypeScript source, so commented-out presets go. */ +function stripComments(text: string): string { + return text + .replace(/\/\*[\s\S]*?\*\//g, ' ') + .replace(/\/\/[^\n]*/g, ' '); +} + +/** The body of an array literal that starts at `from`, up to its closing bracket. */ +function arrayBody(text: string, from: number): string { + let depth = 0; + for (let i = from; i < text.length; i++) { + const ch = text[i]; + if (ch === '[') depth++; + else if (ch === ']') { + depth--; + if (depth === 0) return text.substring(from, i); + } + } + return ''; +} + +/** + * The examples an old release offered, read from its platform sources: every + * platform's getPresets() list, which is what the Examples menu showed. The + * other files in a preset folder are helpers and data that never built on + * their own. + */ +export function parseOldExamples(treeDir: string): { examples: OldExample[]; problems: string[] } { + const examples: OldExample[] = []; + const problems: string[] = []; + const platformDir = path.join(treeDir, 'src', 'platform'); + let files: string[]; + try { + files = fs.readdirSync(platformDir).filter((f) => f.endsWith('.ts')).sort(); + } catch (e) { + return { examples, problems }; + } + for (const file of files) { + let text: string; + try { + text = stripComments(fs.readFileSync(path.join(platformDir, file), 'utf8')); + } catch (e) { + problems.push(`platform ${file}: cannot read it`); + continue; + } + // every array in the file, with the ids it holds + const arrays = parseArrays(text); + // the scopes a platform can be written in: a class (which may extend + // another one) or a function assigned to a variable + const scopes = parseScopes(text); + const scopeOf = (pos: number): string | null => { + let found: string | null = null; + for (const s of scopes) { + if (s.pos > pos) break; + found = s.name; + } + return found; + }; + // the array each scope returns from getPresets() + const arrayOf = new Map(); + const rePresets = /getPresets\s*(?:\(\s*\)|=\s*function\s*\(\s*\))\s*(?::[^;{]*?)?\{([^{}]*?)\}/g; + let m: RegExpExecArray; + while ((m = rePresets.exec(text)) !== null) { + const scope = scopeOf(m.index); + const ret = /return\s+([A-Za-z0-9_]+)\s*;/.exec(m[1]); + if (scope && ret) arrayOf.set(scope, ret[1]); + } + // the array a scope returns, looking up the inheritance chain and the + // scopes nested inside it + const arrayFor = (scope: string): string | null => { + const own = scopes.find((s) => s.name === scope); + if (!own) return null; + if (arrayOf.has(own.name)) return arrayOf.get(own.name)!; + let parent: string | null = own.parent || null; + while (parent) { + if (arrayOf.has(parent)) return arrayOf.get(parent)!; + parent = scopes.find((s) => s.name === parent)?.parent || null; + } + // a platform that wraps its class in a function + const inside = scopes + .filter((s) => s.pos > own.pos && s.end < own.end) + .sort((a, b) => (b.end - b.pos) - (a.end - a.pos)); + for (const s of inside) { + if (arrayOf.has(s.name)) return arrayOf.get(s.name)!; + } + return null; + }; + // the platform ids each scope is registered under + const idsOf = new Map(); + const reReg = /PLATFORMS\[\s*['"]([^'"]+)['"]\s*\]\s*=\s*([A-Za-z0-9_]+)/g; + while ((m = reReg.exec(text)) !== null) { + const list = idsOf.get(m[2]) || []; + list.push(m[1]); + idsOf.set(m[2], list); + } + for (const [cls, ids] of idsOf) { + const array = arrayFor(cls); + if (!array) continue; + // the folder the platform's examples live in: the base of its id, + // as long as that folder is really there ('nes-asm' shares 'nes') + let folder: string | null = null; + let owner = ids[0]; + for (const id of ids) { + const base = getBasePlatform(id); + if (fs.existsSync(path.join(treeDir, 'presets', base))) { + folder = base; + owner = id; + break; + } + } + if (!folder) continue; + for (const id of arrays.get(array)?.ids || []) { + examples.push({ id, folder, platform: owner }); + } + } + } + // the same example can be offered by several platforms (an emulator + // variant); keep one + const seen = new Set(); + const unique = examples.filter((e) => { + const key = e.folder + '/' + e.id; + if (seen.has(key)) return false; + seen.add(key); + return true; + }); + return { examples: unique, problems }; +} + +/** The scopes a platform can be written in, in the order they appear. */ +interface Scope { + name: string; + pos: number; + end: number; // where its body ends + parent?: string; // the class it extends +} + +function braceEnd(text: string, from: number): number { + let depth = 0; + for (let i = from; i < text.length; i++) { + const ch = text[i]; + if (ch === '{') depth++; + else if (ch === '}') { + depth--; + if (depth === 0) return i; + } + } + return text.length; +} + +function parseScopes(text: string): Scope[] { + const scopes: Scope[] = []; + const reClass = /\bclass\s+([A-Za-z0-9_]+)(?:\s+extends\s+([A-Za-z0-9_]+))?/g; + let m: RegExpExecArray; + while ((m = reClass.exec(text)) !== null) { + const brace = text.indexOf('{', m.index + m[0].length); + scopes.push({ + name: m[1], pos: m.index, end: braceEnd(text, brace), parent: m[2], + }); + } + // the older platforms are plain functions assigned to a variable + const reFunc = /(?:var|const|let)\s+([A-Za-z0-9_]+)\s*=\s*function\s*\(/g; + while ((m = reFunc.exec(text)) !== null) { + const brace = text.indexOf('{', m.index + m[0].length); + scopes.push({ name: m[1], pos: m.index, end: braceEnd(text, brace) }); + } + scopes.sort((a, b) => a.pos - b.pos); + return scopes; +} + +/** Every array literal in a source file, with the preset ids it holds. */function parseArrays(text: string): Map { + const arrays = new Map(); + const reDecl = /(?:const|var|let)\s+([A-Za-z0-9_]+)\b[^=;]*=\s*/g; + let m: RegExpExecArray; + while ((m = reDecl.exec(text)) !== null) { + const name = m[1]; + const start = m.index + m[0].length; + const bracket = text.indexOf('[', start); + if (bracket < 0) continue; + // whatever sits between the '=' and the '[' names another array + // whose entries are folded in ('Atari8_PRESETS.concat([...])') + const head = text.substring(start, bracket); + if (!/^[A-Za-z0-9_.\s()]*$/.test(head)) continue; + const body = arrayBody(text, bracket); + const ids: string[] = []; + const reId = /\{\s*id\s*:\s*['"]([^'"]+)['"]/g; + let im: RegExpExecArray; + while ((im = reId.exec(body)) !== null) ids.push(im[1]); + for (const [other, value] of arrays) { + if (head.includes(other)) ids.push(...value.ids); + } + arrays.set(name, { ids }); + } + return arrays; +} + +// --- what to build -------------------------------------------------------- + +export interface CorpusEntry extends PresetEntry { + abs: string; // the file to build +} + +export interface CorpusListing { + entries: CorpusEntry[]; + skipped: { preset: string; why: string }[]; +} + +/** + * The examples of an old release, with the tool that builds each one today. + * Files that are still examples in this tree take their platform and tool + * from there; the rest are matched by extension. + */ +export async function listCorpus(corpus: Corpus): Promise { + const current = await listPresets(undefined, undefined, () => { }, () => { }); + const byPath = new Map(); + const platformByFolder = new Map(); + for (const e of current) { + byPath.set(e.preset, e); + const folder = e.preset.split('/')[0]; + if (!platformByFolder.has(folder)) platformByFolder.set(folder, e.platform); + } + const { examples, problems } = parseOldExamples(corpus.tree); + const entries: CorpusEntry[] = []; + const skipped: { preset: string; why: string }[] = []; + for (const p of problems) skipped.push({ preset: p, why: 'cannot read the old platform list' }); + + // the platform that owns a folder today, when no example of it is left + const folders = new Map(); + for (const id of Object.keys(PLATFORMS).sort()) { + const folder = getBasePlatform(id); + const cur = folders.get(folder); + if (!cur || (cur.includes('.') && !id.includes('.'))) folders.set(folder, id); + } + + const skeletonTools = toolsBySkeletonName(); + const add = (rel: string, platform: string | null, tool: string | null, buildAs?: string) => { + const abs = path.join(corpus.dir, rel); + if (!fs.existsSync(abs)) { + skipped.push({ preset: rel, why: 'not in this release' }); + return; + } + if (!platform) { + skipped.push({ preset: rel, why: 'no platform uses this folder' }); + return; + } + if (!tool) { + skipped.push({ preset: rel, why: 'no local tool for this file type' }); + return; + } + entries.push({ preset: rel, platform, tool, buildAs, abs }); + }; + + for (const example of examples) { + const rel = example.folder + '/' + example.id; + const known = byPath.get(rel); + if (known) { + // still an example today: same platform, same tool + add(rel, known.platform, known.tool, known.buildAs); + continue; + } + const platform = platformByFolder.get(example.folder) || folders.get(example.folder) || null; + if (!platform) { + skipped.push({ preset: rel, why: 'no platform uses this folder' }); + continue; + } + // the tool that builds this file today + const name = path.basename(example.id); + const tool = getToolForFilename(name, platform); + add(rel, platform, tool && !tool.startsWith('remote:') ? tool : null); + } + + // the templates a platform offers for a new file are worth building too + for (const folder of fs.readdirSync(corpus.dir).sort()) { + const fdir = path.join(corpus.dir, folder); + if (!fs.statSync(fdir).isDirectory()) continue; + for (const name of fs.readdirSync(fdir).sort()) { + if (!name.startsWith('skeleton.')) continue; + const rel = folder + '/' + name; + const known = byPath.get(rel); + if (known) { + // still a template today: same platform, same tool + add(rel, known.platform, known.tool, known.buildAs); + continue; + } + const skelname = name.substring('skeleton.'.length); + const tool = skeletonTools[skelname]; + const platform = platformByFolder.get(folder) || folders.get(folder) || null; + if (!tool || tool.startsWith('remote:')) { + skipped.push({ preset: rel, why: 'no local tool for this template' }); + continue; + } + add(rel, platform, tool, skeletonBuildName(tool, skelname)); + } + } + return { entries, skipped }; +} + +// --- reporting ------------------------------------------------------------ + +/** The version of each tool that took part, so a failure names a compiler. */ +function toolVersions(tools: string[]): string { + const versions: string[] = []; + for (const tool of [...new Set(tools)].sort()) { + const meta = TOOL_META[tool]; + versions.push(`${tool}${meta && meta.version ? ' ' + meta.version : ''}`); + } + return versions.join(', '); +} + +/** The baseline record of a build: what has to keep working. */ +function baselineRecord(r: PresetResult): any { + const meta = TOOL_META[r.tool]; + return { + preset: r.preset, + platform: r.platform, + tool: r.tool, + toolVersion: meta ? meta.version : undefined, + ok: r.ok, + errors: r.errors, + warnings: r.warnings, + }; +} + +async function main(): Promise { + const argv = process.argv.slice(2); + const tag = arg(argv, 'tag') || DEFAULT_TAG; + const dir = arg(argv, 'dir'); + const jsonFile = arg(argv, 'json'); + const baseline = arg(argv, 'baseline'); + const writeBaseline = arg(argv, 'write-baseline'); + const quiet = argv.includes('--quiet'); + const verbose = argv.includes('--verbose'); + const strict = argv.includes('--strict'); + const timeout = arg(argv, 'timeout') ? parseInt(arg(argv, 'timeout')) : undefined; + + let corpus: Corpus; + if (dir) { + // either the tree or its presets folder will do + const abs = path.resolve(dir); + const presets = fs.existsSync(path.join(abs, 'presets')) ? path.join(abs, 'presets') : abs; + const tree = fs.existsSync(path.join(abs, 'src', 'platform')) ? abs : path.dirname(abs); + if (!fs.existsSync(presets)) { + console.error(red(`error: no such directory: ${dir}`)); + return 2; + } + corpus = { dir: presets, tree, label: abs }; + } else { + try { + corpus = checkoutTag(tag); + } catch (e) { + console.error(red(`error: ${e.message || e}`)); + return 2; + } + } + + let code = 0; + try { + const { entries, skipped } = await listCorpus(corpus); + console.log(bold(`building ${entries.length} examples from ${corpus.label} with today's toolchain...`)); + console.log(dim('tools: ' + toolVersions(entries.map((e) => e.tool)))); + if (skipped.length) { + console.log(dim(`skipped ${skipped.length} file(s)`)); + for (const s of skipped) console.log(dim(` ${s.preset}: ${s.why}`)); + } + const results = await buildAllPresets({ + presets: entries, + presetsDir: corpus.dir, + timeout, verbose, strict, + onResult: (r: PresetResult) => { + if (quiet && r.ok && !r.warnings) return; + const status = r.ok ? green('ok ') : red(bold('FAIL')); + const size = r.size != null ? `${r.size} bytes` : ''; + console.log(`${status} ${r.preset} ${cyan(`[${r.tool}/${r.platform}]`)} ${dim(size)} ${dim(r.ms + 'ms')}`); + for (const e of r.errors || []) console.log(` ${yellow(e)}`); + if (r.ok) for (const w of r.warnings || []) console.log(` ${dim('warning: ' + w)}`); + if (r.internal) console.log(` ${red(bold('CRASH'))} ${red(r.internal)}`); + if (r.log) console.log(dim(r.log.split('\n').map((l) => ' | ' + l).join('\n'))); + }, + }); + + const failed = results.filter((r) => !r.ok); + const built = results.length - failed.length; + const tally = `${built}/${results.length} examples build`; + console.log('\n' + bold(failed.length ? yellow(tally) : green(tally))); + if (failed.length) { + const byTool: { [tool: string]: number } = {}; + for (const r of failed) byTool[r.tool] = (byTool[r.tool] || 0) + 1; + console.log('\n' + bold('failures:')); + for (const r of failed) console.log(` ${red(r.preset)} ${cyan(`[${r.tool}/${r.platform}]`)}`); + console.log('\nby tool: ' + Object.keys(byTool).sort() + .map((t) => `${cyan(t)}=${byTool[t]}`).join(' ')); + } + const warned = results.filter((r) => r.ok && r.warnings); + if (warned.length) { + const nwarn = warned.reduce((n, r) => n + r.warnings.length, 0); + console.log('\n' + yellow(`${nwarn} warning(s) in ${warned.length} example(s)`)); + } + + if (jsonFile) { + const report = results.map(({ log, ...r }) => ({ ...r, log: undefined })); + fs.writeFileSync(jsonFile, JSON.stringify(report, null, 1)); + console.log(dim(`\nwrote ${jsonFile}`)); + } + if (writeBaseline) { + fs.writeFileSync(writeBaseline, + JSON.stringify(results.map(baselineRecord), null, 1) + '\n'); + console.log(dim(`wrote ${writeBaseline}`)); + } + if (baseline) { + // the gate is about new breakage: an example that already failed + // is in the baseline, and stays as it is + const broke = compareToBaseline(results, baseline); + if (broke) code = 1; + } else if (failed.length) { + code = 1; + } + } finally { + // the worktree has to go before the process exits + if (corpus.cleanup) corpus.cleanup(); + } + return code; +} + +if (require.main === module) { + main().then((code) => process.exit(code)) + .catch((e) => { console.error(e); process.exit(2); }); +}