From 70572dfbd9e659aa07b8e3d6978adf26f604086c Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 1 Jun 2026 01:08:00 +0200 Subject: [PATCH 01/14] update code for info box --- content/2026/lychee-recursion/index.md | 16 ++++------------ static/css/main.css | 21 +++++++++++++++++++-- templates/index.html | 5 ++++- templates/shortcodes/info.html | 5 ++++- 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/content/2026/lychee-recursion/index.md b/content/2026/lychee-recursion/index.md index 9fca0758..3ee7c6a9 100644 --- a/content/2026/lychee-recursion/index.md +++ b/content/2026/lychee-recursion/index.md @@ -113,9 +113,7 @@ In September 2021 we decided to do a bigger rewrite: a stream-based architecture [PR #165](https://github.com/lycheeverse/lychee/pull/165) was closed in December 2021. The stream refactor landed and gave us a 35–50% speedup. Nice! Tradeoffs, I guess. -{% info() %} - -## Takeaways +{% info(title="Takeaways") %} - **Counting outstanding work in an async pipeline is fragile.** An off-by-one in distributed counting means a deadlock or an early exit. - **Big refactors and feature branches don't get along.** The stream rewrite made the recursion branch stale before it was ever ready. @@ -176,9 +174,7 @@ I took the problem to the Tokio Discord, and the advice that came back was: "Sto Even ignoring the deadlock, there was a second issue. The new `from_chan` method benchmarked roughly 30% slower than the existing `from` method. The extra channel indirection cost something, and it cost it even in the non-recursive case, which is the case basically everyone uses. -{% info() %} - -## Takeaways +{% info(title="Takeaways") %} - **Channels are the wrong tool for cyclic pipelines.** Their close-on-last-sender-drop semantics are fundamentally at odds with a feedback loop. - **`for_each_concurrent` looks perfect and isn't.** It processes a stream concurrently but gives you no way to feed items back in. @@ -228,9 +224,7 @@ A semaphore solves the concurrency-limiting problem. It does nothing for the *te There's a subtlety with the permits, too. Swapping `for_each_concurrent` for raw `tokio::spawn` loses the bounded concurrency that channels gave us for free. The semaphore adds it back, but you have to manage permits carefully. If a task acquires a permit, spawns a child, and transfers the permit, the parent can't do more work. If it clones the permit, you can blow past your concurrency limit. Getting the permit lifecycle exactly right is fiddly. -{% info() %} - -## Takeaways +{% info(title="Takeaways") %} - **Semaphores solve concurrency, not termination.** You still need something to tell you "all the work is done." - **`Arc>` is a code smell in async Rust.** When you start wrapping everything in locks, you're fighting the ownership model instead of working with it. That can leave a lot of performance on the table since every access is a lock acquisition across all threads. @@ -314,9 +308,7 @@ After a burst of energy in January 2025, things slowed. Merge conflicts piled up I didn't want them to apologize. They got further than anyone, on a hard feature, in a complex async codebase, as a volunteer. My own note on the PR a while later was just the sober truth: -{% info() %} - -## Takeaways +{% info(title="Takeaways") %} - **The atomic counter is a manual counter in a trenchcoat.** It had the same failure modes. - When you're adding `vec![]` and `0` to every `Response::new()` call, that's a leaky abstraction. diff --git a/static/css/main.css b/static/css/main.css index 9ef1366d..8a521aff 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -527,15 +527,32 @@ details { .info { margin: 40px 0 20px; + padding: 35px; border-style: dotted; + font-size: 0.9em; } -.info > *:first-child, -.info > *:last-child { +.info > *:first-child { margin-top: 0; +} + +.info > *:last-child { margin-bottom: 0; } +.info-title { + margin: 0 0 24px; + font-weight: 700; + font-size: 1.25em; + line-height: 1.2; +} + +.info ul, +.info ol { + padding-left: 1.3em; + margin: 0; +} + details summary { width: 100%; margin: -20px; diff --git a/templates/index.html b/templates/index.html index b941d6ae..1a08c85f 100644 --- a/templates/index.html +++ b/templates/index.html @@ -37,7 +37,10 @@ crossorigin /> - + diff --git a/templates/shortcodes/info.html b/templates/shortcodes/info.html index 6ffb889a..3fe6aeaf 100644 --- a/templates/shortcodes/info.html +++ b/templates/shortcodes/info.html @@ -1,3 +1,6 @@ +{% set title = title | default(value="") %}
- {{ body | markdown() | safe }} + {% if title %} +

{{ title }}

+ {% endif %} {{ body | markdown() | safe }}
From 4419c2a4902c6e4272a8851801cc12b7bc25ce00 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 12:41:13 +0200 Subject: [PATCH 02/14] first version --- .../how-other-link-checkers-recurse/index.md | 390 ++ static/js/mermaid-init.js | 73 + static/js/mermaid.min.js | 3405 +++++++++++++++++ templates/page.html | 6 +- templates/shortcodes/mermaid.html | 1 + 5 files changed, 3874 insertions(+), 1 deletion(-) create mode 100644 content/2026/how-other-link-checkers-recurse/index.md create mode 100644 static/js/mermaid-init.js create mode 100644 static/js/mermaid.min.js create mode 100644 templates/shortcodes/mermaid.html diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md new file mode 100644 index 00000000..525a7ace --- /dev/null +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -0,0 +1,390 @@ ++++ +title="How Other Link Checkers Do Recursion" +date=2026-06-03 +draft=false +[taxonomies] +tags=["rust", "dev", "lychee", "async"] ++++ + +After I published [Five Years of Trying to Add Recursion to lychee](@/2026/lychee-recursion/index.md), the most common reply I got was a very fair question: + +> If recursion is so hard, how do *other* link checkers do it? Plenty of them already crawl websites. + +It's a great question, and a slightly uncomfortable one, because the honest answer is: **they didn't find a clever trick I missed.** They were built as crawlers from the very first commit, and I built lychee as a stream. + +So I went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features) — [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it would have cost me to do the same. + +If you haven't read the [first post](@/2026/lychee-recursion/index.md), the one-paragraph recap: lychee was architected as a one-shot, unidirectional pipeline (`inputs → extract → check → output`). Recursion needs a *cycle* (responses create new inputs), and cycles in an async, channel-based pipeline are where the [dragons live](@/2026/lychee-recursion/index.md). 🐲 Five years and four attempts later, the pieces to do it properly only just landed. + +## The One Pattern Everyone Shares + +Before the individual teardowns, here's the punchline. Every recursive checker I looked at is built from the same three parts: + +1. **A mutable work queue** (a *frontier*), not a fixed input stream. Discovered URLs go back into the same queue they came from. +2. **A visited set that is updated at enqueue time** — *before* the request completes — so two pages discovering the same link can't both submit it. +3. **A primitive that answers "is everything done?"** — a `WaitGroup`, a joinable-queue counter, an `onIdle()` promise, or a queue-drain event. + +Diagrammatically, lychee and the crawlers are different *shapes*: + +```mermaid +graph TD + subgraph crawler["Everyone else: a worklist (a cycle)"] + direction TB + CQ[Frontier queue] --> CW[Worker pool] + CW --> CP[Fetch and parse page] + CP -->|new links| CQ + CP --> CR[Record result] + end + subgraph lychee["lychee 2020-2024: a pipeline (a DAG)"] + direction TB + LA[Inputs] --> LB[Extractor] + LB --> LC[Checker] + LC --> LD[Results] + end +``` + +The crawler shape has a back-edge baked in. The pipeline shape doesn't, and every one of my failed attempts was an effort to bend that back-edge into a graph that was never designed to hold one. + +The crucial design decision they all share, stated more precisely: + +```mermaid +graph TD + Seed[Seed URLs] --> Enq["Enqueue step: is URL in visited set?"] + Enq -->|yes| Skip[Drop] + Enq -->|no| Mark["Mark visited, then push"] + Mark --> Q[Frontier queue] + Q --> Pool["Worker pool, bounded concurrency"] + Pool --> FP[Fetch page and extract links] + FP -->|discovered links| Enq + FP --> Rec[Record result] + Q -.->|empty AND no worker busy| Stop[Terminate] +``` + +Note *where* the visited check happens: at the **enqueue** step, atomically with the mark, before the worker ever touches the network. That ordering is the entire fix to the deduplication race that haunted lychee's attempts 1–4, where the cache was written *after* checking. + +Keep that diagram in mind. Each tool below is a variation on it. + +## muffet (Go): a WaitGroup and a Set + +[muffet](https://github.com/raviqqe/muffet) is the tool people pointed me to most often. It's the closest in spirit to lychee: a fast, single-binary, concurrent website checker. Its recursion core fits on a screen. + +The dedup + scheduling decision lives in one method (`page_checker.go`): + +```go +func (c *pageChecker) addPage(p page) { + if !c.donePages.Add(p.URL().String()) { + c.daemonManager.Add(func() { c.checkPage(p) }) + } +} +``` + +`donePages` is a `concurrentStringSet` (a mutex-guarded `map[string]struct{}`). `Add` returns whether the URL was already present, so a page is only scheduled the *first* time it's seen. Dedup happens at enqueue, synchronized by the set's mutex. This is the diagram above, line for line. + +Checking a page fetches all of its links concurrently, and feeds qualifying ones back into `addPage` — the back-edge: + +```go +go func(u string) { + defer w.Done() + status, p, err := c.fetcher.Fetch(u) + // ... + if !c.onePageOnly && p != nil && c.linkValidator.Validate(p.URL()) { + c.addPage(p) // recursion: discovered page re-enters the frontier + } +}(u) +``` + +### How muffet knows it's done + +This is the part I want to highlight, because it's *exactly* the termination problem I spent years on. muffet's answer is a tiny `daemonManager` built around a `sync.WaitGroup` (`daemon_manager.go`): + +```go +func (m daemonManager) Add(f func()) { + m.waitGroup.Add(1) + m.daemons <- func() { + f() + m.waitGroup.Done() + } +} + +func (m daemonManager) Run() { + go func() { + for f := range m.daemons { + go f() + } + }() + m.waitGroup.Wait() // <- termination +} +``` + +Every scheduled page increments the group; every completed page decrements it; `Wait()` returns when the count hits zero. The whole crawl bootstraps with a single `addPage` before `Run()`, so the counter is positive before anyone waits on it. + +This is the *same counter* I tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this discipline so naturally that it doesn't feel like distributed termination detection at all — but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). + +### Where the tradeoffs are + +- **Concurrency is *not* bounded by the daemon manager.** `Run()` does `go f()` for every task, spawning unbounded goroutines. The actual limiting happens downstream in a `semaphore` (a buffered-channel counting semaphore) and a per-host throttler pool. muffet *separates* "the frontier" from "the rate limiter," which is precisely the separation lychee lacked when it tried to use one bounded channel as both. +- **Cheap goroutines do a lot of heavy lifting.** Spawning a goroutine per link is fine in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed me toward `Arc>` and the ownership pain I [wrote about](@/2026/lychee-recursion/index.md). +- **Extensibility:** muffet is a focused CLI, not a library. There's no plugin surface; you get what the flags give you. lychee deliberately ships `lychee-lib` as a reusable crate, which raises the bar — every architectural choice has to survive being a public API. +- **Scalability:** unbounded goroutines + an in-memory visited set scale comfortably to large sites, but there's no disk-backed frontier, so a truly enormous crawl is bounded by RAM. Same as lychee. + +{% info(title="Takeaways: muffet") %} + +- **muffet's termination is a `sync.WaitGroup`, full stop.** It's the design lychee converged on after five years; muffet got it for free from Go's standard library on day one. +- **The frontier and the concurrency limiter are separate things.** A mutex-guarded set is the frontier; a semaphore + host throttler bounds concurrency. Conflating them is what deadlocked lychee. +- **Goroutines hide the cost that Rust makes you pay explicitly.** The same per-task model that's trivial in Go is where Rust's `Send`/ownership friction shows up. + +{% end %} + +## LinkChecker (Python): a joinable queue, unbounded on purpose + +[LinkChecker](https://github.com/linkchecker/linkchecker) has existed since the year 2000. It's a synchronous, thread-pool crawler, and it's the most explicit about the exact deadlock that bit me. + +Its frontier is a hand-written `UrlQueue` (`cache/urlqueue.py`), a clone of Python's `queue.Queue` with `task_done()`/`join()`. Look at the very first design comment: + +```python +def __init__(self, max_allowed_urls=None): + # Note: don't put a maximum size on the queue since it would + # lead to deadlocks when all worker threads called put(). + self.queue = collections.deque() + # ... + self.unfinished_tasks = 0 +``` + +That comment is *my [Attempt 4 backpressure deadlock](@/2026/lychee-recursion/index.md)*, called out as a known hazard and designed around. lychee tried to push discovered URLs into a **bounded** channel; when it filled, the response handler blocked, no responses drained, no slots freed → deadlock. LinkChecker's answer is blunt: the frontier is **unbounded**. Backpressure is enforced elsewhere (a fixed thread count and per-host throttling), never by blocking a producer that is also a consumer. + +### Termination by counter — done right + +`join()` blocks until `unfinished_tasks` hits zero (`urlqueue.py`): + +```python +def task_done(self, url_data): + with self.all_tasks_done: + self.finished_tasks += 1 + self.unfinished_tasks -= 1 + self.in_progress -= 1 + if self.unfinished_tasks <= 0: + self.all_tasks_done.notify_all() + +def join(self, timeout=None): + with self.all_tasks_done: + while self.unfinished_tasks: + self.all_tasks_done.wait() +``` + +Again: a counter. But the increment in `_put` and the decrement in `task_done` are both inside the queue's `Condition` lock, and a worker calls `task_done` only after fully processing an item *including enqueuing its children*. So children are counted before the parent is marked done — no premature zero. It's `WaitGroup` semantics implemented with a mutex and a condition variable. + +### Deduplication, before the request + +LinkChecker writes the URL into its result cache at **enqueue** time (`urlqueue.py`): + +```python +def _put(self, url_data): + key = url_data.cache_url + cache = url_data.aggregate.result_cache + if cache.has_result(key): + return # already queued/checked -> skip + # ... + self.queue.append(url_data) + self.unfinished_tasks += 1 + # add a None placeholder so this URL is never queued twice + cache.add_result(key, None) +``` + +That `add_result(key, None)` placeholder is the fix lychee's attempts kept missing. By the time any worker thread checks the URL, the cache already says "mine" — concurrent discovery from another page is a no-op. + +### Per-host politeness and termination guards + +The `Aggregate` (`director/aggregator.py`) throttles per host: + +```python +@synchronized(_hosts_lock) +def wait_for_host(self, host): + t = time.time() + if host in self.times and self.times[host] > t: + time.sleep(self.times[host] - t) + # spread requests using maxrequestspersecond + wait_time = random.uniform(wait_time_min, wait_time_max) + self.times[host] = time.time() + wait_time +``` + +and `abort()` calls `urlqueue.join(timeout=…)` so a stuck crawl can't hang forever. + +### Where the tradeoffs are + +- **Blocking threads, not async.** Each of the (default 10–100) `Checker` threads does blocking I/O via `requests`. Simple and battle-tested, but the concurrency ceiling is the thread count, and each thread carries a full stack. lychee's Tokio model reaches thousands of concurrent in-flight requests on a handful of OS threads; LinkChecker can't, and doesn't try. +- **Unbounded frontier = unbounded memory.** The explicit "no max size" decision trades a deadlock for RAM growth on huge sites. There's a `max_allowed_urls` cap and a periodic `cleanup()` to mitigate it. +- **Extensibility is excellent.** LinkChecker has a real plugin system (`linkcheck/plugins/`: anchor checks, SSL, virus scanning, …) and many output loggers. This is the most extensible of the bunch, and it pays for that with a large, mature, somewhat old-fashioned codebase. +- **Scalability:** GIL-bound and thread-limited, so raw throughput is the lowest here — but correctness and feature coverage are the highest. + +{% info(title="Takeaways: LinkChecker") %} + +- **The unbounded frontier is a deliberate anti-deadlock choice**, documented in a one-line comment that describes the exact failure mode lychee hit in Attempt 4. +- **Dedup at `put()` time** (a `None` placeholder in the cache) is the synchronization lychee lacked. The cache must claim the URL *before* the request, not after. +- **Threads buy simplicity at the cost of throughput.** A blocking thread-pool is the easiest correct model and the slowest one. + +{% end %} + +## linkinator (TypeScript): `queue.onIdle()` and a single thread that can't race + +[linkinator](https://github.com/JustinBeckwith/linkinator) is a Node.js checker, and it benefits from something neither Go nor Rust gives you: a **single-threaded event loop**. Check-and-insert into the visited set is atomic *for free*, because no two callbacks run simultaneously. + +The frontier is a concurrency-limited `Queue` (a p-queue-style structure). Termination is one line in `check()` (`src/index.ts`): + +```ts +const queue = new Queue({ concurrency: options.concurrency || 100 }); +// ... seed the queue ... +await queue.onIdle(); // <- resolves when nothing is queued or running +``` + +`onIdle()` is the library's distributed-termination-detection-in-a-trenchcoat: it resolves when the queue is empty *and* no task is in flight. Same idea as muffet's `WaitGroup` and LinkChecker's `join()`, just handed to you by a dependency. + +### The back-edge and the race-free dedup + +When crawling, `crawl()` GETs the page, extracts links, and for each genuinely new URL re-enters the queue (`src/index.ts`): + +```ts +const inCache = options.cache.has(result.url.href); +if (!inCache) { + options.cache.add(result.url.href); // mark visited... + const checkPromise = (async () => { + await this.crawl({ url: result.url, /* ... */ }); + })(); + options.pendingChecks.set(result.url.href, checkPromise); + options.queue.add(() => checkPromise); // ...then enqueue +} +``` + +Because JavaScript is single-threaded, the `has` → `add` → `queue.add` sequence executes without interruption. In Rust or Go, that's a critical section you must guard with a mutex (and get the ordering right); in Node it's just three statements. This is the single biggest reason recursion is *easier* in Node than in Rust — and it's a language property, not a cleverness. + +linkinator also keeps a `relationshipCache` of `` `${url}|${parent}` `` keys, and a `pendingChecks` map so it can wait on an in-flight check and still report a *duplicate broken link* against every parent that references it. Those reuse-operations are themselves pushed onto the same queue, so `onIdle()` correctly waits for them too. + +### HEAD vs GET — the same wall lychee is at now + +linkinator uses `HEAD` for leaf links but `GET` when it needs to crawl, because **recursion needs the response body to find more links**: + +```ts +response = await makeRequest(options.crawl ? 'GET' : 'HEAD', options.url.href, /* ... */); +``` + +This is precisely [lychee's one remaining open problem](@/2026/lychee-recursion/index.md): you can only recurse into pages you fetched with a body. linkinator just always GETs when crawling; lychee plans to reuse the body it already has in cache from the check it just performed. + +### Where the tradeoffs are + +- **Single-threaded is a blessing and a ceiling.** No data races, trivially correct dedup — but HTML parsing is CPU work that blocks the one event loop. For thousands of pages, you're bound by a single core. lychee's multi-threaded Tokio runtime parses and checks in parallel. +- **In-memory result inflation.** The source explicitly comments on "massive result inflation for heavily interlinked sites": the `results` array, `cache`, and `relationshipCache` all grow with the crawl. Fine for a docs site, heavy for a giant one. +- **Rate limiting is reactive, not proactive.** There's a `delayCache` that backs off per host on a `429` with `Retry-After`, but no general per-host concurrency cap like lychee's `HostPool`. linkinator can hammer a host until it complains; lychee now paces *before* the complaint. +- **Extensibility:** it's an `EventEmitter` (`on('link')`, `on('pagestart')`, …), so it's embeddable and scriptable, which is genuinely nice. It's a library first, like lychee. + +{% info(title="Takeaways: linkinator") %} + +- **`queue.onIdle()` is the termination story** — the same quiescence detection, outsourced to a queue library. +- **A single-threaded event loop makes enqueue-time dedup race-free for free.** This is the biggest structural reason recursion is easier in Node than in Rust. +- **Reactive 429 backoff is not the same as proactive per-host pacing.** lychee's `HostPool` aims higher, at the cost of more machinery. + +{% end %} + +## broken-link-checker (JavaScript): event-driven, robots-aware, two queues deep + +[broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (BLC) takes the event-driven model furthest. It's built on [`limited-request-queue`](https://github.com/stevenvachon/limited-request-queue), a queue with `maxSockets` (concurrency) and `rateLimit`, and it nests **two** of them: a site-level queue feeding a page-level `HtmlUrlChecker`. + +The frontier and dedup live in `SiteChecker` (`lib/public/SiteChecker.js`). Visited pages are tracked in a `URLCache`, written at enqueue time: + +```js +#enqueuePage(url, customData, auth) { + // Avoid links to self within page + this.#sitePagesChecked.set(url, PAGE_WAS_CHECKED); // mark before crawl + this.#htmlUrlChecker.enqueue(url, customData, auth); +} +``` + +Recursion is gated by a filter that decides whether a discovered link becomes a crawled page: + +```js +#maybeEnqueuePage(link, customData, auth) { + const tagGroup = this.#options.tags.recursive[this.#options.filterLevel][link.get(HTML_TAG_NAME)] ?? {}; + const attrSupported = link.get(HTML_ATTR_NAME) in tagGroup; + if (!attrSupported || + link.get(IS_BROKEN) || + !link.get(IS_INTERNAL) || + this.#sitePagesChecked.has(rebasedURL) || // dedup check + !this.#isAllowed(link)) { // robots.txt + // do nothing + } else if (this.#options.includePage(rebasedURL)) { + this.#enqueuePage(rebasedURL, customData, auth); + } +} +``` + +### Termination by event cascade + +BLC has no counter and no `onIdle()`. It rides the queue's drain events. When the page-level queue empties it fires `END_EVENT`, which makes `SiteChecker` emit `SITE_EVENT` and call the site queue's `done` callback; when the *site* queue drains, it fires `REQUEST_QUEUE_END_EVENT` → the public `END_EVENT`: + +```js +.on(END_EVENT, () => { + this.emit(SITE_EVENT, this.#currentPageError, this.#currentSiteURL, this.#currentCustomData); + this.#currentDone(); // tell the site queue this site is finished +}); +``` + +It's quiescence detection again, expressed as "the request queue reported empty." The `done` callback per item is also what gates concurrency — the classic Node async-queue idiom. + +### Where the tradeoffs are + +- **Most "good web citizen" of the bunch.** robots.txt is honored (`getRobotsTxt`, `isAllowed`), `rel=nofollow` is respected, and `rateLimit` + `maxSockets` are first-class. This is a crawler that's polite by default. +- **Event cascades are powerful but fiddly.** Termination is spread across half a dozen event handlers and two nested queues. It works, but the control flow is much harder to follow than `await queue.onIdle()`. This is the JS cousin of the "leaky abstraction" problem I described — recursion-awareness ends up sprinkled across many handlers. +- **Single-threaded, same ceiling as linkinator**, plus the in-memory `URLCache` per site. +- **Maturity vs momentum:** very widely used (it powers a lot of tooling), but development has slowed. Still, the architecture is sound and worth studying. + +{% info(title="Takeaways: broken-link-checker") %} + +- **Termination is a cascade of queue-drain events**, not a counter — the same quiescence idea wearing a different hat. +- **Politeness is built in.** robots.txt + `rateLimit` + `maxSockets` make it the most server-friendly recursive checker by default. +- **Event-driven control flow is the cost.** Distributing recursion logic across many handlers is exactly the kind of spread-out complexity that makes the feature hard to reason about. + +{% end %} + +## A note on markdown-link-check and the "industrial" crawlers + +Our README marks [markdown-link-check](https://github.com/tcort/markdown-link-check) as supporting recursion, but it's a different animal: it recurses over *Markdown files*, not by spidering a live website. There's no HTTP frontier and no termination problem in the sense above. Worth a mention so the comparison is honest, not worth a teardown. + +If you want to see the pattern at full industrial scale, look at [Scrapy](https://www.scrapy.org/) (Python/Twisted) or [Colly](https://github.com/gocolly/colly) (Go). Both are *the same shape*: a scheduler (frontier) with a pluggable, optionally disk-backed queue, a dupefilter (often a Bloom filter rather than a `HashSet`), a bounded downloader pool, and explicit "engine idle → close spider" termination. They solve exactly the problems lychee struggled with ([distributed termination detection](https://en.wikipedia.org/wiki/Dijkstra%E2%80%93Scholten_algorithm), backpressure, dedup), just with years of dedicated crawler engineering behind them. The takeaway isn't "lychee should be Scrapy" — it's that crawling is a well-trodden architecture, and lychee was simply standing on a different one. + +## Side-by-side + +| Tool | Lang / runtime | Concurrency model | Frontier | "Done?" signal | Dedup point | Per-host limiting | +| --- | --- | --- | --- | --- | --- | --- | +| **muffet** | Go, goroutines | goroutine pool + semaphore + host throttler | mutex-guarded set + daemon channel | `sync.WaitGroup` | visited set at enqueue | host throttler pool | +| **LinkChecker** | Python, threads | fixed blocking thread pool | **unbounded** `UrlQueue` | joinable-queue counter (`join()`) | result cache at `put()` | `wait_for_host` (req/s) | +| **linkinator** | Node, event loop | single-thread + p-queue (`concurrency`) | p-queue | `queue.onIdle()` | `Set` at enqueue (race-free) | reactive `429` `delayCache` | +| **broken-link-checker** | Node, event loop | `limited-request-queue` (`maxSockets`) | nested request queues | queue-drain events | `URLCache` at enqueue | `maxSockets` + `rateLimit` | +| **lychee (2026)** | Rust, Tokio | tasks + `HostPool` | channels + `WaitGroup` | `WaitGroup` | `HostPool` `active_requests` | `HostPool` per-host pool | + +Read the last row against the others and the [previous post](@/2026/lychee-recursion/index.md) writes itself: lychee in 2026 finally has a column-for-column match. The `WaitGroup` is muffet's `sync.WaitGroup` and LinkChecker's `join()`. The `HostPool` is BLC's `rateLimit`/`maxSockets` and LinkChecker's `wait_for_host`. The per-URI `active_requests` mutex is everyone's enqueue-time dedup. + +## So Why Couldn't I Just Copy Them? + +Three reasons, in increasing order of how much they're actually lychee's fault. + +**1. They started as crawlers; lychee started as a stream.** Every tool above has a back-edge in its core data structure. lychee's core was a DAG optimized for the 99% case (a list of files/URLs, checked once, fast). Retrofitting a cycle onto a pipeline is genuinely harder than having one from the start. This is architectural path-dependence, not a language issue. + +**2. The frontier and the rate-limiter must be different objects.** muffet (set + semaphore), LinkChecker (unbounded queue + thread count), linkinator (p-queue + delayCache), BLC (request queue + maxSockets) all keep "what to do next" separate from "how fast to go." lychee's early attempts tried to make one bounded channel serve both roles, and a cycle through a bounded channel deadlocks. The fix — lychee's `HostPool` plus a `WaitGroup` over an unbounded work source — is the same separation, arrived at the hard way. + +**3. Single-threaded runtimes get dedup for free; Rust does not.** Both Node tools dedup with a plain `Set` and zero locking, because the event loop serializes access. Go and Python pay a mutex. Rust pays a mutex *and* fights the borrow checker about who owns the shared state across `tokio::spawn`. That's the ~30% "Rust tax" I [estimated last time](@/2026/lychee-recursion/index.md): not the algorithm, but the friction of expressing shared mutable frontier state under `Send + 'static`. + +None of this is a knock on lychee's design. A unidirectional stream is *the right call* for the common, non-recursive case — it's why lychee is fast and why the 30% channel regression from [Attempt 2](@/2026/lychee-recursion/index.md) was a dealbreaker. The other tools pay for their back-edge on every run, recursive or not. lychee refused to, and that principle is exactly why recursion took five years and why, when it lands, it won't slow down the path everyone actually uses. + +{% info(title="Key takeaways") %} + +- **There is no secret sauce.** Every recursive checker is a worklist + a visited set + a quiescence detector. The "trick" is being shaped like a crawler from commit one. +- **Termination is always the same idea wearing different clothes:** `sync.WaitGroup` (muffet), joinable-queue counter (LinkChecker), `queue.onIdle()` (linkinator), queue-drain events (BLC), `WaitGroup` (lychee 2026). All of them are distributed termination detection. +- **Dedup belongs at enqueue, before the request.** Marking a URL visited *after* checking it — what lychee did for four attempts — is the bug. Everyone else claims the URL the moment it enters the frontier. +- **Separate the frontier from the rate limiter.** A bounded channel that is both your queue *and* your backpressure will deadlock the instant you add a cycle. +- **Language shapes the difficulty, not the algorithm.** Node's single thread makes dedup trivial; Go's goroutines + `WaitGroup` make termination trivial; Rust gives you neither for free but hands you a compiler that refuses to let the races compile. lychee just had to build the primitives first. + +{% end %} + +So when someone asks "how do other link checkers do recursion?", the real answer is: they made it a load-bearing part of the architecture from the beginning, and they leaned on a runtime primitive — a `WaitGroup`, a joinable queue, an idle promise — that solved termination without anyone having to call it "distributed termination detection." + +lychee took the scenic route to the same place. But it's the same place. + +Thanks again to [NLnet](https://nlnet.nl/) for funding the work, and to the maintainers of muffet, LinkChecker, linkinator, and broken-link-checker — reading your source was the clearest tutorial on crawler architecture I could have asked for. diff --git a/static/js/mermaid-init.js b/static/js/mermaid-init.js new file mode 100644 index 00000000..b9531bf2 --- /dev/null +++ b/static/js/mermaid-init.js @@ -0,0 +1,73 @@ +// Renders Mermaid diagrams and keeps them in sync with the site's +// light/dark theme toggle (driven by the `data-theme` attribute on ). +// +// Mermaid replaces the original
 source with an SVG once
+// it has rendered, so we stash the source in `data-source` to be able to
+// re-render with a different theme when the user flips the toggle.
+(function () {
+    let rendering = false;
+    let rerenderQueued = false;
+
+    function currentTheme() {
+        return document.documentElement.getAttribute("data-theme") === "dark"
+            ? "dark"
+            : "default";
+    }
+
+    async function render() {
+        if (!window.mermaid) return;
+
+        const nodes = document.querySelectorAll(".mermaid");
+        if (!nodes.length) return;
+
+        // Avoid overlapping runs if the theme is toggled rapidly.
+        if (rendering) {
+            rerenderQueued = true;
+            return;
+        }
+        rendering = true;
+
+        nodes.forEach((node) => {
+            if (node.getAttribute("data-source") === null) {
+                // First render: remember the original diagram source.
+                node.setAttribute("data-source", node.textContent);
+            } else {
+                // Re-render: restore source and let Mermaid process it again.
+                node.textContent = node.getAttribute("data-source");
+                node.removeAttribute("data-processed");
+            }
+        });
+
+        window.mermaid.initialize({
+            startOnLoad: false,
+            theme: currentTheme(),
+        });
+
+        try {
+            await window.mermaid.run({ nodes: document.querySelectorAll(".mermaid") });
+        } finally {
+            rendering = false;
+            if (rerenderQueued) {
+                rerenderQueued = false;
+                render();
+            }
+        }
+    }
+
+    function init() {
+        render();
+
+        // Re-render whenever the theme changes.
+        new MutationObserver((mutations) => {
+            if (mutations.some((m) => m.attributeName === "data-theme")) {
+                render();
+            }
+        }).observe(document.documentElement, { attributes: true });
+    }
+
+    if (document.readyState === "loading") {
+        document.addEventListener("DOMContentLoaded", init);
+    } else {
+        init();
+    }
+})();
diff --git a/static/js/mermaid.min.js b/static/js/mermaid.min.js
new file mode 100644
index 00000000..dd3209bd
--- /dev/null
+++ b/static/js/mermaid.min.js
@@ -0,0 +1,3405 @@
+"use strict";var __esbuild_esm_mermaid_nm;(__esbuild_esm_mermaid_nm||={}).mermaid=(()=>{var sNe=Object.create;var Ky=Object.defineProperty;var oNe=Object.getOwnPropertyDescriptor;var lNe=Object.getOwnPropertyNames;var cNe=Object.getPrototypeOf,uNe=Object.prototype.hasOwnProperty;var o=(e,t)=>Ky(e,"name",{value:t,configurable:!0});var z=(e,t)=>()=>(e&&(t=e(e=0)),t);var Js=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),xr=(e,t)=>{for(var r in t)Ky(e,r,{get:t[r],enumerable:!0})},AU=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of lNe(t))!uNe.call(e,n)&&n!==r&&Ky(e,n,{get:()=>t[n],enumerable:!(i=oNe(t,n))||i.enumerable});return e};var ys=(e,t,r)=>(r=e!=null?sNe(cNe(e)):{},AU(t||!e||!e.__esModule?Ky(r,"default",{value:e,enumerable:!0}):r,e)),hNe=e=>AU(Ky({},"__esModule",{value:!0}),e);var dNe,_m,Q_,_U,CC=z(()=>{"use strict";dNe=Object.freeze({left:0,top:0,width:16,height:16}),_m=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Q_=Object.freeze({...dNe,..._m}),_U=Object.freeze({...Q_,body:"",hidden:!1})});var fNe,DU,RU=z(()=>{"use strict";CC();fNe=Object.freeze({width:null,height:null}),DU=Object.freeze({...fNe,..._m})});var J_,kC,LU=z(()=>{"use strict";J_=o((e,t,r,i="")=>{let n=e.split(":");if(e.slice(0,1)==="@"){if(n.length<2||n.length>3)return null;i=n.shift().slice(1)}if(n.length>3||!n.length)return null;if(n.length>1){let l=n.pop(),u=n.pop(),h={provider:n.length>0?n[0]:i,prefix:u,name:l};return t&&!kC(h)?null:h}let a=n[0],s=a.split("-");if(s.length>1){let l={provider:i,prefix:s.shift(),name:s.join("-")};return t&&!kC(l)?null:l}if(r&&i===""){let l={provider:i,prefix:"",name:a};return t&&!kC(l,r)?null:l}return null},"stringToIcon"),kC=o((e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1,"validateIconName")});function MU(e,t){let r={};!e.hFlip!=!t.hFlip&&(r.hFlip=!0),!e.vFlip!=!t.vFlip&&(r.vFlip=!0);let i=((e.rotate||0)+(t.rotate||0))%4;return i&&(r.rotate=i),r}var NU=z(()=>{"use strict";o(MU,"mergeIconTransformations")});function e7(e,t){let r=MU(e,t);for(let i in _U)i in _m?i in e&&!(i in r)&&(r[i]=_m[i]):i in t?r[i]=t[i]:i in e&&(r[i]=e[i]);return r}var IU=z(()=>{"use strict";CC();NU();o(e7,"mergeIconData")});function OU(e,t){let r=e.icons,i=e.aliases||Object.create(null),n=Object.create(null);function a(s){if(r[s])return n[s]=[];if(!(s in n)){n[s]=null;let l=i[s]&&i[s].parent,u=l&&a(l);u&&(n[s]=[l].concat(u))}return n[s]}return o(a,"resolve"),(t||Object.keys(r).concat(Object.keys(i))).forEach(a),n}var PU=z(()=>{"use strict";o(OU,"getIconsTree")});function BU(e,t,r){let i=e.icons,n=e.aliases||Object.create(null),a={};function s(l){a=e7(i[l]||n[l],a)}return o(s,"parse"),s(t),r.forEach(s),e7(e,a)}function t7(e,t){if(e.icons[t])return BU(e,t,[]);let r=OU(e,[t])[t];return r?BU(e,t,r):null}var FU=z(()=>{"use strict";IU();PU();o(BU,"internalGetIconData");o(t7,"getIconData")});function r7(e,t,r){if(t===1)return e;if(r=r||100,typeof e=="number")return Math.ceil(e*t*r)/r;if(typeof e!="string")return e;let i=e.split(pNe);if(i===null||!i.length)return e;let n=[],a=i.shift(),s=mNe.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?n.push(a):n.push(Math.ceil(l*t*r)/r)}else n.push(a);if(a=i.shift(),a===void 0)return n.join("");s=!s}}var pNe,mNe,$U=z(()=>{"use strict";pNe=/(-?[0-9.]*[0-9]+[0-9.]*)/g,mNe=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(r7,"calculateSize")});function gNe(e,t="defs"){let r="",i=e.indexOf("<"+t);for(;i>=0;){let n=e.indexOf(">",i),a=e.indexOf("",a);if(s===-1)break;r+=e.slice(n+1,a).trim(),e=e.slice(0,i).trim()+e.slice(s+1)}return{defs:r,content:e}}function yNe(e,t){return e?""+e+""+t:t}function zU(e,t,r){let i=gNe(e);return yNe(i.defs,t+i.content+r)}var GU=z(()=>{"use strict";o(gNe,"splitSVGDefs");o(yNe,"mergeDefsAndContent");o(zU,"wrapSVGContent")});function i7(e,t){let r={...Q_,...e},i={...DU,...t},n={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,i].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,T=y.rotate;x?b?T+=2:(v.push("translate("+(n.width+n.left).toString()+" "+(0-n.top).toString()+")"),v.push("scale(-1 1)"),n.top=n.left=0):b&&(v.push("translate("+(0-n.left).toString()+" "+(n.height+n.top).toString()+")"),v.push("scale(1 -1)"),n.top=n.left=0);let w;switch(T<0&&(T-=Math.floor(T/4)*4),T=T%4,T){case 1:w=n.height/2+n.top,v.unshift("rotate(90 "+w.toString()+" "+w.toString()+")");break;case 2:v.unshift("rotate(180 "+(n.width/2+n.left).toString()+" "+(n.height/2+n.top).toString()+")");break;case 3:w=n.width/2+n.left,v.unshift("rotate(-90 "+w.toString()+" "+w.toString()+")");break}T%2===1&&(n.left!==n.top&&(w=n.left,n.left=n.top,n.top=w),n.width!==n.height&&(w=n.width,n.width=n.height,n.height=w)),v.length&&(a=zU(a,'',""))});let s=i.width,l=i.height,u=n.width,h=n.height,d,f;s===null?(f=l===null?"1em":l==="auto"?h:l,d=r7(f,u/h)):(d=s==="auto"?u:s,f=l===null?r7(d,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{vNe(v)||(p[y]=v.toString())},"setAttr");m("width",d),m("height",f);let g=[n.left,n.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var vNe,VU=z(()=>{"use strict";CC();RU();$U();GU();vNe=o(e=>e==="unset"||e==="undefined"||e==="none","isUnsetKeyword");o(i7,"iconToSVG")});function n7(e,t=bNe){let r=[],i;for(;i=xNe.exec(e);)r.push(i[1]);if(!r.length)return e;let n="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof t=="function"?t(a):t+(TNe++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+n+"$3")}),e=e.replace(new RegExp(n,"g"),""),e}var xNe,bNe,TNe,WU=z(()=>{"use strict";xNe=/\sid="(\S+)"/g,bNe="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),TNe=0;o(n7,"replaceIDs")});function a7(e,t){let r=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let i in t)r+=" "+i+'="'+t[i]+'"';return'"+e+""}var qU=z(()=>{"use strict";o(a7,"iconToHTML")});var UU=z(()=>{"use strict";LU();FU();VU();WU();qU()});var s7,Ai,Dm=z(()=>{"use strict";s7=o((e,t,{depth:r=2,clobber:i=!1}={})=>{let n={depth:r,clobber:i};return Array.isArray(t)&&!Array.isArray(e)?(t.forEach(a=>s7(e,a,n)),e):Array.isArray(t)&&Array.isArray(e)?(t.forEach(a=>{e.includes(a)||e.push(a)}),e):e===void 0||r<=0?e!=null&&typeof e=="object"&&typeof t=="object"?Object.assign(e,t):t:(t!==void 0&&typeof e=="object"&&typeof t=="object"&&Object.keys(t).forEach(a=>{typeof t[a]=="object"&&t[a]!==null&&(e[a]===void 0||typeof e[a]=="object")?(e[a]===void 0&&(e[a]=Array.isArray(t[a])?[]:{}),e[a]=s7(e[a],t[a],{depth:r-1,clobber:i})):(i||typeof e[a]!="object"&&typeof t[a]!="object")&&(e[a]=t[a])}),e)},"assignWithDepth"),Ai=s7});var wC=Js((o7,l7)=>{"use strict";(function(e,t){typeof o7=="object"&&typeof l7<"u"?l7.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs=t()})(o7,(function(){"use strict";var e=1e3,t=6e4,r=36e5,i="millisecond",n="second",a="minute",s="hour",l="day",u="week",h="month",d="quarter",f="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(D){var _=["th","st","nd","rd"],R=D%100;return"["+D+(_[(R-20)%10]||_[R]||_[0])+"]"},"ordinal")},x=o(function(D,_,R){var M=String(D);return!M||M.length>=_?D:""+Array(_+1-M.length).join(R)+D},"m"),b={s:x,z:o(function(D){var _=-D.utcOffset(),R=Math.abs(_),M=Math.floor(R/60),L=R%60;return(_<=0?"+":"-")+x(M,2,"0")+":"+x(L,2,"0")},"z"),m:o(function D(_,R){if(_.date()1)return D(O[0])}else{var $=_.name;w[$]=_,L=$}return!M&&L&&(T=L),L||!M&&T},"t"),A=o(function(D,_){if(k(D))return D.clone();var R=typeof _=="object"?_:{};return R.date=D,R.args=arguments,new P(R)},"O"),N=b;N.l=E,N.i=k,N.w=function(D,_){return A(D,{locale:_.$L,utc:_.$u,x:_.$x,$offset:_.$offset})};var P=(function(){function D(R){this.$L=E(R.locale,null,!0),this.parse(R),this.$x=this.$x||R.x||{},this[C]=!0}o(D,"M");var _=D.prototype;return _.parse=function(R){this.$d=(function(M){var L=M.date,B=M.utc;if(L===null)return new Date(NaN);if(N.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var O=L.match(g);if(O){var $=O[2]-1||0,G=(O[7]||"0").substring(0,3);return B?new Date(Date.UTC(O[1],$,O[3]||1,O[4]||0,O[5]||0,O[6]||0,G)):new Date(O[1],$,O[3]||1,O[4]||0,O[5]||0,O[6]||0,G)}}return new Date(L)})(R),this.init()},_.init=function(){var R=this.$d;this.$y=R.getFullYear(),this.$M=R.getMonth(),this.$D=R.getDate(),this.$W=R.getDay(),this.$H=R.getHours(),this.$m=R.getMinutes(),this.$s=R.getSeconds(),this.$ms=R.getMilliseconds()},_.$utils=function(){return N},_.isValid=function(){return this.$d.toString()!==m},_.isSame=function(R,M){var L=A(R);return this.startOf(M)<=L&&L<=this.endOf(M)},_.isAfter=function(R,M){return A(R){"use strict";HU=ys(wC(),1),du={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},Z={trace:o((...e)=>{},"trace"),debug:o((...e)=>{},"debug"),info:o((...e)=>{},"info"),warn:o((...e)=>{},"warn"),error:o((...e)=>{},"error"),fatal:o((...e)=>{},"fatal")},Zy=o(function(e="fatal"){let t=du.fatal;typeof e=="string"?e.toLowerCase()in du&&(t=du[e]):typeof e=="number"&&(t=e),Z.trace=()=>{},Z.debug=()=>{},Z.info=()=>{},Z.warn=()=>{},Z.error=()=>{},Z.fatal=()=>{},t<=du.fatal&&(Z.fatal=console.error?console.error.bind(console,So("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",So("FATAL"))),t<=du.error&&(Z.error=console.error?console.error.bind(console,So("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",So("ERROR"))),t<=du.warn&&(Z.warn=console.warn?console.warn.bind(console,So("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",So("WARN"))),t<=du.info&&(Z.info=console.info?console.info.bind(console,So("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",So("INFO"))),t<=du.debug&&(Z.debug=console.debug?console.debug.bind(console,So("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",So("DEBUG"))),t<=du.trace&&(Z.trace=console.debug?console.debug.bind(console,So("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",So("TRACE")))},"setLogLevel"),So=o(e=>`%c${(0,HU.default)().format("ss.SSS")} : ${e} : `,"format")});var SC,YU,jU=z(()=>{"use strict";SC={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:o(e=>e>=255?255:e<0?0:e,"r"),g:o(e=>e>=255?255:e<0?0:e,"g"),b:o(e=>e>=255?255:e<0?0:e,"b"),h:o(e=>e%360,"h"),s:o(e=>e>=100?100:e<0?0:e,"s"),l:o(e=>e>=100?100:e<0?0:e,"l"),a:o(e=>e>=1?1:e<0?0:e,"a")},toLinear:o(e=>{let t=e/255;return e>.03928?Math.pow((t+.055)/1.055,2.4):t/12.92},"toLinear"),hue2rgb:o((e,t,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?e+(t-e)*6*r:r<.5?t:r<.6666666666666666?e+(t-e)*(.6666666666666666-r)*6:e),"hue2rgb"),hsl2rgb:o(({h:e,s:t,l:r},i)=>{if(!t)return r*2.55;e/=360,t/=100,r/=100;let n=r<.5?r*(1+t):r+t-r*t,a=2*r-n;switch(i){case"r":return SC.hue2rgb(a,n,e+.3333333333333333)*255;case"g":return SC.hue2rgb(a,n,e)*255;case"b":return SC.hue2rgb(a,n,e-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:e,g:t,b:r},i)=>{e/=255,t/=255,r/=255;let n=Math.max(e,t,r),a=Math.min(e,t,r),s=(n+a)/2;if(i==="l")return s*100;if(n===a)return 0;let l=n-a,u=s>.5?l/(2-n-a):l/(n+a);if(i==="s")return u*100;switch(n){case e:return((t-r)/l+(t{"use strict";CNe={clamp:o((e,t,r)=>t>r?Math.min(t,Math.max(r,e)):Math.min(r,Math.max(t,e)),"clamp"),round:o(e=>Math.round(e*1e10)/1e10,"round")},XU=CNe});var kNe,ZU,QU=z(()=>{"use strict";kNe={dec2hex:o(e=>{let t=Math.round(e).toString(16);return t.length>1?t:`0${t}`},"dec2hex")},ZU=kNe});var wNe,ir,ec=z(()=>{"use strict";jU();KU();QU();wNe={channel:YU,lang:XU,unit:ZU},ir=wNe});var fu,On,Qy=z(()=>{"use strict";ec();fu={};for(let e=0;e<=255;e++)fu[e]=ir.unit.dec2hex(e);On={ALL:0,RGB:1,HSL:2}});var c7,JU,eH=z(()=>{"use strict";Qy();c7=class{static{o(this,"Type")}constructor(){this.type=On.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=On.ALL}is(t){return this.type===t}},JU=c7});var u7,tH,rH=z(()=>{"use strict";ec();eH();Qy();u7=class{static{o(this,"Channels")}constructor(t,r){this.color=r,this.changed=!1,this.data=t,this.type=new JU}set(t,r){return this.color=r,this.changed=!1,this.data=t,this.type.type=On.ALL,this}_ensureHSL(){let t=this.data,{h:r,s:i,l:n}=t;r===void 0&&(t.h=ir.channel.rgb2hsl(t,"h")),i===void 0&&(t.s=ir.channel.rgb2hsl(t,"s")),n===void 0&&(t.l=ir.channel.rgb2hsl(t,"l"))}_ensureRGB(){let t=this.data,{r,g:i,b:n}=t;r===void 0&&(t.r=ir.channel.hsl2rgb(t,"r")),i===void 0&&(t.g=ir.channel.hsl2rgb(t,"g")),n===void 0&&(t.b=ir.channel.hsl2rgb(t,"b"))}get r(){let t=this.data,r=t.r;return!this.type.is(On.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(t,"r"))}get g(){let t=this.data,r=t.g;return!this.type.is(On.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(t,"g"))}get b(){let t=this.data,r=t.b;return!this.type.is(On.HSL)&&r!==void 0?r:(this._ensureHSL(),ir.channel.hsl2rgb(t,"b"))}get h(){let t=this.data,r=t.h;return!this.type.is(On.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(t,"h"))}get s(){let t=this.data,r=t.s;return!this.type.is(On.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(t,"s"))}get l(){let t=this.data,r=t.l;return!this.type.is(On.RGB)&&r!==void 0?r:(this._ensureRGB(),ir.channel.rgb2hsl(t,"l"))}get a(){return this.data.a}set r(t){this.type.set(On.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(On.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(On.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(On.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(On.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(On.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}},tH=u7});var SNe,Oh,Jy=z(()=>{"use strict";rH();SNe=new tH({r:0,g:0,b:0,a:0},"transparent"),Oh=SNe});var iH,Bf,h7=z(()=>{"use strict";Jy();Qy();iH={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(e=>{if(e.charCodeAt(0)!==35)return;let t=e.match(iH.re);if(!t)return;let r=t[1],i=parseInt(r,16),n=r.length,a=n%4===0,s=n>4,l=s?1:17,u=s?8:4,h=a?0:-1,d=s?255:15;return Oh.set({r:(i>>u*(h+3)&d)*l,g:(i>>u*(h+2)&d)*l,b:(i>>u*(h+1)&d)*l,a:a?(i&d)*l/255:1},e)},"parse"),stringify:o(e=>{let{r:t,g:r,b:i,a:n}=e;return n<1?`#${fu[Math.round(t)]}${fu[Math.round(r)]}${fu[Math.round(i)]}${fu[Math.round(n*255)]}`:`#${fu[Math.round(t)]}${fu[Math.round(r)]}${fu[Math.round(i)]}`},"stringify")},Bf=iH});var EC,ev,nH=z(()=>{"use strict";ec();Jy();EC={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:o(e=>{let t=e.match(EC.hueRe);if(t){let[,r,i]=t;switch(i){case"grad":return ir.channel.clamp.h(parseFloat(r)*.9);case"rad":return ir.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return ir.channel.clamp.h(parseFloat(r)*360)}}return ir.channel.clamp.h(parseFloat(e))},"_hue2deg"),parse:o(e=>{let t=e.charCodeAt(0);if(t!==104&&t!==72)return;let r=e.match(EC.re);if(!r)return;let[,i,n,a,s,l]=r;return Oh.set({h:EC._hue2deg(i),s:ir.channel.clamp.s(parseFloat(n)),l:ir.channel.clamp.l(parseFloat(a)),a:s?ir.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},e)},"parse"),stringify:o(e=>{let{h:t,s:r,l:i,a:n}=e;return n<1?`hsla(${ir.lang.round(t)}, ${ir.lang.round(r)}%, ${ir.lang.round(i)}%, ${n})`:`hsl(${ir.lang.round(t)}, ${ir.lang.round(r)}%, ${ir.lang.round(i)}%)`},"stringify")},ev=EC});var AC,d7,aH=z(()=>{"use strict";h7();AC={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:o(e=>{e=e.toLowerCase();let t=AC.colors[e];if(t)return Bf.parse(t)},"parse"),stringify:o(e=>{let t=Bf.stringify(e);for(let r in AC.colors)if(AC.colors[r]===t)return r},"stringify")},d7=AC});var sH,tv,oH=z(()=>{"use strict";ec();Jy();sH={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:o(e=>{let t=e.charCodeAt(0);if(t!==114&&t!==82)return;let r=e.match(sH.re);if(!r)return;let[,i,n,a,s,l,u,h,d]=r;return Oh.set({r:ir.channel.clamp.r(n?parseFloat(i)*2.55:parseFloat(i)),g:ir.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:ir.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?ir.channel.clamp.a(d?parseFloat(h)/100:parseFloat(h)):1},e)},"parse"),stringify:o(e=>{let{r:t,g:r,b:i,a:n}=e;return n<1?`rgba(${ir.lang.round(t)}, ${ir.lang.round(r)}, ${ir.lang.round(i)}, ${ir.lang.round(n)})`:`rgb(${ir.lang.round(t)}, ${ir.lang.round(r)}, ${ir.lang.round(i)})`},"stringify")},tv=sH});var ENe,Pn,pu=z(()=>{"use strict";h7();nH();aH();oH();Qy();ENe={format:{keyword:d7,hex:Bf,rgb:tv,rgba:tv,hsl:ev,hsla:ev},parse:o(e=>{if(typeof e!="string")return e;let t=Bf.parse(e)||tv.parse(e)||ev.parse(e)||d7.parse(e);if(t)return t;throw new Error(`Unsupported color format: "${e}"`)},"parse"),stringify:o(e=>!e.changed&&e.color?e.color:e.type.is(On.HSL)||e.data.r===void 0?ev.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?tv.stringify(e):Bf.stringify(e),"stringify")},Pn=ENe});var ANe,_C,f7=z(()=>{"use strict";ec();pu();ANe=o((e,t)=>{let r=Pn.parse(e);for(let i in t)r[i]=ir.channel.clamp[i](t[i]);return Pn.stringify(r)},"change"),_C=ANe});var _Ne,mn,p7=z(()=>{"use strict";ec();Jy();pu();f7();_Ne=o((e,t,r=0,i=1)=>{if(typeof e!="number")return _C(e,{a:t});let n=Oh.set({r:ir.channel.clamp.r(e),g:ir.channel.clamp.g(t),b:ir.channel.clamp.b(r),a:ir.channel.clamp.a(i)});return Pn.stringify(n)},"rgba"),mn=_Ne});var DNe,Ff,lH=z(()=>{"use strict";ec();pu();DNe=o((e,t)=>ir.lang.round(Pn.parse(e)[t]),"channel"),Ff=DNe});var RNe,cH,uH=z(()=>{"use strict";ec();pu();RNe=o(e=>{let{r:t,g:r,b:i}=Pn.parse(e),n=.2126*ir.channel.toLinear(t)+.7152*ir.channel.toLinear(r)+.0722*ir.channel.toLinear(i);return ir.lang.round(n)},"luminance"),cH=RNe});var LNe,hH,dH=z(()=>{"use strict";uH();LNe=o(e=>cH(e)>=.5,"isLight"),hH=LNe});var MNe,ri,fH=z(()=>{"use strict";dH();MNe=o(e=>!hH(e),"isDark"),ri=MNe});var NNe,Rm,DC=z(()=>{"use strict";ec();pu();NNe=o((e,t,r)=>{let i=Pn.parse(e),n=i[t],a=ir.channel.clamp[t](n+r);return n!==a&&(i[t]=a),Pn.stringify(i)},"adjustChannel"),Rm=NNe});var INe,je,pH=z(()=>{"use strict";DC();INe=o((e,t)=>Rm(e,"l",t),"lighten"),je=INe});var ONe,Xe,mH=z(()=>{"use strict";DC();ONe=o((e,t)=>Rm(e,"l",-t),"darken"),Xe=ONe});var PNe,RC,gH=z(()=>{"use strict";DC();PNe=o((e,t)=>Rm(e,"a",-t),"transparentize"),RC=PNe});var BNe,ne,yH=z(()=>{"use strict";pu();f7();BNe=o((e,t)=>{let r=Pn.parse(e),i={};for(let n in t)t[n]&&(i[n]=r[n]+t[n]);return _C(e,i)},"adjust"),ne=BNe});var FNe,vH,xH=z(()=>{"use strict";pu();p7();FNe=o((e,t,r=50)=>{let{r:i,g:n,b:a,a:s}=Pn.parse(e),{r:l,g:u,b:h,a:d}=Pn.parse(t),f=r/100,p=f*2-1,m=s-d,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=i*y+l*v,b=n*y+u*v,T=a*y+h*v,w=s*f+d*(1-f);return mn(x,b,T,w)},"mix"),vH=FNe});var $Ne,Ge,bH=z(()=>{"use strict";pu();xH();$Ne=o((e,t=100)=>{let r=Pn.parse(e);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,vH(r,e,t)},"invert"),Ge=$Ne});var TH=z(()=>{"use strict";p7();lH();fH();pH();mH();gH();yH();bH()});var Cn=z(()=>{"use strict";TH()});var kn,wn,dl=z(()=>{"use strict";kn="#ffffff",wn="#f2f2f2"});var Jt,Eo=z(()=>{"use strict";Cn();Jt=o((e,t)=>t?ne(e,{s:-40,l:10}):ne(e,{s:-40,l:-10}),"mkBorder")});var g7,CH,kH=z(()=>{"use strict";Cn();dl();Eo();g7=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.useGradient=!0,this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,1))"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Jt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Jt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Ge(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Ge(this.tertiaryColor),this.lineColor=this.lineColor||Ge(this.background),this.arrowheadColor=this.arrowheadColor||Ge(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Xe(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Xe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Ge(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||je(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.vertLineColor=this.vertLineColor||"navy",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.noteFontWeight=this.noteFontWeight||"normal",this.fontWeight=this.fontWeight||"normal",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.darkMode?(this.rowOdd=this.rowOdd||Xe(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Xe(this.mainBkg,10)):(this.rowOdd=this.rowOdd||je(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||je(this.mainBkg,5)),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||ne(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||ne(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},CH=o(e=>{let t=new g7;return t.calculate(e),t},"getThemeVariables")});var y7,wH,SH=z(()=>{"use strict";Cn();Eo();y7=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=je(this.primaryColor,16),this.tertiaryColor=ne(this.primaryColor,{h:-160}),this.primaryBorderColor=Ge(this.background),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ge(this.primaryColor),this.secondaryTextColor=Ge(this.secondaryColor),this.tertiaryTextColor=Ge(this.tertiaryColor),this.lineColor=Ge(this.background),this.textColor=Ge(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=je(Ge("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=mn(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.clusterBkg="#302F3D",this.sectionBkgColor=Xe("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Xe(this.sectionBkgColor,10),this.taskBorderColor=mn(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=mn(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||je(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Xe(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd",this.useGradient=!0,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor,this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,1))",this.noteFontWeight=this.noteFontWeight||"normal",this.fontWeight=this.fontWeight||"normal"}updateColors(){this.secondBkg=je(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=je(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=je(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=Ge(this.doneTaskBkgColor),this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=ne(this.primaryColor,{h:64}),this.fillType3=ne(this.secondaryColor,{h:64}),this.fillType4=ne(this.primaryColor,{h:-64}),this.fillType5=ne(this.secondaryColor,{h:-64}),this.fillType6=ne(this.primaryColor,{h:128}),this.fillType7=ne(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||ne(this.primaryColor,{h:330});for(let t=0;t{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},wH=o(e=>{let t=new y7;return t.calculate(e),t},"getThemeVariables")});var v7,Ao,$f=z(()=>{"use strict";Cn();Eo();dl();v7=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=ne(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=ne(this.primaryColor,{h:-160}),this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ge(this.primaryColor),this.secondaryTextColor=Ge(this.secondaryColor),this.tertiaryTextColor=Ge(this.tertiaryColor),this.lineColor=Ge(this.background),this.textColor=Ge(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.clusterBkg="#FBFBFF",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.sectionBkgColor=mn(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="navy",this.noteFontWeight=this.noteFontWeight||"normal",this.fontWeight=this.fontWeight||"normal",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.useGradient=!1,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor,this.dropShadow="drop-shadow(1px 2px 2px rgba(185, 185, 185, 1))",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||ne(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Xe(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Xe(this.tertiaryColor,40);for(let t=0;t{this[i]==="calculated"&&(this[i]=void 0)}),typeof t!="object"){this.updateColors();return}let r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},Ao=o(e=>{let t=new v7;return t.calculate(e),t},"getThemeVariables")});var x7,EH,AH=z(()=>{"use strict";Cn();dl();Eo();x7=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=je("#cde498",10),this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ge(this.primaryColor),this.secondaryTextColor=Ge(this.secondaryColor),this.tertiaryTextColor=Ge(this.primaryColor),this.lineColor=Ge(this.background),this.textColor=Ge(this.background),this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.noteFontWeight="normal",this.fontWeight="normal",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.useGradient=!0,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor,this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,0.5))"}updateColors(){this.actorBorder=Xe(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||ne(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Xe(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Xe(this.tertiaryColor,40);for(let t=0;t{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},EH=o(e=>{let t=new x7;return t.calculate(e),t},"getThemeVariables")});var b7,_H,DH=z(()=>{"use strict";Cn();Eo();dl();b7=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=je(this.contrast,55),this.background="#ffffff",this.tertiaryColor=ne(this.primaryColor,{h:-160}),this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ge(this.primaryColor),this.secondaryTextColor=Ge(this.secondaryColor),this.tertiaryTextColor=Ge(this.tertiaryColor),this.lineColor=Ge(this.background),this.textColor=Ge(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.radius=5,this.strokeWidth=1,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.noteFontWeight="normal",this.fontWeight="normal",this.rowOdd=this.rowOdd||je(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.useGradient=!0,this.gradientStart=this.primaryBorderColor,this.gradientStop=this.secondaryBorderColor,this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,1))"}updateColors(){this.secondBkg=je(this.contrast,55),this.border2=this.contrast,this.actorBorder=je(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let t=0;t{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},_H=o(e=>{let t=new b7;return t.calculate(e),t},"getThemeVariables")});var T7,RH,LH=z(()=>{"use strict";Cn();Eo();dl();T7=class{static{o(this,"Theme")}constructor(){this.background="#ffffff",this.primaryColor="#cccccc",this.mainBkg="#ffffff",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.radius=3,this.strokeWidth=2,this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.fontFamily="arial, sans-serif",this.fontSize="14px",this.nodeBorder="#000000",this.stateBorder="#000000",this.useGradient=!0,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="drop-shadow( 0px 1px 2px rgba(0, 0, 0, 0.25));",this.tertiaryColor="#ffffff",this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.noteFontWeight="normal",this.fontWeight="normal"}updateColors(){this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Jt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Jt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Ge(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Ge(this.tertiaryColor),this.lineColor=this.lineColor||Ge(this.background),this.arrowheadColor=this.arrowheadColor||Ge(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Xe(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Xe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Ge(this.lineColor);let t="#ECECFE",r="#E9E9F1",i=ne(t,{h:180,l:5});if(this.sectionBkgColor=this.sectionBkgColor||i,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||r,this.sectionBkgColor2=this.sectionBkgColor2||t,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||t,this.activeTaskBorderColor=this.activeTaskBorderColor||t,this.activeTaskBkgColor=this.activeTaskBkgColor||je(t,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||t,this.cScale1=this.cScale1||r,this.cScale2=this.cScale2||i,this.cScale3=this.cScale3||ne(t,{h:30}),this.cScale4=this.cScale4||ne(t,{h:60}),this.cScale5=this.cScale5||ne(t,{h:90}),this.cScale6=this.cScale6||ne(t,{h:120}),this.cScale7=this.cScale7||ne(t,{h:150}),this.cScale8=this.cScale8||ne(t,{h:210,l:150}),this.cScale9=this.cScale9||ne(t,{h:270}),this.cScale10=this.cScale10||ne(t,{h:300}),this.cScale11=this.cScale11||ne(t,{h:330}),this.darkMode)for(let a=0;a{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},RH=o(e=>{let t=new T7;return t.calculate(e),t},"getThemeVariables")});var C7,MH,NH=z(()=>{"use strict";Cn();Eo();dl();C7=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=je(this.primaryColor,16),this.tertiaryColor=ne(this.primaryColor,{h:-160}),this.primaryBorderColor=Ge(this.background),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ge(this.primaryColor),this.secondaryTextColor=Ge(this.secondaryColor),this.tertiaryTextColor=Ge(this.tertiaryColor),this.mainBkg="#2a2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=je(Ge("#323D47"),10),this.border1="#ccc",this.border2=mn(255,255,255,.25),this.arrowheadColor=Ge(this.background),this.fontFamily="arial, sans-serif",this.fontSize="14px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.radius=3,this.strokeWidth=1,this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily="arial, sans-serif",this.fontSize="14px",this.useGradient=!0,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="drop-shadow( 1px 2px 2px rgba(185,185,185,0.2))",this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.noteFontWeight="normal",this.fontWeight="normal"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Jt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Jt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Ge(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Ge(this.tertiaryColor),this.lineColor=this.lineColor||Ge(this.background),this.arrowheadColor=this.arrowheadColor||Ge(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.border1,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Xe(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Xe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Ge(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||je(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||ne(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||ne(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},MH=o(e=>{let t=new C7;return t.calculate(e),t},"getThemeVariables")});var k7,IH,OH=z(()=>{"use strict";Cn();Eo();dl();k7=class{static{o(this,"Theme")}constructor(){this.background="#ffffff",this.primaryColor="#cccccc",this.mainBkg="#ffffff",this.noteBkgColor="#fff5ad",this.noteTextColor="#28253D",this.THEME_COLOR_LIMIT=12,this.radius=12,this.strokeWidth=2,this.primaryBorderColor=Jt("#28253D",this.darkMode),this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.nodeBorder="#28253D",this.stateBorder="#28253D",this.useGradient=!1,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="url(#drop-shadow)",this.nodeShadow=!0,this.tertiaryColor="#ffffff",this.clusterBkg="#F9F9FB",this.clusterBorder="#BDBCCC",this.noteBorderColor="#FACC15",this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.actorBorder="#28253D",this.filterColor="#000000"}updateColors(){this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#28253D"),this.secondaryColor=this.secondaryColor||ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Jt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Jt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#FEF9C3",this.noteTextColor=this.noteTextColor||"#28253D",this.secondaryTextColor=this.secondaryTextColor||Ge(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Ge(this.tertiaryColor),this.lineColor=this.lineColor||Ge(this.background),this.arrowheadColor=this.arrowheadColor||Ge(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Xe(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.noteFontWeight=600,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Xe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Ge(this.lineColor);let t="#ECECFE",r="#E9E9F1",i=ne(t,{h:180,l:5});this.sectionBkgColor=this.sectionBkgColor||i,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||r,this.sectionBkgColor2=this.sectionBkgColor2||t,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||t,this.activeTaskBorderColor=this.activeTaskBorderColor||t,this.activeTaskBkgColor=this.activeTaskBkgColor||je(t,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.compositeTitleBackground="#F9F9FB",this.altBackground="#F9F9FB",this.stateEdgeLabelBackground="#FFFFFF",this.fontWeight=600,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor;for(let a=0;a{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},IH=o(e=>{let t=new k7;return t.calculate(e),t},"getThemeVariables")});var w7,PH,BH=z(()=>{"use strict";Cn();Eo();dl();w7=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=je(this.primaryColor,16),this.tertiaryColor=ne(this.primaryColor,{h:-160}),this.primaryBorderColor=Ge(this.background),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ge(this.primaryColor),this.secondaryTextColor=Ge(this.secondaryColor),this.tertiaryTextColor=Ge(this.tertiaryColor),this.mainBkg="#111113",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=je(Ge("#323D47"),10),this.border1="#ccc",this.border2=mn(255,255,255,.25),this.arrowheadColor=Ge(this.background),this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.labelBackground="#111113",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.radius=12,this.strokeWidth=2,this.noteBkgColor=this.noteBkgColor??"#FEF9C3",this.noteTextColor=this.noteTextColor??"#28253D",this.THEME_COLOR_LIMIT=12,this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.nodeBorder="#FFFFFF",this.stateBorder="#FFFFFF",this.useGradient=!1,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="url(#drop-shadow)",this.nodeShadow=!0,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.clusterBkg="#1E1A2E",this.clusterBorder="#BDBCCC",this.noteBorderColor="#FACC15",this.noteFontWeight=600,this.filterColor="#FFFFFF"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#FFFFFF"),this.secondaryColor=this.secondaryColor||ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Jt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Jt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#FFFFFF",this.secondaryTextColor=this.secondaryTextColor||Ge(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Ge(this.tertiaryColor),this.lineColor=this.lineColor||Ge(this.background),this.arrowheadColor=this.arrowheadColor||Ge(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.border1,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Xe(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder="#FFFFFF",this.signalColor="#FFFFFF",this.labelBoxBorderColor="#BDBCCC",this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Xe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Ge(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||je(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.compositeBackground="#16141F",this.altBackground="#16141F",this.compositeTitleBackground="#16141F",this.stateEdgeLabelBackground="#16141F",this.fontWeight=600,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||ne(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||ne(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},PH=o(e=>{let t=new w7;return t.calculate(e),t},"getThemeVariables")});var S7,FH,$H=z(()=>{"use strict";Cn();Eo();dl();S7=class{static{o(this,"Theme")}constructor(){this.background="#ffffff",this.primaryColor="#cccccc",this.mainBkg="#ffffff",this.noteBkgColor="#fff5ad",this.noteTextColor="#28253D",this.THEME_COLOR_LIMIT=12,this.radius=12,this.strokeWidth=2,this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.nodeBorder="#28253D",this.stateBorder="#28253D",this.useGradient=!1,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="url(#drop-shadow)",this.nodeShadow=!0,this.tertiaryColor="#ffffff",this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.actorBorder="#28253D",this.noteBorderColor="#FACC15",this.noteFontWeight=600,this.borderColorArray=["#E879F9","#2DD4BF","#FB923C","#22D3EE","#4ADE80","#A78BFA","#F87171","#FACC15","#818CF8","#A3E635 ","#38BDF8","#FB7185"],this.bkgColorArray=["#FDF4FF","#F0FDFA","#FFF7ED","#ECFEFF","#F0FDF4","#F5F3FF","#FEF2F2","#FEFCE8","#EEF2FF","#F7FEE7","#F0F9FF","#FFF1F2"],this.filterColor="#000000"}updateColors(){this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#28253D"),this.secondaryColor=this.secondaryColor||ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Jt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Jt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#28253D",this.secondaryTextColor=this.secondaryTextColor||Ge(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Ge(this.tertiaryColor),this.lineColor=this.lineColor||Ge(this.background),this.arrowheadColor=this.arrowheadColor||Ge(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Xe(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Xe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Ge(this.lineColor);let t="#ECECFE",r="#E9E9F1",i=ne(t,{h:180,l:5});this.sectionBkgColor=this.sectionBkgColor||i,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||r,this.sectionBkgColor2=this.sectionBkgColor2||t,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||t,this.activeTaskBorderColor=this.activeTaskBorderColor||t,this.activeTaskBkgColor=this.activeTaskBkgColor||je(t,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||"#f4a8ff",this.cScale1=this.cScale1||"#46ecd5",this.cScale2=this.cScale2||"#ffb86a",this.cScale3=this.cScale3||"#dab2ff",this.cScale4=this.cScale4||"#7bf1a8",this.cScale5=this.cScale5||"#c4b4ff",this.cScale6=this.cScale6||"#ffa2a2",this.cScale7=this.cScale7||"#ffdf20",this.cScale8=this.cScale8||"#a3b3ff",this.cScale9=this.cScale9||"#bbf451",this.cScale10=this.cScale10||"#74d4ff",this.cScale11=this.cScale11||"#ffa1ad";for(let a=0;a{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},FH=o(e=>{let t=new S7;return t.calculate(e),t},"getThemeVariables")});var E7,zH,GH=z(()=>{"use strict";Cn();Eo();dl();E7=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=je(this.primaryColor,16),this.tertiaryColor=ne(this.primaryColor,{h:-160}),this.primaryBorderColor=Ge(this.background),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ge(this.primaryColor),this.secondaryTextColor=Ge(this.secondaryColor),this.tertiaryTextColor=Ge(this.tertiaryColor),this.mainBkg="#111113",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=je(Ge("#323D47"),10),this.border1="#ccc",this.border2=mn(255,255,255,.25),this.arrowheadColor=Ge(this.background),this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.labelBackground="#111113",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.radius=12,this.strokeWidth=2,this.noteBkgColor=this.noteBkgColor??"#FEF9C3",this.noteTextColor=this.noteTextColor??"#28253D",this.THEME_COLOR_LIMIT=12,this.fontFamily='"Recursive Variable", arial, sans-serif',this.fontSize="14px",this.nodeBorder="#FFFFFF",this.stateBorder="#FFFFFF",this.useGradient=!1,this.gradientStart="#0042eb",this.gradientStop="#eb0042",this.dropShadow="url(#drop-shadow)",this.nodeShadow=!0,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.clusterBkg="#1E1A2E",this.clusterBorder="#BDBCCC",this.noteBorderColor="#FACC15",this.noteFontWeight=600,this.borderColorArray=["#E879F9","#2DD4BF","#FB923C","#22D3EE","#4ADE80","#A78BFA","#F87171","#FACC15","#818CF8","#A3E635 ","#38BDF8","#FB7185"],this.bkgColorArray=[],this.filterColor="#FFFFFF"}updateColors(){this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#FFFFFF"),this.secondaryColor=this.secondaryColor||ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Jt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Jt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#FFFFFF",this.secondaryTextColor=this.secondaryTextColor||Ge(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Ge(this.tertiaryColor),this.lineColor=this.lineColor||Ge(this.background),this.arrowheadColor=this.arrowheadColor||Ge(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.border1,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Xe(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder="#FFFFFF",this.signalColor="#FFFFFF",this.labelBoxBorderColor="#BDBCCC",this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Xe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Ge(this.lineColor),this.rootLabelColor="#FFFFFF",this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||je(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.vertLineColor=this.vertLineColor||this.primaryBorderColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||"#f4a8ff",this.cScale1=this.cScale1||"#46ecd5",this.cScale2=this.cScale2||"#ffb86a",this.cScale3=this.cScale3||"#dab2ff",this.cScale4=this.cScale4||"#7bf1a8",this.cScale5=this.cScale5||"#c4b4ff",this.cScale6=this.cScale6||"#ffa2a2",this.cScale7=this.cScale7||"#ffdf20",this.cScale8=this.cScale8||"#a3b3ff",this.cScale9=this.cScale9||"#bbf451",this.cScale10=this.cScale10||"#74d4ff",this.cScale11=this.cScale11||"#ffa1ad";for(let r=0;r{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},zH=o(e=>{let t=new E7;return t.calculate(e),t},"getThemeVariables")});var _o,LC=z(()=>{"use strict";kH();SH();$f();AH();DH();LH();NH();OH();BH();$H();GH();_o={base:{getThemeVariables:CH},dark:{getThemeVariables:wH},default:{getThemeVariables:Ao},forest:{getThemeVariables:EH},neutral:{getThemeVariables:_H},neo:{getThemeVariables:RH},"neo-dark":{getThemeVariables:MH},redux:{getThemeVariables:IH},"redux-dark":{getThemeVariables:PH},"redux-color":{getThemeVariables:FH},"redux-dark-color":{getThemeVariables:zH}}});var Ea,VH=z(()=>{"use strict";Ea={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:null,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200,inheritDir:!1},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,maxLabelWidth:360,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],titleColor:"",titleFontFamily:'"trebuchet ms", verdana, arial, sans-serif',titleFontSize:"4ex"},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1,hierarchicalNamespaces:!0},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showDataLabel:!1,showDataLabelOutsideBar:!1,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200,layoutAlgorithm:"cose-bilkent"},ishikawa:{useMaxWidth:!0,diagramPadding:20},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:"",nodeWidth:10,nodePadding:12,labelStyle:"legacy"},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},treeView:{useMaxWidth:!0,rowIndent:10,paddingX:5,paddingY:5,lineThickness:1},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16,randomize:!1,nodeSeparation:75,idealEdgeLengthMultiplier:1.5,edgeElasticity:.45,numIter:2500},eventmodeling:{useMaxWidth:!0,padding:30,rowHeight:32},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},venn:{useMaxWidth:!0,width:800,height:450,padding:8,useDebugLayout:!1},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var WH,qH,UH,or,Bn=z(()=>{"use strict";LC();VH();WH={...Ea,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF",forceNodeModelOrder:!1,considerModelOrder:"NODES_AND_EDGES"},themeCSS:void 0,themeVariables:_o.default.getThemeVariables(),sequence:{...Ea.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1,hierarchicalNamespaces:!0},gantt:{...Ea.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Ea.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),flowchart:{...Ea.flowchart,inheritDir:!1},external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...Ea.pie,useWidth:984},xyChart:{...Ea.xyChart,useWidth:void 0},requirement:{...Ea.requirement,useWidth:void 0},packet:{...Ea.packet},eventmodeling:{...Ea.eventmodeling},treeView:{...Ea.treeView,useWidth:void 0},radar:{...Ea.radar},ishikawa:{...Ea.ishikawa},sankey:{...Ea.sankey,nodeColors:void 0},treemap:{useMaxWidth:!0,padding:10,diagramPadding:8,showValues:!0,nodeWidth:100,nodeHeight:40,borderWidth:1,valueFontSize:12,labelFontSize:14,valueFormat:","},venn:{...Ea.venn}},qH=o((e,t="")=>Object.keys(e).reduce((r,i)=>Array.isArray(e[i])?r:typeof e[i]=="object"&&e[i]!==null?[...r,t+i,...qH(e[i],"")]:[...r,t+i],[]),"keyify"),UH=new Set(qH(WH,"")),or=WH});var Lm,A7,MC=z(()=>{"use strict";Bn();St();Lm=o(e=>{if(Z.debug("sanitizeDirective called with",e),!(typeof e!="object"||e==null)){if(Array.isArray(e)){e.forEach(t=>Lm(t));return}for(let t of Object.keys(e)){if(Z.debug("Checking key",t),t.startsWith("__")||t.includes("proto")||t.includes("constr")||!UH.has(t)||e[t]==null){Z.debug("sanitize deleting key: ",t),delete e[t];continue}if(typeof e[t]=="object"){if(t==="nodeColors"){let i=/^#[\da-f]{3,8}$|^rgb\([\d\s%,.]+\)$|^hsl\([\d\s%,.]+\)$|^[a-z]+$/i;for(let n of Object.keys(e[t]))(typeof e[t][n]!="string"||!i.test(e[t][n]))&&(Z.debug("sanitize deleting invalid color:",n,e[t][n]),delete e[t][n])}else Z.debug("sanitizing object",t),Lm(e[t]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let i of r)t.includes(i)&&(Z.debug("sanitizing css option",t),e[t]=A7(e[t]))}if(e.themeVariables)for(let t of Object.keys(e.themeVariables)){let r=e.themeVariables[t];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(e.themeVariables[t]="")}Z.debug("After sanitization",e)}},"sanitizeDirective"),A7=o(e=>{let t=0,r=0;for(let i of e){if(t{"use strict";Dm();St();LC();Bn();MC();Ph=Object.freeze(or),Aa=o(e=>!(e===!1||["false","null","0"].includes(String(e).trim().toLowerCase())),"evaluate"),vs=Ai({},Ph),zf=[],rv=Ai({},Ph),IC=o((e,t)=>{let r=Ai({},e),i={};for(let n of t)XH(n),i=Ai(i,n);if(r=Ai(r,i),i.theme&&i.theme in _o){let n=Ai({},NC),a=Ai(n.themeVariables||{},i.themeVariables);r.theme&&r.theme in _o&&(r.themeVariables=_o[r.theme].getThemeVariables(a))}return rv=r,QH(rv),rv},"updateCurrentConfig"),_7=o(e=>(vs=Ai({},Ph),vs=Ai(vs,e),e.theme&&_o[e.theme]&&(vs.themeVariables=_o[e.theme].getThemeVariables(e.themeVariables)),IC(vs,zf),vs),"setSiteConfig"),YH=o(e=>{NC=Ai({},e)},"saveConfigFromInitialize"),jH=o(e=>(vs=Ai(vs,e),IC(vs,zf),vs),"updateSiteConfig"),D7=o(()=>Ai({},vs),"getSiteConfig"),OC=o(e=>(QH(e),Ai(rv,e),Nt()),"setConfig"),Nt=o(()=>Ai({},rv),"getConfig"),XH=o(e=>{e&&(["secure",...vs.secure??[]].forEach(t=>{Object.hasOwn(e,t)&&(Z.debug(`Denied attempt to modify a secure key ${t}`,e[t]),delete e[t])}),Object.keys(e).forEach(t=>{t.startsWith("__")&&delete e[t]}),Object.keys(e).forEach(t=>{typeof e[t]=="string"&&(e[t].includes("<")||e[t].includes(">")||e[t].includes("url(data:"))&&delete e[t],typeof e[t]=="object"&&XH(e[t])}))},"sanitize"),KH=o(e=>{Lm(e),e.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables={...e.themeVariables,fontFamily:e.fontFamily}),zf.push(e),IC(vs,zf)},"addDirective"),iv=o((e=vs)=>{zf=[],IC(e,zf)},"reset"),zNe={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",FLOWCHART_HTML_LABELS_DEPRECATED:"flowchart.htmlLabels is deprecated. Please use global htmlLabels instead."},HH={},ZH=o(e=>{HH[e]||(Z.warn(zNe[e]),HH[e]=!0)},"issueWarning"),QH=o(e=>{e&&(e.lazyLoadedDiagrams||e.loadExternalDiagramsAtStartup)&&ZH("LAZY_LOAD_DEPRECATED")},"checkConfig"),JH=o(()=>{let e={};NC&&(e=Ai(e,NC));for(let t of zf)e=Ai(e,t);return e},"getUserDefinedConfig"),Mr=o(e=>(e.flowchart?.htmlLabels!=null&&ZH("FLOWCHART_HTML_LABELS_DEPRECATED"),Aa(e.htmlLabels??e.flowchart?.htmlLabels??!0)),"getEffectiveHtmlLabels")});function Ua(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var r=arguments.length,i=new Array(r>1?r-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:BC;eY&&eY(e,null);let i=t.length;for(;i--;){let n=t[i];if(typeof n=="string"){let a=r(n);a!==n&&(GNe(t)||(t[i]=a),n=a)}e[n]=!0}return e}function XNe(e){for(let t=0;t0&&arguments[0]!==void 0?arguments[0]:sIe(),t=o(pt=>hY(pt),"DOMPurify");if(t.version="3.4.0",t.removed=[],!e||!e.document||e.document.nodeType!==lv.document||!e.Element)return t.isSupported=!1,t;let{document:r}=e,i=r,n=i.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:l,Element:u,NodeFilter:h,NamedNodeMap:d=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:f,DOMParser:p,trustedTypes:m}=e,g=u.prototype,y=ov(g,"cloneNode"),v=ov(g,"remove"),x=ov(g,"nextSibling"),b=ov(g,"childNodes"),T=ov(g,"parentNode");if(typeof s=="function"){let pt=r.createElement("template");pt.content&&pt.content.ownerDocument&&(r=pt.content.ownerDocument)}let w,C="",{implementation:k,createNodeIterator:E,createDocumentFragment:A,getElementsByTagName:N}=r,{importNode:P}=i,I=oY();t.isSupported=typeof lY=="function"&&typeof T=="function"&&k&&k.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:D,ERB_EXPR:_,TMPLIT_EXPR:R,DATA_ATTR:M,ARIA_ATTR:L,IS_SCRIPT_OR_DATA:B,ATTR_WHITESPACE:O,CUSTOM_ELEMENT:$}=sY,{IS_ALLOWED_URI:G}=sY,F=null,V=$r({},[...rY,...M7,...N7,...I7,...iY]),H=null,j=$r({},[...nY,...O7,...aY,...PC]),U=Object.seal(cv(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}})),Q=null,Y=null,ae=Object.seal(cv(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),J=!0,te=!0,re=!1,ee=!0,Te=!1,ue=!0,De=!1,Ie=!1,Ee=!1,we=!1,Me=!1,$e=!1,de=!0,rt=!1,ke="user-content-",Fe=!0,He=!1,at={},qe=null,Ue=$r({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ye=null,ve=$r({},["audio","video","img","source","image","track"]),ie=null,fe=$r({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),W="http://www.w3.org/1998/Math/MathML",ce="http://www.w3.org/2000/svg",K="http://www.w3.org/1999/xhtml",Re=K,xe=!1,Oe=null,be=$r({},[W,ce,K],R7),Be=$r({},["mi","mo","mn","ms","mtext"]),Ae=$r({},["annotation-xml"]),Ve=$r({},["title","style","font","a","script"]),Pe=null,Ye=["application/xhtml+xml","text/html"],le="text/html",st=null,me=null,ot=r.createElement("form"),kt=o(function(Se){return Se instanceof RegExp||Se instanceof Function},"isRegexOrFunction"),Gt=o(function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(me&&me===Se)){if((!Se||typeof Se!="object")&&(Se={}),Se=tc(Se),Pe=Ye.indexOf(Se.PARSER_MEDIA_TYPE)===-1?le:Se.PARSER_MEDIA_TYPE,st=Pe==="application/xhtml+xml"?R7:BC,F=fl(Se,"ALLOWED_TAGS")?$r({},Se.ALLOWED_TAGS,st):V,H=fl(Se,"ALLOWED_ATTR")?$r({},Se.ALLOWED_ATTR,st):j,Oe=fl(Se,"ALLOWED_NAMESPACES")?$r({},Se.ALLOWED_NAMESPACES,R7):be,ie=fl(Se,"ADD_URI_SAFE_ATTR")?$r(tc(fe),Se.ADD_URI_SAFE_ATTR,st):fe,ye=fl(Se,"ADD_DATA_URI_TAGS")?$r(tc(ve),Se.ADD_DATA_URI_TAGS,st):ve,qe=fl(Se,"FORBID_CONTENTS")?$r({},Se.FORBID_CONTENTS,st):Ue,Q=fl(Se,"FORBID_TAGS")?$r({},Se.FORBID_TAGS,st):tc({}),Y=fl(Se,"FORBID_ATTR")?$r({},Se.FORBID_ATTR,st):tc({}),at=fl(Se,"USE_PROFILES")?Se.USE_PROFILES:!1,J=Se.ALLOW_ARIA_ATTR!==!1,te=Se.ALLOW_DATA_ATTR!==!1,re=Se.ALLOW_UNKNOWN_PROTOCOLS||!1,ee=Se.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Te=Se.SAFE_FOR_TEMPLATES||!1,ue=Se.SAFE_FOR_XML!==!1,De=Se.WHOLE_DOCUMENT||!1,we=Se.RETURN_DOM||!1,Me=Se.RETURN_DOM_FRAGMENT||!1,$e=Se.RETURN_TRUSTED_TYPE||!1,Ee=Se.FORCE_BODY||!1,de=Se.SANITIZE_DOM!==!1,rt=Se.SANITIZE_NAMED_PROPS||!1,Fe=Se.KEEP_CONTENT!==!1,He=Se.IN_PLACE||!1,G=Se.ALLOWED_URI_REGEXP||cY,Re=Se.NAMESPACE||K,Be=Se.MATHML_TEXT_INTEGRATION_POINTS||Be,Ae=Se.HTML_INTEGRATION_POINTS||Ae,U=Se.CUSTOM_ELEMENT_HANDLING||cv(null),Se.CUSTOM_ELEMENT_HANDLING&&kt(Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(U.tagNameCheck=Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&kt(Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(U.attributeNameCheck=Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&typeof Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(U.allowCustomizedBuiltInElements=Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Te&&(te=!1),Me&&(we=!0),at&&(F=$r({},iY),H=cv(null),at.html===!0&&($r(F,rY),$r(H,nY)),at.svg===!0&&($r(F,M7),$r(H,O7),$r(H,PC)),at.svgFilters===!0&&($r(F,N7),$r(H,O7),$r(H,PC)),at.mathMl===!0&&($r(F,I7),$r(H,aY),$r(H,PC))),ae.tagCheck=null,ae.attributeCheck=null,Se.ADD_TAGS&&(typeof Se.ADD_TAGS=="function"?ae.tagCheck=Se.ADD_TAGS:(F===V&&(F=tc(F)),$r(F,Se.ADD_TAGS,st))),Se.ADD_ATTR&&(typeof Se.ADD_ATTR=="function"?ae.attributeCheck=Se.ADD_ATTR:(H===j&&(H=tc(H)),$r(H,Se.ADD_ATTR,st))),Se.ADD_URI_SAFE_ATTR&&$r(ie,Se.ADD_URI_SAFE_ATTR,st),Se.FORBID_CONTENTS&&(qe===Ue&&(qe=tc(qe)),$r(qe,Se.FORBID_CONTENTS,st)),Se.ADD_FORBID_CONTENTS&&(qe===Ue&&(qe=tc(qe)),$r(qe,Se.ADD_FORBID_CONTENTS,st)),Fe&&(F["#text"]=!0),De&&$r(F,["html","head","body"]),F.table&&($r(F,["tbody"]),delete Q.tbody),Se.TRUSTED_TYPES_POLICY){if(typeof Se.TRUSTED_TYPES_POLICY.createHTML!="function")throw sv('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Se.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw sv('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');w=Se.TRUSTED_TYPES_POLICY,C=w.createHTML("")}else w===void 0&&(w=oIe(m,n)),w!==null&&typeof C=="string"&&(C=w.createHTML(""));qa&&qa(Se),me=Se}},"_parseConfig"),Tt=$r({},[...M7,...N7,...KNe]),Et=$r({},[...I7,...ZNe]),yt=o(function(Se){let it=T(Se);(!it||!it.tagName)&&(it={namespaceURI:Re,tagName:"template"});let xt=BC(Se.tagName),rr=BC(it.tagName);return Oe[Se.namespaceURI]?Se.namespaceURI===ce?it.namespaceURI===K?xt==="svg":it.namespaceURI===W?xt==="svg"&&(rr==="annotation-xml"||Be[rr]):!!Tt[xt]:Se.namespaceURI===W?it.namespaceURI===K?xt==="math":it.namespaceURI===ce?xt==="math"&&Ae[rr]:!!Et[xt]:Se.namespaceURI===K?it.namespaceURI===ce&&!Ae[rr]||it.namespaceURI===W&&!Be[rr]?!1:!Et[xt]&&(Ve[xt]||!Tt[xt]):!!(Pe==="application/xhtml+xml"&&Oe[Se.namespaceURI]):!1},"_checkValidNamespace"),oe=o(function(Se){av(t.removed,{element:Se});try{T(Se).removeChild(Se)}catch{v(Se)}},"_forceRemove"),ht=o(function(Se,it){try{av(t.removed,{attribute:it.getAttributeNode(Se),from:it})}catch{av(t.removed,{attribute:null,from:it})}if(it.removeAttribute(Se),Se==="is")if(we||Me)try{oe(it)}catch{}else try{it.setAttribute(Se,"")}catch{}},"_removeAttribute"),gt=o(function(Se){let it=null,xt=null;if(Ee)Se=""+Se;else{let Ur=L7(Se,/^[\r\n\t ]+/);xt=Ur&&Ur[0]}Pe==="application/xhtml+xml"&&Re===K&&(Se=''+Se+"");let rr=w?w.createHTML(Se):Se;if(Re===K)try{it=new p().parseFromString(rr,Pe)}catch{}if(!it||!it.documentElement){it=k.createDocument(Re,"template",null);try{it.documentElement.innerHTML=xe?C:rr}catch{}}let _r=it.body||it.documentElement;return Se&&xt&&_r.insertBefore(r.createTextNode(xt),_r.childNodes[0]||null),Re===K?N.call(it,De?"html":"body")[0]:De?it.documentElement:_r},"_initDocument"),et=o(function(Se){return E.call(Se.ownerDocument||Se,Se,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),pe=o(function(Se){return Se instanceof f&&(typeof Se.nodeName!="string"||typeof Se.textContent!="string"||typeof Se.removeChild!="function"||!(Se.attributes instanceof d)||typeof Se.removeAttribute!="function"||typeof Se.setAttribute!="function"||typeof Se.namespaceURI!="string"||typeof Se.insertBefore!="function"||typeof Se.hasChildNodes!="function")},"_isClobbered"),Qe=o(function(Se){return typeof l=="function"&&Se instanceof l},"_isNode");function nt(pt,Se,it){nv(pt,xt=>{xt.call(t,Se,it,me)})}o(nt,"_executeHooks");let dt=o(function(Se){let it=null;if(nt(I.beforeSanitizeElements,Se,null),pe(Se))return oe(Se),!0;let xt=st(Se.nodeName);if(nt(I.uponSanitizeElement,Se,{tagName:xt,allowedTags:F}),ue&&Se.hasChildNodes()&&!Qe(Se.firstElementChild)&&Wa(/<[/\w!]/g,Se.innerHTML)&&Wa(/<[/\w!]/g,Se.textContent)||ue&&Se.namespaceURI===K&&xt==="style"&&Qe(Se.firstElementChild)||Se.nodeType===lv.progressingInstruction||ue&&Se.nodeType===lv.comment&&Wa(/<[/\w]/g,Se.data))return oe(Se),!0;if(Q[xt]||!(ae.tagCheck instanceof Function&&ae.tagCheck(xt))&&!F[xt]){if(!Q[xt]&&Rt(xt)&&(U.tagNameCheck instanceof RegExp&&Wa(U.tagNameCheck,xt)||U.tagNameCheck instanceof Function&&U.tagNameCheck(xt)))return!1;if(Fe&&!qe[xt]){let rr=T(Se)||Se.parentNode,_r=b(Se)||Se.childNodes;if(_r&&rr){let Ur=_r.length;for(let Dr=Ur-1;Dr>=0;--Dr){let Xi=y(_r[Dr],!0);Xi.__removalCount=(Se.__removalCount||0)+1,rr.insertBefore(Xi,x(Se))}}}return oe(Se),!0}return Se instanceof u&&!yt(Se)||(xt==="noscript"||xt==="noembed"||xt==="noframes")&&Wa(/<\/no(script|embed|frames)/i,Se.innerHTML)?(oe(Se),!0):(Te&&Se.nodeType===lv.text&&(it=Se.textContent,nv([D,_,R],rr=>{it=Mm(it,rr," ")}),Se.textContent!==it&&(av(t.removed,{element:Se.cloneNode()}),Se.textContent=it)),nt(I.afterSanitizeElements,Se,null),!1)},"_sanitizeElements"),Ft=o(function(Se,it,xt){if(Y[it]||de&&(it==="id"||it==="name")&&(xt in r||xt in ot))return!1;if(!(te&&!Y[it]&&Wa(M,it))){if(!(J&&Wa(L,it))){if(!(ae.attributeCheck instanceof Function&&ae.attributeCheck(it,Se))){if(!H[it]||Y[it]){if(!(Rt(Se)&&(U.tagNameCheck instanceof RegExp&&Wa(U.tagNameCheck,Se)||U.tagNameCheck instanceof Function&&U.tagNameCheck(Se))&&(U.attributeNameCheck instanceof RegExp&&Wa(U.attributeNameCheck,it)||U.attributeNameCheck instanceof Function&&U.attributeNameCheck(it,Se))||it==="is"&&U.allowCustomizedBuiltInElements&&(U.tagNameCheck instanceof RegExp&&Wa(U.tagNameCheck,xt)||U.tagNameCheck instanceof Function&&U.tagNameCheck(xt))))return!1}else if(!ie[it]){if(!Wa(G,Mm(xt,O,""))){if(!((it==="src"||it==="xlink:href"||it==="href")&&Se!=="script"&&HNe(xt,"data:")===0&&ye[Se])){if(!(re&&!Wa(B,Mm(xt,O,"")))){if(xt)return!1}}}}}}}return!0},"_isValidAttribute"),Rt=o(function(Se){return Se!=="annotation-xml"&&L7(Se,$)},"_isBasicCustomElement"),$t=o(function(Se){nt(I.beforeSanitizeAttributes,Se,null);let{attributes:it}=Se;if(!it||pe(Se))return;let xt={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:H,forceKeepAttr:void 0},rr=it.length;for(;rr--;){let _r=it[rr],{name:Ur,namespaceURI:Dr,value:Xi}=_r,In=st(Ur),pi=Xi,zt=Ur==="value"?pi:YNe(pi);if(xt.attrName=In,xt.attrValue=zt,xt.keepAttr=!0,xt.forceKeepAttr=void 0,nt(I.uponSanitizeAttribute,Se,xt),zt=xt.attrValue,rt&&(In==="id"||In==="name")&&(ht(Ur,Se),zt=ke+zt),ue&&Wa(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,zt)){ht(Ur,Se);continue}if(In==="attributename"&&L7(zt,"href")){ht(Ur,Se);continue}if(xt.forceKeepAttr)continue;if(!xt.keepAttr){ht(Ur,Se);continue}if(!ee&&Wa(/\/>/i,zt)){ht(Ur,Se);continue}Te&&nv([D,_,R],qt=>{zt=Mm(zt,qt," ")});let Mt=st(Se.nodeName);if(!Ft(Mt,In,zt)){ht(Ur,Se);continue}if(w&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!Dr)switch(m.getAttributeType(Mt,In)){case"TrustedHTML":{zt=w.createHTML(zt);break}case"TrustedScriptURL":{zt=w.createScriptURL(zt);break}}if(zt!==pi)try{Dr?Se.setAttributeNS(Dr,Ur,zt):Se.setAttribute(Ur,zt),pe(Se)?oe(Se):tY(t.removed)}catch{ht(Ur,Se)}}nt(I.afterSanitizeAttributes,Se,null)},"_sanitizeAttributes"),lr=o(function(Se){let it=null,xt=et(Se);for(nt(I.beforeSanitizeShadowDOM,Se,null);it=xt.nextNode();)nt(I.uponSanitizeShadowNode,it,null),dt(it),$t(it),it.content instanceof a&&lr(it.content);nt(I.afterSanitizeShadowDOM,Se,null)},"_sanitizeShadowDOM");return t.sanitize=function(pt){let Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},it=null,xt=null,rr=null,_r=null;if(xe=!pt,xe&&(pt=""),typeof pt!="string"&&!Qe(pt))if(typeof pt.toString=="function"){if(pt=pt.toString(),typeof pt!="string")throw sv("dirty is not a string, aborting")}else throw sv("toString is not a function");if(!t.isSupported)return pt;if(Ie||Gt(Se),t.removed=[],typeof pt=="string"&&(He=!1),He){if(pt.nodeName){let Xi=st(pt.nodeName);if(!F[Xi]||Q[Xi])throw sv("root node is forbidden and cannot be sanitized in-place")}}else if(pt instanceof l)it=gt(""),xt=it.ownerDocument.importNode(pt,!0),xt.nodeType===lv.element&&xt.nodeName==="BODY"||xt.nodeName==="HTML"?it=xt:it.appendChild(xt);else{if(!we&&!Te&&!De&&pt.indexOf("<")===-1)return w&&$e?w.createHTML(pt):pt;if(it=gt(pt),!it)return we?null:$e?C:""}it&&Ee&&oe(it.firstChild);let Ur=et(He?pt:it);for(;rr=Ur.nextNode();)dt(rr),$t(rr),rr.content instanceof a&&lr(rr.content);if(He)return pt;if(we){if(Te){it.normalize();let Xi=it.innerHTML;nv([D,_,R],In=>{Xi=Mm(Xi,In," ")}),it.innerHTML=Xi}if(Me)for(_r=A.call(it.ownerDocument);it.firstChild;)_r.appendChild(it.firstChild);else _r=it;return(H.shadowroot||H.shadowrootmode)&&(_r=P.call(i,_r,!0)),_r}let Dr=De?it.outerHTML:it.innerHTML;return De&&F["!doctype"]&&it.ownerDocument&&it.ownerDocument.doctype&&it.ownerDocument.doctype.name&&Wa(uY,it.ownerDocument.doctype.name)&&(Dr="
+`+Dr),Te&&nv([D,_,R],Xi=>{Dr=Mm(Dr,Xi," ")}),w&&$e?w.createHTML(Dr):Dr},t.setConfig=function(){let pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Gt(pt),Ie=!0},t.clearConfig=function(){me=null,Ie=!1},t.isValidAttribute=function(pt,Se,it){me||Gt({});let xt=st(pt),rr=st(Se);return Ft(xt,rr,it)},t.addHook=function(pt,Se){typeof Se=="function"&&av(I[pt],Se)},t.removeHook=function(pt,Se){if(Se!==void 0){let it=qNe(I[pt],Se);return it===-1?void 0:UNe(I[pt],it,1)[0]}return tY(I[pt])},t.removeHooks=function(pt){I[pt]=[]},t.removeAllHooks=function(){I=oY()},t}var lY,eY,GNe,VNe,WNe,qa,Do,cv,P7,B7,nv,qNe,tY,av,UNe,BC,R7,L7,Mm,HNe,YNe,fl,Wa,sv,rY,M7,N7,KNe,I7,ZNe,iY,nY,O7,aY,PC,QNe,JNe,eIe,tIe,rIe,cY,iIe,nIe,uY,aIe,sY,lv,sIe,oIe,oY,Ro,uv=z(()=>{"use strict";({entries:lY,setPrototypeOf:eY,isFrozen:GNe,getPrototypeOf:VNe,getOwnPropertyDescriptor:WNe}=Object),{freeze:qa,seal:Do,create:cv}=Object,{apply:P7,construct:B7}=typeof Reflect<"u"&&Reflect;qa||(qa=o(function(t){return t},"freeze"));Do||(Do=o(function(t){return t},"seal"));P7||(P7=o(function(t,r){for(var i=arguments.length,n=new Array(i>2?i-2:0),a=2;a1?r-1:0),n=1;n/gm),eIe=Do(/\$\{[\w\W]*/gm),tIe=Do(/^data-[\-\w.\u00B7-\uFFFF]+$/),rIe=Do(/^aria-[\-\w]+$/),cY=Do(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),iIe=Do(/^(?:\w+script|data):/i),nIe=Do(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),uY=Do(/^html$/i),aIe=Do(/^[a-z][.\w]*(-[.\w]+)+$/i),sY=Object.freeze({__proto__:null,ARIA_ATTR:rIe,ATTR_WHITESPACE:nIe,CUSTOM_ELEMENT:aIe,DATA_ATTR:tIe,DOCTYPE_NAME:uY,ERB_EXPR:JNe,IS_ALLOWED_URI:cY,IS_SCRIPT_OR_DATA:iIe,MUSTACHE_EXPR:QNe,TMPLIT_EXPR:eIe}),lv={element:1,text:3,progressingInstruction:7,comment:8,document:9},sIe=o(function(){return typeof window>"u"?null:window},"getGlobal"),oIe=o(function(t,r){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null,n="data-tt-policy-suffix";r&&r.hasAttribute(n)&&(i=r.getAttribute(n));let a="dompurify"+(i?"#"+i:"");try{return t.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},"_createTrustedTypesPolicy"),oY=o(function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},"_createHooksMap");o(hY,"createDOMPurify");Ro=hY()});var Wj={};xr(Wj,{ParseError:()=>Lt,SETTINGS_SCHEMA:()=>pv,__defineFunction:()=>Bt,__defineMacro:()=>he,__defineSymbol:()=>q,__domTree:()=>Vj,__parse:()=>Fj,__renderToDomTree:()=>uk,__renderToHTMLTree:()=>zj,__setFontMetrics:()=>UY,default:()=>Z9e,render:()=>ED,renderToString:()=>Bj,version:()=>Gj});function fIe(e){return String(e).replace(dIe,t=>hIe[t])}function yIe(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function wIe(e){for(var t=0;t=n[0]&&e<=n[1])return r.name}return null}function qY(e){for(var t=0;t=XC[t]&&e<=XC[t+1])return!0;return!1}function UY(e,t){nc[e]=t}function uD(e,t,r){if(!nc[t])throw new Error("Font metrics not found for font: "+t+".");var i=e.charCodeAt(0),n=nc[t][i];if(!n&&e[0]in fY&&(i=fY[e[0]].charCodeAt(0),n=nc[t][i]),!n&&r==="text"&&qY(i)&&(n=nc[t][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}function OIe(e){var t;if(e>=5?t=0:e>=3?t=1:t=2,!F7[t]){var r=F7[t]={cssEmPerMu:FC.quad[t]/18};for(var i in FC)FC.hasOwnProperty(i)&&(r[i]=FC[i][t])}return F7[t]}function gY(e){if(e instanceof Ts)return e;throw new Error("Expected symbolNode but got "+String(e)+".")}function zIe(e){if(e instanceof Wf)return e;throw new Error("Expected span but got "+String(e)+".")}function q(e,t,r,i,n,a){_i[e][n]={font:t,group:r,replace:i},a&&i&&(_i[e][i]=_i[e][n])}function Bt(e){for(var{type:t,names:r,props:i,handler:n,htmlBuilder:a,mathmlBuilder:s}=e,l={type:t,numArgs:i.numArgs,argTypes:i.argTypes,allowedInArgument:!!i.allowedInArgument,allowedInText:!!i.allowedInText,allowedInMath:i.allowedInMath===void 0?!0:i.allowedInMath,numOptionalArgs:i.numOptionalArgs||0,infix:!!i.infix,primitive:!!i.primitive,handler:n},u=0;u0&&(a.push(UC(s,t)),s=[]),a.push(i[l]));s.length>0&&a.push(UC(s,t));var h;r?(h=UC(Fn(r,t,!0)),h.classes=["tag"],a.push(h)):n&&a.push(n);var d=bu(["katex-html"],a);if(d.setAttribute("aria-hidden","true"),h){var f=h.children[0];f.style.height=It(d.height+d.depth),d.depth&&(f.style.verticalAlign=It(-d.depth))}return d}function ij(e){return new Vf(e)}function G7(e){if(!e)return!1;if(e.type==="mi"&&e.children.length===1){var t=e.children[0];return t instanceof Mo&&t.text==="."}else if(e.type==="mo"&&e.children.length===1&&e.getAttribute("separator")==="true"&&e.getAttribute("lspace")==="0em"&&e.getAttribute("rspace")==="0em"){var r=e.children[0];return r instanceof Mo&&r.text===","}else return!1}function TY(e,t,r,i,n){var a=Cs(e,r),s;a.length===1&&a[0]instanceof Ha&&["mrow","mtable"].includes(a[0].type)?s=a[0]:s=new Dt.MathNode("mrow",a);var l=new Dt.MathNode("annotation",[new Dt.TextNode(t)]);l.setAttribute("encoding","application/x-tex");var u=new Dt.MathNode("semantics",[s,l]),h=new Dt.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),i&&h.setAttribute("display","block");var d=n?"katex":"katex-mathml";return Ke.makeSpan([d],[h])}function Nr(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function pD(e){var t=sk(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function sk(e){return e&&(e.type==="atom"||VIe.hasOwnProperty(e.type))?e:null}function oj(e,t){var r=Fn(e.body,t,!0);return v9e([e.mclass],r,t)}function lj(e,t){var r,i=Cs(e.body,t);return e.mclass==="minner"?r=new Dt.MathNode("mpadded",i):e.mclass==="mord"?e.isCharacterBox?(r=i[0],r.type="mi"):r=new Dt.MathNode("mi",i):(e.isCharacterBox?(r=i[0],r.type="mo"):r=new Dt.MathNode("mo",i),e.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):e.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):e.mclass==="mopen"||e.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):e.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function T9e(e,t,r){var i=x9e[e];switch(i){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(i,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{var n=r.callFunction("\\\\cdleft",[t[0]],[]),a={type:"atom",text:i,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[t[1]],[]),u={type:"ordgroup",mode:"math",body:[n,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function C9e(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if(r==="&"||r==="\\\\")e.consume();else if(r==="\\end"){t[t.length-1].length===0&&t.pop();break}else throw new Lt("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var i=[],n=[i],a=0;a-1))if("<>AV".indexOf(h)>-1)for(var f=0;f<2;f++){for(var p=!0,m=u+1;mAV=|." after @',s[u]);var g=T9e(h,d,e),y={type:"styling",body:[g],mode:"math",style:"display"};i.push(y),l=CY()}a%2===0?i.push(l):i.shift(),i=[],n.push(i)}e.gullet.endGroup(),e.gullet.endGroup();var v=new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}function lk(e,t){var r=sk(e);if(r&&O9e.includes(r.text))return r;throw r?new Lt("Invalid delimiter '"+r.text+"' after '"+t.funcName+"'",e):new Lt("Invalid delimiter type '"+e.type+"'",e)}function SY(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function sc(e){for(var{type:t,names:r,props:i,handler:n,htmlBuilder:a,mathmlBuilder:s}=e,l={type:t,numArgs:i.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},u=0;u1||!d)&&y.pop(),x.length{"use strict";bs=class e{static{o(this,"SourceLocation")}constructor(t,r,i){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=t,this.start=r,this.end=i}static range(t,r){return r?!t||!t.loc||!r.loc||t.loc.lexer!==r.loc.lexer?null:new e(t.loc.lexer,t.loc.start,r.loc.end):t&&t.loc}},eo=class e{static{o(this,"Token")}constructor(t,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=t,this.loc=r}range(t,r){return new e(r,bs.range(this,t))}},Lt=class e{static{o(this,"ParseError")}constructor(t,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var i="KaTeX parse error: "+t,n,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;n=s.start,a=s.end,n===l.length?i+=" at end of input: ":i+=" at position "+(n+1)+": ";var u=l.slice(n,a).replace(/[^]/g,"$&\u0332"),h;n>15?h="\u2026"+l.slice(n-15,n):h=l.slice(0,n);var d;a+15":">","<":"<",'"':""","'":"'"},dIe=/[&><"']/g;o(fIe,"escape");WY=o(function e(t){return t.type==="ordgroup"||t.type==="color"?t.body.length===1?e(t.body[0]):t:t.type==="font"?e(t.body):t},"getBaseElem"),pIe=o(function(t){var r=WY(t);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),mIe=o(function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t},"assert"),gIe=o(function(t){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(t);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),Zr={deflt:lIe,escape:fIe,hyphenate:uIe,getBaseElem:WY,isCharacterBox:pIe,protocolFromUrl:gIe},pv={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:o(e=>"#"+e,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((e,t)=>(t.push(e),t),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:o(e=>Math.max(0,e),"processor"),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:o(e=>Math.max(0,e),"processor"),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:o(e=>Math.max(0,e),"processor"),cli:"-e, --max-expand ",cliProcessor:o(e=>e==="Infinity"?1/0:parseInt(e),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o(yIe,"getDefaultValue");gv=class{static{o(this,"Settings")}constructor(t){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,t=t||{};for(var r in pv)if(pv.hasOwnProperty(r)){var i=pv[r];this[r]=t[r]!==void 0?i.processor?i.processor(t[r]):t[r]:yIe(i)}}reportNonstrict(t,r,i){var n=this.strict;if(typeof n=="function"&&(n=n(t,r,i)),!(!n||n==="ignore")){if(n===!0||n==="error")throw new Lt("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+t+"]"),i);n==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+r+" ["+t+"]"))}}useStrictBehavior(t,r,i){var n=this.strict;if(typeof n=="function")try{n=n(t,r,i)}catch{n="error"}return!n||n==="ignore"?!1:n===!0||n==="error"?!0:n==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+r+" ["+t+"]")),!1)}isTrusted(t){if(t.url&&!t.protocol){var r=Zr.protocolFromUrl(t.url);if(r==null)return!1;t.protocol=r}var i=typeof this.trust=="function"?this.trust(t):this.trust;return!!i}},rc=class{static{o(this,"Style")}constructor(t,r,i){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=r,this.cramped=i}sup(){return ic[vIe[this.id]]}sub(){return ic[xIe[this.id]]}fracNum(){return ic[bIe[this.id]]}fracDen(){return ic[TIe[this.id]]}cramp(){return ic[CIe[this.id]]}text(){return ic[kIe[this.id]]}isTight(){return this.size>=2}},cD=0,KC=1,Im=2,vu=3,yv=4,Lo=5,Om=6,Ya=7,ic=[new rc(cD,0,!1),new rc(KC,0,!0),new rc(Im,1,!1),new rc(vu,1,!0),new rc(yv,2,!1),new rc(Lo,2,!0),new rc(Om,3,!1),new rc(Ya,3,!0)],vIe=[yv,Lo,yv,Lo,Om,Ya,Om,Ya],xIe=[Lo,Lo,Lo,Lo,Ya,Ya,Ya,Ya],bIe=[Im,vu,yv,Lo,Om,Ya,Om,Ya],TIe=[vu,vu,Lo,Lo,Ya,Ya,Ya,Ya],CIe=[KC,KC,vu,vu,Lo,Lo,Ya,Ya],kIe=[cD,KC,Im,vu,Im,vu,Im,vu],ur={DISPLAY:ic[cD],TEXT:ic[Im],SCRIPT:ic[yv],SCRIPTSCRIPT:ic[Om]},Z7=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];o(wIe,"scriptFromCodepoint");XC=[];Z7.forEach(e=>e.blocks.forEach(t=>XC.push(...t)));o(qY,"supportedCodepoint");Nm=80,SIe=o(function(t,r){return"M95,"+(622+t+r)+`
+c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
+c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
+c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
+s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
+c69,-144,104.5,-217.7,106.5,-221
+l`+t/2.075+" -"+t+`
+c5.3,-9.3,12,-14,20,-14
+H400000v`+(40+t)+`H845.2724
+s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
+c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
+M`+(834+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},"sqrtMain"),EIe=o(function(t,r){return"M263,"+(601+t+r)+`c0.7,0,18,39.7,52,119
+c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120
+c340,-704.7,510.7,-1060.3,512,-1067
+l`+t/2.084+" -"+t+`
+c4.7,-7.3,11,-11,19,-11
+H40000v`+(40+t)+`H1012.3
+s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232
+c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1
+s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26
+c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z
+M`+(1001+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},"sqrtSize1"),AIe=o(function(t,r){return"M983 "+(10+t+r)+`
+l`+t/3.13+" -"+t+`
+c4,-6.7,10,-10,18,-10 H400000v`+(40+t)+`
+H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7
+s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744
+c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30
+c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722
+c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5
+c53.7,-170.3,84.5,-266.8,92.5,-289.5z
+M`+(1001+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},"sqrtSize2"),_Ie=o(function(t,r){return"M424,"+(2398+t+r)+`
+c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514
+c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20
+s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121
+s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081
+l`+t/4.223+" -"+t+`c4,-6.7,10,-10,18,-10 H400000
+v`+(40+t)+`H1014.6
+s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185
+c-2,6,-10,9,-24,9
+c-8,0,-12,-0.7,-12,-2z M`+(1001+t)+" "+r+`
+h400000v`+(40+t)+"h-400000z"},"sqrtSize3"),DIe=o(function(t,r){return"M473,"+(2713+t+r)+`
+c339.3,-1799.3,509.3,-2700,510,-2702 l`+t/5.298+" -"+t+`
+c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+t)+`H1017.7
+s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9
+c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200
+c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26
+s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,
+606zM`+(1001+t)+" "+r+"h400000v"+(40+t)+"H1017.7z"},"sqrtSize4"),RIe=o(function(t){var r=t/2;return"M400000 "+t+" H0 L"+r+" 0 l65 45 L145 "+(t-80)+" H400000z"},"phasePath"),LIe=o(function(t,r,i){var n=i-54-r-t;return"M702 "+(t+r)+"H400000"+(40+t)+`
+H742v`+n+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1
+h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170
+c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667
+219 661 l218 661zM702 `+r+"H400000v"+(40+t)+"H742z"},"sqrtTall"),MIe=o(function(t,r,i){r=1e3*r;var n="";switch(t){case"sqrtMain":n=SIe(r,Nm);break;case"sqrtSize1":n=EIe(r,Nm);break;case"sqrtSize2":n=AIe(r,Nm);break;case"sqrtSize3":n=_Ie(r,Nm);break;case"sqrtSize4":n=DIe(r,Nm);break;case"sqrtTall":n=LIe(r,Nm,i)}return n},"sqrtPath"),NIe=o(function(t,r){switch(t){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),dY={doubleleftarrow:`M262 157
+l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3
+ 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28
+ 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5
+c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5
+ 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87
+-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7
+-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z
+m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l
+-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5
+ 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88
+-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68
+-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18
+-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782
+c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3
+-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120
+ 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8
+-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247
+c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208
+ 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3
+ 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202
+ l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117
+-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7
+ 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13
+ 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688
+ 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7
+-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80
+H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0
+ 435 0h399565z`,leftgroupunder:`M400000 262
+H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219
+ 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3
+-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5
+-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7
+-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5
+ 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3
+-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7
+-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z
+m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333
+ 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5
+ 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667
+-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12
+ 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7
+-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0
+v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5
+-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3
+-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21
+ 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z
+M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z
+M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23
+-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8
+c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3
+ 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z
+M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334
+c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14
+-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7
+ 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11
+ 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214
+c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14
+ 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3
+ 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0
+-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6
+-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z
+m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8
+60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8
+-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z
+m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2
+c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6
+-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z
+m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0
+85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8
+-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z
+m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1
+c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128
+-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20
+ 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7
+ 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85
+-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
+-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
+ 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l
+-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5
+s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1
+c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3
+ 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237
+-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0
+ 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18
+ 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3
+-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2
+-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58
+ 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11
+-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7
+ 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z
+m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8
+ 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5
+-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95
+-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8
+ 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3
+ 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3
+-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z
+m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3
+ 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0
+-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21
+ 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z
+M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23
+ 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32
+-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142
+-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40
+ 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69
+-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3
+-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19
+-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101
+ 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167
+c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3
+ 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42
+ 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333
+-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70
+ 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7
+-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0
+ 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0
+ 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128
+-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418
+-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9
+ 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114
+c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751
+ 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457
+-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0
+ 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697
+ 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696
+ -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345
+-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409
+ 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9
+ 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409
+ -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
+3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
+10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
+-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
+-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
+H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
+c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22
+c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10
+-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10
+-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10
+-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,
+-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
+-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
+-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
+-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202
+c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5
+c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130
+s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47
+121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6
+s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11
+c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z
+M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32
+-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0
+13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39
+-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5
+-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
+-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
+151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
+c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17
+c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21
+c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40
+c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z
+M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0
+c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
+-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
+c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
+M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
+c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,
+1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,
+-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z
+M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0
+c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
+-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
+c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
+M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},IIe=o(function(t,r){switch(t){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84
+H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z
+M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z
+M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z
+MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z
+MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z
+M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z
+M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1
+c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,
+-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,
+949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9
+c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,
+-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189
+l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,
+-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,
+63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5
+c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+`
+c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664
+c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11
+c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17
+c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
+l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
+-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),Vf=class{static{o(this,"DocumentFragment")}constructor(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(t){return this.classes.includes(t)}toNode(){for(var t=document.createDocumentFragment(),r=0;rr.toText(),"toText");return this.children.map(t).join("")}},nc={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},FC={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},fY={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(UY,"setFontMetrics");o(uD,"getCharacterMetrics");F7={};o(OIe,"getGlobalMetrics");PIe=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],pY=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],mY=o(function(t,r){return r.size<2?t:PIe[t-1][r.size-1]},"sizeAtStyle"),ZC=class e{static{o(this,"Options")}constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||e.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||"",this.fontFamily=t.fontFamily||"",this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=pY[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var i in t)t.hasOwnProperty(i)&&(r[i]=t[i]);return new e(r)}havingStyle(t){return this.style===t?this:this.extend({style:t,size:mY(this.textSize,t)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(t){return this.size===t&&this.textSize===t?this:this.extend({style:this.style.text(),size:t,textSize:t,sizeMultiplier:pY[t-1]})}havingBaseStyle(t){t=t||this.style.text();var r=mY(e.BASESIZE,t);return this.size===r&&this.textSize===e.BASESIZE&&this.style===t?this:this.extend({style:t,size:r})}havingBaseSizing(){var t;switch(this.style.id){case 4:case 5:t=3;break;case 6:case 7:t=1;break;default:t=6}return this.extend({style:this.style.text(),size:t})}withColor(t){return this.extend({color:t})}withPhantom(){return this.extend({phantom:!0})}withFont(t){return this.extend({font:t})}withTextFontFamily(t){return this.extend({fontFamily:t,font:""})}withTextFontWeight(t){return this.extend({fontWeight:t,font:""})}withTextFontShape(t){return this.extend({fontShape:t,font:""})}sizingClasses(t){return t.size!==this.size?["sizing","reset-size"+t.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==e.BASESIZE?["sizing","reset-size"+this.size,"size"+e.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=OIe(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};ZC.BASESIZE=6;Q7={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},BIe={ex:!0,em:!0,mu:!0},HY=o(function(t){return typeof t!="string"&&(t=t.unit),t in Q7||t in BIe||t==="ex"},"validUnit"),Qi=o(function(t,r){var i;if(t.unit in Q7)i=Q7[t.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(t.unit==="mu")i=r.fontMetrics().cssEmPerMu;else{var n;if(r.style.isTight()?n=r.havingStyle(r.style.text()):n=r,t.unit==="ex")i=n.fontMetrics().xHeight;else if(t.unit==="em")i=n.fontMetrics().quad;else throw new Lt("Invalid unit: '"+t.unit+"'");n!==r&&(i*=n.sizeMultiplier/r.sizeMultiplier)}return Math.min(t.number*i,r.maxSize)},"calculateSize"),It=o(function(t){return+t.toFixed(4)+"em"},"makeEm"),$h=o(function(t){return t.filter(r=>r).join(" ")},"createClass"),YY=o(function(t,r,i){if(this.classes=t||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=i||{},r){r.style.isTight()&&this.classes.push("mtight");var n=r.getColor();n&&(this.style.color=n)}},"initNode"),jY=o(function(t){var r=document.createElement(t);r.className=$h(this.classes);for(var i in this.style)this.style.hasOwnProperty(i)&&(r.style[i]=this.style[i]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&r.setAttribute(n,this.attributes[n]);for(var a=0;a/=\x00-\x1f]/,XY=o(function(t){var r="<"+t;this.classes.length&&(r+=' class="'+Zr.escape($h(this.classes))+'"');var i="";for(var n in this.style)this.style.hasOwnProperty(n)&&(i+=Zr.hyphenate(n)+":"+this.style[n]+";");i&&(r+=' style="'+Zr.escape(i)+'"');for(var a in this.attributes)if(this.attributes.hasOwnProperty(a)){if(FIe.test(a))throw new Lt("Invalid attribute name '"+a+"'");r+=" "+a+'="'+Zr.escape(this.attributes[a])+'"'}r+=">";for(var s=0;s",r},"toMarkup"),Wf=class{static{o(this,"Span")}constructor(t,r,i,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,YY.call(this,t,i,n),this.children=r||[]}setAttribute(t,r){this.attributes[t]=r}hasClass(t){return this.classes.includes(t)}toNode(){return jY.call(this,"span")}toMarkup(){return XY.call(this,"span")}},vv=class{static{o(this,"Anchor")}constructor(t,r,i,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,YY.call(this,r,n),this.children=i||[],this.setAttribute("href",t)}setAttribute(t,r){this.attributes[t]=r}hasClass(t){return this.classes.includes(t)}toNode(){return jY.call(this,"a")}toMarkup(){return XY.call(this,"a")}},J7=class{static{o(this,"Img")}constructor(t,r,i){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=t,this.classes=["mord"],this.style=i}hasClass(t){return this.classes.includes(t)}toNode(){var t=document.createElement("img");t.src=this.src,t.alt=this.alt,t.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);return t}toMarkup(){var t=''+Zr.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=It(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=$h(this.classes));for(var i in this.style)this.style.hasOwnProperty(i)&&(r=r||document.createElement("span"),r.style[i]=this.style[i]);return r?(r.appendChild(t),r):t}toMarkup(){var t=!1,r="0&&(i+="margin-right:"+this.italic+"em;");for(var n in this.style)this.style.hasOwnProperty(n)&&(i+=Zr.hyphenate(n)+":"+this.style[n]+";");i&&(t=!0,r+=' style="'+Zr.escape(i)+'"');var a=Zr.escape(this.text);return t?(r+=">",r+=a,r+="",r):a}},ml=class{static{o(this,"SvgNode")}constructor(t,r){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=r||{}}toNode(){var t="http://www.w3.org/2000/svg",r=document.createElementNS(t,"svg");for(var i in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,i)&&r.setAttribute(i,this.attributes[i]);for(var n=0;n':''}},xv=class{static{o(this,"LineNode")}constructor(t){this.attributes=void 0,this.attributes=t||{}}toNode(){var t="http://www.w3.org/2000/svg",r=document.createElementNS(t,"line");for(var i in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,i)&&r.setAttribute(i,this.attributes[i]);return r}toMarkup(){var t="","\\gt",!0);q(X,se,Ne,"\u2208","\\in",!0);q(X,se,Ne,"\uE020","\\@not");q(X,se,Ne,"\u2282","\\subset",!0);q(X,se,Ne,"\u2283","\\supset",!0);q(X,se,Ne,"\u2286","\\subseteq",!0);q(X,se,Ne,"\u2287","\\supseteq",!0);q(X,Le,Ne,"\u2288","\\nsubseteq",!0);q(X,Le,Ne,"\u2289","\\nsupseteq",!0);q(X,se,Ne,"\u22A8","\\models");q(X,se,Ne,"\u2190","\\leftarrow",!0);q(X,se,Ne,"\u2264","\\le");q(X,se,Ne,"\u2264","\\leq",!0);q(X,se,Ne,"<","\\lt",!0);q(X,se,Ne,"\u2192","\\rightarrow",!0);q(X,se,Ne,"\u2192","\\to");q(X,Le,Ne,"\u2271","\\ngeq",!0);q(X,Le,Ne,"\u2270","\\nleq",!0);q(X,se,Cu,"\xA0","\\ ");q(X,se,Cu,"\xA0","\\space");q(X,se,Cu,"\xA0","\\nobreakspace");q(wt,se,Cu,"\xA0","\\ ");q(wt,se,Cu,"\xA0"," ");q(wt,se,Cu,"\xA0","\\space");q(wt,se,Cu,"\xA0","\\nobreakspace");q(X,se,Cu,null,"\\nobreak");q(X,se,Cu,null,"\\allowbreak");q(X,se,nk,",",",");q(X,se,nk,";",";");q(X,Le,Vt,"\u22BC","\\barwedge",!0);q(X,Le,Vt,"\u22BB","\\veebar",!0);q(X,se,Vt,"\u2299","\\odot",!0);q(X,se,Vt,"\u2295","\\oplus",!0);q(X,se,Vt,"\u2297","\\otimes",!0);q(X,se,ze,"\u2202","\\partial",!0);q(X,se,Vt,"\u2298","\\oslash",!0);q(X,Le,Vt,"\u229A","\\circledcirc",!0);q(X,Le,Vt,"\u22A1","\\boxdot",!0);q(X,se,Vt,"\u25B3","\\bigtriangleup");q(X,se,Vt,"\u25BD","\\bigtriangledown");q(X,se,Vt,"\u2020","\\dagger");q(X,se,Vt,"\u22C4","\\diamond");q(X,se,Vt,"\u22C6","\\star");q(X,se,Vt,"\u25C3","\\triangleleft");q(X,se,Vt,"\u25B9","\\triangleright");q(X,se,to,"{","\\{");q(wt,se,ze,"{","\\{");q(wt,se,ze,"{","\\textbraceleft");q(X,se,ja,"}","\\}");q(wt,se,ze,"}","\\}");q(wt,se,ze,"}","\\textbraceright");q(X,se,to,"{","\\lbrace");q(X,se,ja,"}","\\rbrace");q(X,se,to,"[","\\lbrack",!0);q(wt,se,ze,"[","\\lbrack",!0);q(X,se,ja,"]","\\rbrack",!0);q(wt,se,ze,"]","\\rbrack",!0);q(X,se,to,"(","\\lparen",!0);q(X,se,ja,")","\\rparen",!0);q(wt,se,ze,"<","\\textless",!0);q(wt,se,ze,">","\\textgreater",!0);q(X,se,to,"\u230A","\\lfloor",!0);q(X,se,ja,"\u230B","\\rfloor",!0);q(X,se,to,"\u2308","\\lceil",!0);q(X,se,ja,"\u2309","\\rceil",!0);q(X,se,ze,"\\","\\backslash");q(X,se,ze,"\u2223","|");q(X,se,ze,"\u2223","\\vert");q(wt,se,ze,"|","\\textbar",!0);q(X,se,ze,"\u2225","\\|");q(X,se,ze,"\u2225","\\Vert");q(wt,se,ze,"\u2225","\\textbardbl");q(wt,se,ze,"~","\\textasciitilde");q(wt,se,ze,"\\","\\textbackslash");q(wt,se,ze,"^","\\textasciicircum");q(X,se,Ne,"\u2191","\\uparrow",!0);q(X,se,Ne,"\u21D1","\\Uparrow",!0);q(X,se,Ne,"\u2193","\\downarrow",!0);q(X,se,Ne,"\u21D3","\\Downarrow",!0);q(X,se,Ne,"\u2195","\\updownarrow",!0);q(X,se,Ne,"\u21D5","\\Updownarrow",!0);q(X,se,Sn,"\u2210","\\coprod");q(X,se,Sn,"\u22C1","\\bigvee");q(X,se,Sn,"\u22C0","\\bigwedge");q(X,se,Sn,"\u2A04","\\biguplus");q(X,se,Sn,"\u22C2","\\bigcap");q(X,se,Sn,"\u22C3","\\bigcup");q(X,se,Sn,"\u222B","\\int");q(X,se,Sn,"\u222B","\\intop");q(X,se,Sn,"\u222C","\\iint");q(X,se,Sn,"\u222D","\\iiint");q(X,se,Sn,"\u220F","\\prod");q(X,se,Sn,"\u2211","\\sum");q(X,se,Sn,"\u2A02","\\bigotimes");q(X,se,Sn,"\u2A01","\\bigoplus");q(X,se,Sn,"\u2A00","\\bigodot");q(X,se,Sn,"\u222E","\\oint");q(X,se,Sn,"\u222F","\\oiint");q(X,se,Sn,"\u2230","\\oiiint");q(X,se,Sn,"\u2A06","\\bigsqcup");q(X,se,Sn,"\u222B","\\smallint");q(wt,se,Pm,"\u2026","\\textellipsis");q(X,se,Pm,"\u2026","\\mathellipsis");q(wt,se,Pm,"\u2026","\\ldots",!0);q(X,se,Pm,"\u2026","\\ldots",!0);q(X,se,Pm,"\u22EF","\\@cdots",!0);q(X,se,Pm,"\u22F1","\\ddots",!0);q(X,se,ze,"\u22EE","\\varvdots");q(wt,se,ze,"\u22EE","\\varvdots");q(X,se,qi,"\u02CA","\\acute");q(X,se,qi,"\u02CB","\\grave");q(X,se,qi,"\xA8","\\ddot");q(X,se,qi,"~","\\tilde");q(X,se,qi,"\u02C9","\\bar");q(X,se,qi,"\u02D8","\\breve");q(X,se,qi,"\u02C7","\\check");q(X,se,qi,"^","\\hat");q(X,se,qi,"\u20D7","\\vec");q(X,se,qi,"\u02D9","\\dot");q(X,se,qi,"\u02DA","\\mathring");q(X,se,cr,"\uE131","\\@imath");q(X,se,cr,"\uE237","\\@jmath");q(X,se,ze,"\u0131","\u0131");q(X,se,ze,"\u0237","\u0237");q(wt,se,ze,"\u0131","\\i",!0);q(wt,se,ze,"\u0237","\\j",!0);q(wt,se,ze,"\xDF","\\ss",!0);q(wt,se,ze,"\xE6","\\ae",!0);q(wt,se,ze,"\u0153","\\oe",!0);q(wt,se,ze,"\xF8","\\o",!0);q(wt,se,ze,"\xC6","\\AE",!0);q(wt,se,ze,"\u0152","\\OE",!0);q(wt,se,ze,"\xD8","\\O",!0);q(wt,se,qi,"\u02CA","\\'");q(wt,se,qi,"\u02CB","\\`");q(wt,se,qi,"\u02C6","\\^");q(wt,se,qi,"\u02DC","\\~");q(wt,se,qi,"\u02C9","\\=");q(wt,se,qi,"\u02D8","\\u");q(wt,se,qi,"\u02D9","\\.");q(wt,se,qi,"\xB8","\\c");q(wt,se,qi,"\u02DA","\\r");q(wt,se,qi,"\u02C7","\\v");q(wt,se,qi,"\xA8",'\\"');q(wt,se,qi,"\u02DD","\\H");q(wt,se,qi,"\u25EF","\\textcircled");KY={"--":!0,"---":!0,"``":!0,"''":!0};q(wt,se,ze,"\u2013","--",!0);q(wt,se,ze,"\u2013","\\textendash");q(wt,se,ze,"\u2014","---",!0);q(wt,se,ze,"\u2014","\\textemdash");q(wt,se,ze,"\u2018","`",!0);q(wt,se,ze,"\u2018","\\textquoteleft");q(wt,se,ze,"\u2019","'",!0);q(wt,se,ze,"\u2019","\\textquoteright");q(wt,se,ze,"\u201C","``",!0);q(wt,se,ze,"\u201C","\\textquotedblleft");q(wt,se,ze,"\u201D","''",!0);q(wt,se,ze,"\u201D","\\textquotedblright");q(X,se,ze,"\xB0","\\degree",!0);q(wt,se,ze,"\xB0","\\degree");q(wt,se,ze,"\xB0","\\textdegree",!0);q(X,se,ze,"\xA3","\\pounds");q(X,se,ze,"\xA3","\\mathsterling",!0);q(wt,se,ze,"\xA3","\\pounds");q(wt,se,ze,"\xA3","\\textsterling",!0);q(X,Le,ze,"\u2720","\\maltese");q(wt,Le,ze,"\u2720","\\maltese");yY='0123456789/@."';for($C=0;$C0)return pl(a,h,n,r,s.concat(d));if(u){var f,p;if(u==="boldsymbol"){var m=UIe(a,n,r,s,i);f=m.fontName,p=[m.fontClass]}else l?(f=JY[u].fontName,p=[u]):(f=qC(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(ak(a,f,n).metrics)return pl(a,f,n,r,s.concat(p));if(KY.hasOwnProperty(a)&&f.slice(0,10)==="Typewriter"){for(var g=[],y=0;y{if($h(e.classes)!==$h(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(e.classes.length===1){var r=e.classes[0];if(r==="mbin"||r==="mord")return!1}for(var i in e.style)if(e.style.hasOwnProperty(i)&&e.style[i]!==t.style[i])return!1;for(var n in t.style)if(t.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;return!0},"canCombine"),jIe=o(e=>{for(var t=0;tr&&(r=s.height),s.depth>i&&(i=s.depth),s.maxFontSize>n&&(n=s.maxFontSize)}t.height=r,t.depth=i,t.maxFontSize=n},"sizeElementFromChildren"),xs=o(function(t,r,i,n){var a=new Wf(t,r,i,n);return hD(a),a},"makeSpan"),ZY=o((e,t,r,i)=>new Wf(e,t,r,i),"makeSvgSpan"),XIe=o(function(t,r,i){var n=xs([t],[],r);return n.height=Math.max(i||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),n.style.borderBottomWidth=It(n.height),n.maxFontSize=1,n},"makeLineSpan"),KIe=o(function(t,r,i,n){var a=new vv(t,r,i,n);return hD(a),a},"makeAnchor"),QY=o(function(t){var r=new Vf(t);return hD(r),r},"makeFragment"),ZIe=o(function(t,r){return t instanceof Vf?xs([],[t],r):t},"wrapFragment"),QIe=o(function(t){if(t.positionType==="individualShift"){for(var r=t.children,i=[r[0]],n=-r[0].shift-r[0].elem.depth,a=n,s=1;s{var r=xs(["mspace"],[],t),i=Qi(e,t);return r.style.marginRight=It(i),r},"makeGlue"),qC=o(function(t,r,i){var n="";switch(t){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=t}var a;return r==="textbf"&&i==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",n+"-"+a},"retrieveTextFontName"),JY={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},ej={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},t9e=o(function(t,r){var[i,n,a]=ej[t],s=new ac(i),l=new ml([s],{width:It(n),height:It(a),style:"width:"+It(n),viewBox:"0 0 "+1e3*n+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=ZY(["overlay"],[l],r);return u.height=a,u.style.height=It(a),u.style.width=It(n),u},"staticSvg"),Ke={fontMap:JY,makeSymbol:pl,mathsym:qIe,makeSpan:xs,makeSvgSpan:ZY,makeLineSpan:XIe,makeAnchor:KIe,makeFragment:QY,wrapFragment:ZIe,makeVList:JIe,makeOrd:HIe,makeGlue:e9e,staticSvg:t9e,svgData:ej,tryCombineChars:jIe},Zi={number:3,unit:"mu"},Gf={number:4,unit:"mu"},yu={number:5,unit:"mu"},r9e={mord:{mop:Zi,mbin:Gf,mrel:yu,minner:Zi},mop:{mord:Zi,mop:Zi,mrel:yu,minner:Zi},mbin:{mord:Gf,mop:Gf,mopen:Gf,minner:Gf},mrel:{mord:yu,mop:yu,mopen:yu,minner:yu},mopen:{},mclose:{mop:Zi,mbin:Gf,mrel:yu,minner:Zi},mpunct:{mord:Zi,mop:Zi,mrel:yu,mopen:Zi,mclose:Zi,mpunct:Zi,minner:Zi},minner:{mord:Zi,mop:Zi,mbin:Gf,mrel:yu,mopen:Zi,mpunct:Zi,minner:Zi}},i9e={mord:{mop:Zi},mop:{mord:Zi,mop:Zi},mbin:{},mrel:{},mopen:{},mclose:{mop:Zi},mpunct:{},minner:{mop:Zi}},tj={},JC={},ek={};o(Bt,"defineFunction");o(qf,"defineFunctionBuilders");tk=o(function(t){return t.type==="ordgroup"&&t.body.length===1?t.body[0]:t},"normalizeArgument"),gn=o(function(t){return t.type==="ordgroup"?t.body:[t]},"ordargument"),bu=Ke.makeSpan,n9e=["leftmost","mbin","mopen","mrel","mop","mpunct"],a9e=["rightmost","mrel","mclose","mpunct"],s9e={display:ur.DISPLAY,text:ur.TEXT,script:ur.SCRIPT,scriptscript:ur.SCRIPTSCRIPT},o9e={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},Fn=o(function(t,r,i,n){n===void 0&&(n=[null,null]);for(var a=[],s=0;s{var v=y.classes[0],x=g.classes[0];v==="mbin"&&a9e.includes(x)?y.classes[0]="mord":x==="mbin"&&n9e.includes(v)&&(g.classes[0]="mord")},{node:f},p,m),bY(a,(g,y)=>{var v=tD(y),x=tD(g),b=v&&x?g.hasClass("mtight")?i9e[v][x]:r9e[v][x]:null;if(b)return Ke.makeGlue(b,h)},{node:f},p,m),a},"buildExpression"),bY=o(function e(t,r,i,n,a){n&&t.push(n);for(var s=0;sp=>{t.splice(f+1,0,p),s++})(s)}n&&t.pop()},"traverseNonSpaceNodes"),rj=o(function(t){return t instanceof Vf||t instanceof vv||t instanceof Wf&&t.hasClass("enclosing")?t:null},"checkPartialGroup"),l9e=o(function e(t,r){var i=rj(t);if(i){var n=i.children;if(n.length){if(r==="right")return e(n[n.length-1],"right");if(r==="left")return e(n[0],"left")}}return t},"getOutermostNode"),tD=o(function(t,r){return t?(r&&(t=l9e(t,r)),o9e[t.classes[0]]||null):null},"getTypeOfDomTree"),bv=o(function(t,r){var i=["nulldelimiter"].concat(t.baseSizingClasses());return bu(r.concat(i))},"makeNullDelimiter"),Yr=o(function(t,r,i){if(!t)return bu();if(JC[t.type]){var n=JC[t.type](t,r);if(i&&r.size!==i.size){n=bu(r.sizingClasses(i),[n],r);var a=r.sizeMultiplier/i.sizeMultiplier;n.height*=a,n.depth*=a}return n}else throw new Lt("Got group of unknown type: '"+t.type+"'")},"buildGroup");o(UC,"buildHTMLUnbreakable");o(rD,"buildHTML");o(ij,"newDocumentFragment");Ha=class{static{o(this,"MathNode")}constructor(t,r,i){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=t,this.attributes={},this.children=r||[],this.classes=i||[]}setAttribute(t,r){this.attributes[t]=r}getAttribute(t){return this.attributes[t]}toNode(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);this.classes.length>0&&(t.className=$h(this.classes));for(var i=0;i0&&(t+=' class ="'+Zr.escape($h(this.classes))+'"'),t+=">";for(var i=0;i",t}toText(){return this.children.map(t=>t.toText()).join("")}},Mo=class{static{o(this,"TextNode")}constructor(t){this.text=void 0,this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return Zr.escape(this.toText())}toText(){return this.text}},iD=class{static{o(this,"SpaceNode")}constructor(t){this.width=void 0,this.character=void 0,this.width=t,t>=.05555&&t<=.05556?this.character="\u200A":t>=.1666&&t<=.1667?this.character="\u2009":t>=.2222&&t<=.2223?this.character="\u2005":t>=.2777&&t<=.2778?this.character="\u2005\u200A":t>=-.05556&&t<=-.05555?this.character="\u200A\u2063":t>=-.1667&&t<=-.1666?this.character="\u2009\u2063":t>=-.2223&&t<=-.2222?this.character="\u205F\u2063":t>=-.2778&&t<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",It(this.width)),t}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},Dt={MathNode:Ha,TextNode:Mo,SpaceNode:iD,newDocumentFragment:ij},No=o(function(t,r,i){return _i[r][t]&&_i[r][t].replace&&t.charCodeAt(0)!==55349&&!(KY.hasOwnProperty(t)&&i&&(i.fontFamily&&i.fontFamily.slice(4,6)==="tt"||i.font&&i.font.slice(4,6)==="tt"))&&(t=_i[r][t].replace),new Dt.TextNode(t)},"makeText"),dD=o(function(t){return t.length===1?t[0]:new Dt.MathNode("mrow",t)},"makeRow"),fD=o(function(t,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var i=r.font;if(!i||i==="mathnormal")return null;var n=t.mode;if(i==="mathit")return"italic";if(i==="boldsymbol")return t.type==="textord"?"bold":"bold-italic";if(i==="mathbf")return"bold";if(i==="mathbb")return"double-struck";if(i==="mathsfit")return"sans-serif-italic";if(i==="mathfrak")return"fraktur";if(i==="mathscr"||i==="mathcal")return"script";if(i==="mathsf")return"sans-serif";if(i==="mathtt")return"monospace";var a=t.text;if(["\\imath","\\jmath"].includes(a))return null;_i[n][a]&&_i[n][a].replace&&(a=_i[n][a].replace);var s=Ke.fontMap[i].fontName;return uD(a,s,n)?Ke.fontMap[i].variant:null},"getVariant");o(G7,"isNumberPunctuation");Cs=o(function(t,r,i){if(t.length===1){var n=Ti(t[0],r);return i&&n instanceof Ha&&n.type==="mo"&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var a=[],s,l=0;l=1&&(s.type==="mn"||G7(s))){var h=u.children[0];h instanceof Ha&&h.type==="mn"&&(h.children=[...s.children,...h.children],a.pop())}else if(s.type==="mi"&&s.children.length===1){var d=s.children[0];if(d instanceof Mo&&d.text==="\u0338"&&(u.type==="mo"||u.type==="mi"||u.type==="mn")){var f=u.children[0];f instanceof Mo&&f.text.length>0&&(f.text=f.text.slice(0,1)+"\u0338"+f.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),zh=o(function(t,r,i){return dD(Cs(t,r,i))},"buildExpressionRow"),Ti=o(function(t,r){if(!t)return new Dt.MathNode("mrow");if(ek[t.type]){var i=ek[t.type](t,r);return i}else throw new Lt("Got group of unknown type: '"+t.type+"'")},"buildGroup");o(TY,"buildMathML");nj=o(function(t){return new ZC({style:t.displayMode?ur.DISPLAY:ur.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},"optionsFromSettings"),aj=o(function(t,r){if(r.displayMode){var i=["katex-display"];r.leqno&&i.push("leqno"),r.fleqn&&i.push("fleqn"),t=Ke.makeSpan(i,[t])}return t},"displayWrap"),c9e=o(function(t,r,i){var n=nj(i),a;if(i.output==="mathml")return TY(t,r,n,i.displayMode,!0);if(i.output==="html"){var s=rD(t,n);a=Ke.makeSpan(["katex"],[s])}else{var l=TY(t,r,n,i.displayMode,!1),u=rD(t,n);a=Ke.makeSpan(["katex"],[l,u])}return aj(a,i)},"buildTree"),u9e=o(function(t,r,i){var n=nj(i),a=rD(t,n),s=Ke.makeSpan(["katex"],[a]);return aj(s,i)},"buildHTMLTree"),h9e={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},d9e=o(function(t){var r=new Dt.MathNode("mo",[new Dt.TextNode(h9e[t.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),f9e={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},p9e=o(function(t){return t.type==="ordgroup"?t.body.length:1},"groupLength"),m9e=o(function(t,r){function i(){var l=4e5,u=t.label.slice(1);if(["widehat","widecheck","widetilde","utilde"].includes(u)){var h=t,d=p9e(h.base),f,p,m;if(d>5)u==="widehat"||u==="widecheck"?(f=420,l=2364,m=.42,p=u+"4"):(f=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][d];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],f=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],f=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new ac(p),v=new ml([y],{width:"100%",height:It(m),viewBox:"0 0 "+l+" "+f,preserveAspectRatio:"none"});return{span:Ke.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=f9e[u],[T,w,C]=b,k=C/1e3,E=T.length,A,N;if(E===1){var P=b[3];A=["hide-tail"],N=[P]}else if(E===2)A=["halfarrow-left","halfarrow-right"],N=["xMinYMin","xMaxYMin"];else if(E===3)A=["brace-left","brace-center","brace-right"],N=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support
+                    `+E+" children.");for(var I=0;I0&&(n.style.minWidth=It(a)),n},"svgSpan"),g9e=o(function(t,r,i,n,a){var s,l=t.height+t.depth+i+n;if(/fbox|color|angl/.test(r)){if(s=Ke.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new xv({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new xv({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var d=new ml(h,{width:"100%",height:It(l)});s=Ke.makeSvgSpan([],[d],a)}return s.height=l,s.style.height=It(l),s},"encloseSpan"),Tu={encloseSpan:g9e,mathMLnode:d9e,svgSpan:m9e};o(Nr,"assertNodeType");o(pD,"assertSymbolNodeType");o(sk,"checkSymbolNodeType");mD=o((e,t)=>{var r,i,n;e&&e.type==="supsub"?(i=Nr(e.base,"accent"),r=i.base,e.base=r,n=zIe(Yr(e,t)),e.base=i):(i=Nr(e,"accent"),r=i.base);var a=Yr(r,t.havingCrampedStyle()),s=i.isShifty&&Zr.isCharacterBox(r),l=0;if(s){var u=Zr.getBaseElem(r),h=Yr(u,t.havingCrampedStyle());l=gY(h).skew}var d=i.label==="\\c",f=d?a.height+a.depth:Math.min(a.height,t.fontMetrics().xHeight),p;if(i.isStretchy)p=Tu.svgSpan(i,t),p=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+It(2*l)+")",marginLeft:It(2*l)}:void 0}]},t);else{var m,g;i.label==="\\vec"?(m=Ke.staticSvg("vec",t),g=Ke.svgData.vec[1]):(m=Ke.makeOrd({mode:i.mode,text:i.label},t,"textord"),m=gY(m),m.italic=0,g=m.width,d&&(f+=m.depth)),p=Ke.makeSpan(["accent-body"],[m]);var y=i.label==="\\textcircled";y&&(p.classes.push("accent-full"),f=a.height);var v=l;y||(v-=g/2),p.style.left=It(v),i.label==="\\textcircled"&&(p.style.top=".2em"),p=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-f},{type:"elem",elem:p}]},t)}var x=Ke.makeSpan(["mord","accent"],[p],t);return n?(n.children[0]=x,n.height=Math.max(x.height,n.height),n.classes[0]="mord",n):x},"htmlBuilder$a"),sj=o((e,t)=>{var r=e.isStretchy?Tu.mathMLnode(e.label):new Dt.MathNode("mo",[No(e.label,e.mode)]),i=new Dt.MathNode("mover",[Ti(e.base,t),r]);return i.setAttribute("accent","true"),i},"mathmlBuilder$9"),y9e=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));Bt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:o((e,t)=>{var r=tk(t[0]),i=!y9e.test(e.funcName),n=!i||e.funcName==="\\widehat"||e.funcName==="\\widetilde"||e.funcName==="\\widecheck";return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:i,isShifty:n,base:r}},"handler"),htmlBuilder:mD,mathmlBuilder:sj});Bt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((e,t)=>{var r=t[0],i=e.parser.mode;return i==="math"&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),i="text"),{type:"accent",mode:i,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:mD,mathmlBuilder:sj});Bt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((e,t)=>{var{parser:r,funcName:i}=e,n=t[0];return{type:"accentUnder",mode:r.mode,label:i,base:n}},"handler"),htmlBuilder:o((e,t)=>{var r=Yr(e.base,t),i=Tu.svgSpan(e,t),n=e.label==="\\utilde"?.12:0,a=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:i,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","accentunder"],[a],t)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=Tu.mathMLnode(e.label),i=new Dt.MathNode("munder",[Ti(e.base,t),r]);return i.setAttribute("accentunder","true"),i},"mathmlBuilder")});HC=o(e=>{var t=new Dt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t},"paddedNode");Bt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:i,funcName:n}=e;return{type:"xArrow",mode:i.mode,label:n,body:t[0],below:r[0]}},htmlBuilder(e,t){var r=t.style,i=t.havingStyle(r.sup()),n=Ke.wrapFragment(Yr(e.body,i,t),t),a=e.label.slice(0,2)==="\\x"?"x":"cd";n.classes.push(a+"-arrow-pad");var s;e.below&&(i=t.havingStyle(r.sub()),s=Ke.wrapFragment(Yr(e.below,i,t),t),s.classes.push(a+"-arrow-pad"));var l=Tu.svgSpan(e,t),u=-t.fontMetrics().axisHeight+.5*l.height,h=-t.fontMetrics().axisHeight-.5*l.height-.111;(n.depth>.25||e.label==="\\xleftequilibrium")&&(h-=n.depth);var d;if(s){var f=-t.fontMetrics().axisHeight+s.height+.5*l.height+.111;d=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:f}]},t)}else d=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:h},{type:"elem",elem:l,shift:u}]},t);return d.children[0].children[0].children[1].classes.push("svg-align"),Ke.makeSpan(["mrel","x-arrow"],[d],t)},mathmlBuilder(e,t){var r=Tu.mathMLnode(e.label);r.setAttribute("minsize",e.label.charAt(0)==="x"?"1.75em":"3.0em");var i;if(e.body){var n=HC(Ti(e.body,t));if(e.below){var a=HC(Ti(e.below,t));i=new Dt.MathNode("munderover",[r,a,n])}else i=new Dt.MathNode("mover",[r,n])}else if(e.below){var s=HC(Ti(e.below,t));i=new Dt.MathNode("munder",[r,s])}else i=HC(),i=new Dt.MathNode("mover",[r,i]);return i}});v9e=Ke.makeSpan;o(oj,"htmlBuilder$9");o(lj,"mathmlBuilder$8");Bt({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:r,funcName:i}=e,n=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+i.slice(5),body:gn(n),isCharacterBox:Zr.isCharacterBox(n)}},htmlBuilder:oj,mathmlBuilder:lj});ok=o(e=>{var t=e.type==="ordgroup"&&e.body.length?e.body[0]:e;return t.type==="atom"&&(t.family==="bin"||t.family==="rel")?"m"+t.family:"mord"},"binrelClass");Bt({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:ok(t[0]),body:gn(t[1]),isCharacterBox:Zr.isCharacterBox(t[1])}}});Bt({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var{parser:r,funcName:i}=e,n=t[1],a=t[0],s;i!=="\\stackrel"?s=ok(n):s="mrel";var l={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:i!=="\\stackrel",body:gn(n)},u={type:"supsub",mode:a.mode,base:l,sup:i==="\\underset"?null:a,sub:i==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:Zr.isCharacterBox(u)}},htmlBuilder:oj,mathmlBuilder:lj});Bt({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"pmb",mode:r.mode,mclass:ok(t[0]),body:gn(t[0])}},htmlBuilder(e,t){var r=Fn(e.body,t,!0),i=Ke.makeSpan([e.mclass],r,t);return i.style.textShadow="0.02em 0.01em 0.04px",i},mathmlBuilder(e,t){var r=Cs(e.body,t),i=new Dt.MathNode("mstyle",r);return i.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),i}});x9e={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},CY=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),kY=o(e=>e.type==="textord"&&e.text==="@","isStartOfArrow"),b9e=o((e,t)=>(e.type==="mathord"||e.type==="atom")&&e.text===t,"isLabelEnd");o(T9e,"cdArrow");o(C9e,"parseCD");Bt({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:i}=e;return{type:"cdlabel",mode:r.mode,side:i.slice(4),label:t[0]}},htmlBuilder(e,t){var r=t.havingStyle(t.style.sup()),i=Ke.wrapFragment(Yr(e.label,r,t),t);return i.classes.push("cd-label-"+e.side),i.style.bottom=It(.8-i.depth),i.height=0,i.depth=0,i},mathmlBuilder(e,t){var r=new Dt.MathNode("mrow",[Ti(e.label,t)]);return r=new Dt.MathNode("mpadded",[r]),r.setAttribute("width","0"),e.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new Dt.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});Bt({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){var r=Ke.wrapFragment(Yr(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(e,t){return new Dt.MathNode("mrow",[Ti(e.fragment,t)])}});Bt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var{parser:r}=e,i=Nr(t[0],"ordgroup"),n=i.body,a="",s=0;s=1114111)throw new Lt("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});cj=o((e,t)=>{var r=Fn(e.body,t.withColor(e.color),!1);return Ke.makeFragment(r)},"htmlBuilder$8"),uj=o((e,t)=>{var r=Cs(e.body,t.withColor(e.color)),i=new Dt.MathNode("mstyle",r);return i.setAttribute("mathcolor",e.color),i},"mathmlBuilder$7");Bt({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:r}=e,i=Nr(t[0],"color-token").color,n=t[1];return{type:"color",mode:r.mode,color:i,body:gn(n)}},htmlBuilder:cj,mathmlBuilder:uj});Bt({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:r,breakOnTokenText:i}=e,n=Nr(t[0],"color-token").color;r.gullet.macros.set("\\current@color",n);var a=r.parseExpression(!0,i);return{type:"color",mode:r.mode,color:n,body:a}},htmlBuilder:cj,mathmlBuilder:uj});Bt({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,r){var{parser:i}=e,n=i.gullet.future().text==="["?i.parseSizeGroup(!0):null,a=!i.settings.displayMode||!i.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:i.mode,newLine:a,size:n&&Nr(n,"size").value}},htmlBuilder(e,t){var r=Ke.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=It(Qi(e.size,t)))),r},mathmlBuilder(e,t){var r=new Dt.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",It(Qi(e.size,t)))),r}});nD={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},hj=o(e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new Lt("Expected a control sequence",e);return t},"checkControlSequence"),k9e=o(e=>{var t=e.gullet.popToken();return t.text==="="&&(t=e.gullet.popToken(),t.text===" "&&(t=e.gullet.popToken())),t},"getRHS"),dj=o((e,t,r,i)=>{var n=e.gullet.macros.get(r.text);n==null&&(r.noexpand=!0,n={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,n,i)},"letCommand");Bt({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:r}=e;t.consumeSpaces();var i=t.fetch();if(nD[i.text])return(r==="\\global"||r==="\\\\globallong")&&(i.text=nD[i.text]),Nr(t.parseFunction(),"internal");throw new Lt("Invalid token after macro prefix",i)}});Bt({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,i=t.gullet.popToken(),n=i.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new Lt("Expected a control sequence",i);for(var a=0,s,l=[[]];t.gullet.future().text!=="{";)if(i=t.gullet.popToken(),i.text==="#"){if(t.gullet.future().text==="{"){s=t.gullet.future(),l[a].push("{");break}if(i=t.gullet.popToken(),!/^[1-9]$/.test(i.text))throw new Lt('Invalid argument number "'+i.text+'"');if(parseInt(i.text)!==a+1)throw new Lt('Argument number "'+i.text+'" out of order');a++,l.push([])}else{if(i.text==="EOF")throw new Lt("Expected a macro definition");l[a].push(i.text)}var{tokens:u}=t.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=t.gullet.expandTokens(u),u.reverse()),t.gullet.macros.set(n,{tokens:u,numArgs:a,delimiters:l},r===nD[r]),{type:"internal",mode:t.mode}}});Bt({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,i=hj(t.gullet.popToken());t.gullet.consumeSpaces();var n=k9e(t);return dj(t,i,n,r==="\\\\globallet"),{type:"internal",mode:t.mode}}});Bt({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,i=hj(t.gullet.popToken()),n=t.gullet.popToken(),a=t.gullet.popToken();return dj(t,i,a,r==="\\\\globalfuture"),t.gullet.pushToken(a),t.gullet.pushToken(n),{type:"internal",mode:t.mode}}});fv=o(function(t,r,i){var n=_i.math[t]&&_i.math[t].replace,a=uD(n||t,r,i);if(!a)throw new Error("Unsupported symbol "+t+" and font size "+r+".");return a},"getMetrics"),gD=o(function(t,r,i,n){var a=i.havingBaseStyle(r),s=Ke.makeSpan(n.concat(a.sizingClasses(i)),[t],i),l=a.sizeMultiplier/i.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),fj=o(function(t,r,i){var n=r.havingBaseStyle(i),a=(1-r.sizeMultiplier/n.sizeMultiplier)*r.fontMetrics().axisHeight;t.classes.push("delimcenter"),t.style.top=It(a),t.height-=a,t.depth+=a},"centerSpan"),w9e=o(function(t,r,i,n,a,s){var l=Ke.makeSymbol(t,"Main-Regular",a,n),u=gD(l,r,n,s);return i&&fj(u,n,r),u},"makeSmallDelim"),S9e=o(function(t,r,i,n){return Ke.makeSymbol(t,"Size"+r+"-Regular",i,n)},"mathrmSize"),pj=o(function(t,r,i,n,a,s){var l=S9e(t,r,a,n),u=gD(Ke.makeSpan(["delimsizing","size"+r],[l],n),ur.TEXT,n,s);return i&&fj(u,n,ur.TEXT),u},"makeLargeDelim"),V7=o(function(t,r,i){var n;r==="Size1-Regular"?n="delim-size1":n="delim-size4";var a=Ke.makeSpan(["delimsizinginner",n],[Ke.makeSpan([],[Ke.makeSymbol(t,r,i)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),W7=o(function(t,r,i){var n=nc["Size4-Regular"][t.charCodeAt(0)]?nc["Size4-Regular"][t.charCodeAt(0)][4]:nc["Size1-Regular"][t.charCodeAt(0)][4],a=new ac("inner",NIe(t,Math.round(1e3*r))),s=new ml([a],{width:It(n),height:It(r),style:"width:"+It(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=Ke.makeSvgSpan([],[s],i);return l.height=r,l.style.height=It(r),l.style.width=It(n),{type:"elem",elem:l}},"makeInner"),aD=.008,YC={type:"kern",size:-1*aD},E9e=["|","\\lvert","\\rvert","\\vert"],A9e=["\\|","\\lVert","\\rVert","\\Vert"],mj=o(function(t,r,i,n,a,s){var l,u,h,d,f="",p=0;l=h=d=t,u=null;var m="Size1-Regular";t==="\\uparrow"?h=d="\u23D0":t==="\\Uparrow"?h=d="\u2016":t==="\\downarrow"?l=h="\u23D0":t==="\\Downarrow"?l=h="\u2016":t==="\\updownarrow"?(l="\\uparrow",h="\u23D0",d="\\downarrow"):t==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",d="\\Downarrow"):E9e.includes(t)?(h="\u2223",f="vert",p=333):A9e.includes(t)?(h="\u2225",f="doublevert",p=556):t==="["||t==="\\lbrack"?(l="\u23A1",h="\u23A2",d="\u23A3",m="Size4-Regular",f="lbrack",p=667):t==="]"||t==="\\rbrack"?(l="\u23A4",h="\u23A5",d="\u23A6",m="Size4-Regular",f="rbrack",p=667):t==="\\lfloor"||t==="\u230A"?(h=l="\u23A2",d="\u23A3",m="Size4-Regular",f="lfloor",p=667):t==="\\lceil"||t==="\u2308"?(l="\u23A1",h=d="\u23A2",m="Size4-Regular",f="lceil",p=667):t==="\\rfloor"||t==="\u230B"?(h=l="\u23A5",d="\u23A6",m="Size4-Regular",f="rfloor",p=667):t==="\\rceil"||t==="\u2309"?(l="\u23A4",h=d="\u23A5",m="Size4-Regular",f="rceil",p=667):t==="("||t==="\\lparen"?(l="\u239B",h="\u239C",d="\u239D",m="Size4-Regular",f="lparen",p=875):t===")"||t==="\\rparen"?(l="\u239E",h="\u239F",d="\u23A0",m="Size4-Regular",f="rparen",p=875):t==="\\{"||t==="\\lbrace"?(l="\u23A7",u="\u23A8",d="\u23A9",h="\u23AA",m="Size4-Regular"):t==="\\}"||t==="\\rbrace"?(l="\u23AB",u="\u23AC",d="\u23AD",h="\u23AA",m="Size4-Regular"):t==="\\lgroup"||t==="\u27EE"?(l="\u23A7",d="\u23A9",h="\u23AA",m="Size4-Regular"):t==="\\rgroup"||t==="\u27EF"?(l="\u23AB",d="\u23AD",h="\u23AA",m="Size4-Regular"):t==="\\lmoustache"||t==="\u23B0"?(l="\u23A7",d="\u23AD",h="\u23AA",m="Size4-Regular"):(t==="\\rmoustache"||t==="\u23B1")&&(l="\u23AB",d="\u23A9",h="\u23AA",m="Size4-Regular");var g=fv(l,m,a),y=g.height+g.depth,v=fv(h,m,a),x=v.height+v.depth,b=fv(d,m,a),T=b.height+b.depth,w=0,C=1;if(u!==null){var k=fv(u,m,a);w=k.height+k.depth,C=2}var E=y+T+w,A=Math.max(0,Math.ceil((r-E)/(C*x))),N=E+A*C*x,P=n.fontMetrics().axisHeight;i&&(P*=n.sizeMultiplier);var I=N/2-P,D=[];if(f.length>0){var _=N-y-T,R=Math.round(N*1e3),M=IIe(f,Math.round(_*1e3)),L=new ac(f,M),B=(p/1e3).toFixed(3)+"em",O=(R/1e3).toFixed(3)+"em",$=new ml([L],{width:B,height:O,viewBox:"0 0 "+p+" "+R}),G=Ke.makeSvgSpan([],[$],n);G.height=R/1e3,G.style.width=B,G.style.height=O,D.push({type:"elem",elem:G})}else{if(D.push(V7(d,m,a)),D.push(YC),u===null){var F=N-y-T+2*aD;D.push(W7(h,F,n))}else{var V=(N-y-T-w)/2+2*aD;D.push(W7(h,V,n)),D.push(YC),D.push(V7(u,m,a)),D.push(YC),D.push(W7(h,V,n))}D.push(YC),D.push(V7(l,m,a))}var H=n.havingBaseStyle(ur.TEXT),j=Ke.makeVList({positionType:"bottom",positionData:I,children:D},H);return gD(Ke.makeSpan(["delimsizing","mult"],[j],H),ur.TEXT,n,s)},"makeStackedDelim"),q7=80,U7=.08,H7=o(function(t,r,i,n,a){var s=MIe(t,n,i),l=new ac(t,s),u=new ml([l],{width:"400em",height:It(r),viewBox:"0 0 400000 "+i,preserveAspectRatio:"xMinYMin slice"});return Ke.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),_9e=o(function(t,r){var i=r.havingBaseSizing(),n=xj("\\surd",t*i.sizeMultiplier,vj,i),a=i.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,d=0,f;return n.type==="small"?(d=1e3+1e3*s+q7,t<1?a=1:t<1.4&&(a=.7),u=(1+s+U7)/a,h=(1+s)/a,l=H7("sqrtMain",u,d,s,r),l.style.minWidth="0.853em",f=.833/a):n.type==="large"?(d=(1e3+q7)*mv[n.size],h=(mv[n.size]+s)/a,u=(mv[n.size]+s+U7)/a,l=H7("sqrtSize"+n.size,u,d,s,r),l.style.minWidth="1.02em",f=1/a):(u=t+s+U7,h=t+s,d=Math.floor(1e3*t+s)+q7,l=H7("sqrtTall",u,d,s,r),l.style.minWidth="0.742em",f=1.056),l.height=h,l.style.height=It(u),{span:l,advanceWidth:f,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),gj=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],D9e=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],yj=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],mv=[0,1.2,1.8,2.4,3],R9e=o(function(t,r,i,n,a){if(t==="<"||t==="\\lt"||t==="\u27E8"?t="\\langle":(t===">"||t==="\\gt"||t==="\u27E9")&&(t="\\rangle"),gj.includes(t)||yj.includes(t))return pj(t,r,!1,i,n,a);if(D9e.includes(t))return mj(t,mv[r],!1,i,n,a);throw new Lt("Illegal delimiter: '"+t+"'")},"makeSizedDelim"),L9e=[{type:"small",style:ur.SCRIPTSCRIPT},{type:"small",style:ur.SCRIPT},{type:"small",style:ur.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],M9e=[{type:"small",style:ur.SCRIPTSCRIPT},{type:"small",style:ur.SCRIPT},{type:"small",style:ur.TEXT},{type:"stack"}],vj=[{type:"small",style:ur.SCRIPTSCRIPT},{type:"small",style:ur.SCRIPT},{type:"small",style:ur.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],N9e=o(function(t){if(t.type==="small")return"Main-Regular";if(t.type==="large")return"Size"+t.size+"-Regular";if(t.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},"delimTypeToFont"),xj=o(function(t,r,i,n){for(var a=Math.min(2,3-n.style.size),s=a;sr)return i[s]}return i[i.length-1]},"traverseSequence"),bj=o(function(t,r,i,n,a,s){t==="<"||t==="\\lt"||t==="\u27E8"?t="\\langle":(t===">"||t==="\\gt"||t==="\u27E9")&&(t="\\rangle");var l;yj.includes(t)?l=L9e:gj.includes(t)?l=vj:l=M9e;var u=xj(t,r,l,n);return u.type==="small"?w9e(t,u.style,i,n,a,s):u.type==="large"?pj(t,u.size,i,n,a,s):mj(t,r,i,n,a,s)},"makeCustomSizedDelim"),I9e=o(function(t,r,i,n,a,s){var l=n.fontMetrics().axisHeight*n.sizeMultiplier,u=901,h=5/n.fontMetrics().ptPerEm,d=Math.max(r-l,i+l),f=Math.max(d/500*u,2*d-h);return bj(t,f,!0,n,a,s)},"makeLeftRightDelim"),xu={sqrtImage:_9e,sizedDelim:R9e,sizeToMaxHeight:mv,customSizedDelim:bj,leftRightDelim:I9e},wY={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},O9e=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(lk,"checkDelimiter");Bt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:o((e,t)=>{var r=lk(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:wY[e.funcName].size,mclass:wY[e.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((e,t)=>e.delim==="."?Ke.makeSpan([e.mclass]):xu.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),"htmlBuilder"),mathmlBuilder:o(e=>{var t=[];e.delim!=="."&&t.push(No(e.delim,e.mode));var r=new Dt.MathNode("mo",t);e.mclass==="mopen"||e.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var i=It(xu.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",i),r.setAttribute("maxsize",i),r},"mathmlBuilder")});o(SY,"assertParsed");Bt({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((e,t)=>{var r=e.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new Lt("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:lk(t[0],e).text,color:r}},"handler")});Bt({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((e,t)=>{var r=lk(t[0],e),i=e.parser;++i.leftrightDepth;var n=i.parseExpression(!1);--i.leftrightDepth,i.expect("\\right",!1);var a=Nr(i.parseFunction(),"leftright-right");return{type:"leftright",mode:i.mode,body:n,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((e,t)=>{SY(e);for(var r=Fn(e.body,t,!0,["mopen","mclose"]),i=0,n=0,a=!1,s=0;s{SY(e);var r=Cs(e.body,t);if(e.left!=="."){var i=new Dt.MathNode("mo",[No(e.left,e.mode)]);i.setAttribute("fence","true"),r.unshift(i)}if(e.right!=="."){var n=new Dt.MathNode("mo",[No(e.right,e.mode)]);n.setAttribute("fence","true"),e.rightColor&&n.setAttribute("mathcolor",e.rightColor),r.push(n)}return dD(r)},"mathmlBuilder")});Bt({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((e,t)=>{var r=lk(t[0],e);if(!e.parser.leftrightDepth)throw new Lt("\\middle without preceding \\left",r);return{type:"middle",mode:e.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((e,t)=>{var r;if(e.delim===".")r=bv(t,[]);else{r=xu.sizedDelim(e.delim,1,t,e.mode,[]);var i={delim:e.delim,options:t};r.isMiddle=i}return r},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=e.delim==="\\vert"||e.delim==="|"?No("|","text"):No(e.delim,e.mode),i=new Dt.MathNode("mo",[r]);return i.setAttribute("fence","true"),i.setAttribute("lspace","0.05em"),i.setAttribute("rspace","0.05em"),i},"mathmlBuilder")});yD=o((e,t)=>{var r=Ke.wrapFragment(Yr(e.body,t),t),i=e.label.slice(1),n=t.sizeMultiplier,a,s=0,l=Zr.isCharacterBox(e.body);if(i==="sout")a=Ke.makeSpan(["stretchy","sout"]),a.height=t.fontMetrics().defaultRuleThickness/n,s=-.5*t.fontMetrics().xHeight;else if(i==="phase"){var u=Qi({number:.6,unit:"pt"},t),h=Qi({number:.35,unit:"ex"},t),d=t.havingBaseSizing();n=n/d.sizeMultiplier;var f=r.height+r.depth+u+h;r.style.paddingLeft=It(f/2+u);var p=Math.floor(1e3*f*n),m=RIe(p),g=new ml([new ac("phase",m)],{width:"400em",height:It(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=Ke.makeSvgSpan(["hide-tail"],[g],t),a.style.height=It(f),s=r.depth+u+h}else{/cancel/.test(i)?l||r.classes.push("cancel-pad"):i==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(i)?(x=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),y=t.fontMetrics().fboxsep+(i==="colorbox"?0:x),v=y):i==="angl"?(x=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=Tu.encloseSpan(r,i,y,v,t),/fbox|boxed|fcolorbox/.test(i)?(a.style.borderStyle="solid",a.style.borderWidth=It(x)):i==="angl"&&x!==.049&&(a.style.borderTopWidth=It(x),a.style.borderRightWidth=It(x)),s=r.depth+v,e.backgroundColor&&(a.style.backgroundColor=e.backgroundColor,e.borderColor&&(a.style.borderColor=e.borderColor))}var b;if(e.backgroundColor)b=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},t);else{var T=/cancel|phase/.test(i)?["svg-align"]:[];b=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:T}]},t)}return/cancel/.test(i)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(i)&&!l?Ke.makeSpan(["mord","cancel-lap"],[b],t):Ke.makeSpan(["mord"],[b],t)},"htmlBuilder$7"),vD=o((e,t)=>{var r=0,i=new Dt.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Ti(e.body,t)]);switch(e.label){case"\\cancel":i.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":i.setAttribute("notation","downdiagonalstrike");break;case"\\phase":i.setAttribute("notation","phasorangle");break;case"\\sout":i.setAttribute("notation","horizontalstrike");break;case"\\fbox":i.setAttribute("notation","box");break;case"\\angl":i.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,i.setAttribute("width","+"+2*r+"pt"),i.setAttribute("height","+"+2*r+"pt"),i.setAttribute("lspace",r+"pt"),i.setAttribute("voffset",r+"pt"),e.label==="\\fcolorbox"){var n=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);i.setAttribute("style","border: "+n+"em solid "+String(e.borderColor))}break;case"\\xcancel":i.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return e.backgroundColor&&i.setAttribute("mathbackground",e.backgroundColor),i},"mathmlBuilder$6");Bt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){var{parser:i,funcName:n}=e,a=Nr(t[0],"color-token").color,s=t[1];return{type:"enclose",mode:i.mode,label:n,backgroundColor:a,body:s}},htmlBuilder:yD,mathmlBuilder:vD});Bt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,r){var{parser:i,funcName:n}=e,a=Nr(t[0],"color-token").color,s=Nr(t[1],"color-token").color,l=t[2];return{type:"enclose",mode:i.mode,label:n,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:yD,mathmlBuilder:vD});Bt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}});Bt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:i}=e,n=t[0];return{type:"enclose",mode:r.mode,label:i,body:n}},htmlBuilder:yD,mathmlBuilder:vD});Bt({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});Tj={};o(sc,"defineEnvironment");Cj={};o(he,"defineMacro");o(EY,"getHLines");ck=o(e=>{var t=e.parser.settings;if(!t.displayMode)throw new Lt("{"+e.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o(xD,"getAutoTag");o(Gh,"parseArray");o(bD,"dCellStyle");oc=o(function(t,r){var i,n,a=t.body.length,s=t.hLinesBeforeRow,l=0,u=new Array(a),h=[],d=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),f=1/r.fontMetrics().ptPerEm,p=5*f;if(t.colSeparationType&&t.colSeparationType==="small"){var m=r.havingStyle(ur.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=t.colSeparationType==="CD"?Qi({number:3,unit:"ex"},r):12*f,y=3*f,v=t.arraystretch*g,x=.7*v,b=.3*v,T=0;function w(we){for(var Me=0;Me0&&(T+=.25),h.push({pos:T,isDashed:we[Me]})}for(o(w,"setHLinePos"),w(s[0]),i=0;i0&&(I+=b,Ewe))for(i=0;i=l)){var Y=void 0;(n>0||t.hskipBeforeAndAfter)&&(Y=Zr.deflt(V.pregap,p),Y!==0&&(M=Ke.makeSpan(["arraycolsep"],[]),M.style.width=It(Y),R.push(M)));var ae=[];for(i=0;i0){for(var ee=Ke.makeLineSpan("hline",r,d),Te=Ke.makeLineSpan("hdashline",r,d),ue=[{type:"elem",elem:u,shift:0}];h.length>0;){var De=h.pop(),Ie=De.pos-D;De.isDashed?ue.push({type:"elem",elem:Te,shift:Ie}):ue.push({type:"elem",elem:ee,shift:Ie})}u=Ke.makeVList({positionType:"individualShift",children:ue},r)}if(B.length===0)return Ke.makeSpan(["mord"],[u],r);var Ee=Ke.makeVList({positionType:"individualShift",children:B},r);return Ee=Ke.makeSpan(["tag"],[Ee],r),Ke.makeFragment([u,Ee])},"htmlBuilder"),P9e={c:"center ",l:"left ",r:"right "},lc=o(function(t,r){for(var i=[],n=new Dt.MathNode("mtd",[],["mtr-glue"]),a=new Dt.MathNode("mtd",[],["mml-eqn-num"]),s=0;s0){var g=t.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var T=x;T0?"left ":"",p+=A[A.length-1].length>0?"right ":"";for(var N=1;N-1?"alignat":"align",a=t.envName==="split",s=Gh(t.parser,{cols:i,addJot:!0,autoTag:a?void 0:xD(t.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:a?2:void 0,leqno:t.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:t.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var d="",f=0;f0&&m&&(v=1),i[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");sc({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var r=sk(t[0]),i=r?[t[0]]:Nr(t[0],"ordgroup").body,n=i.map(function(s){var l=pD(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new Lt("Unknown column alignment: "+u,s)}),a={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return Gh(e.parser,a,bD(e.envName))},htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",i={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(e.envName.charAt(e.envName.length-1)==="*"){var n=e.parser;if(n.consumeSpaces(),n.fetch().text==="["){if(n.consume(),n.consumeSpaces(),r=n.fetch().text,"lcr".indexOf(r)===-1)throw new Lt("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),i.cols=[{type:"align",align:r}]}}var a=Gh(e.parser,i,bD(e.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[a],left:t[0],right:t[1],rightColor:void 0}:a},htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t={arraystretch:.5},r=Gh(e.parser,t,"script");return r.colSeparationType="small",r},htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var r=sk(t[0]),i=r?[t[0]]:Nr(t[0],"ordgroup").body,n=i.map(function(s){var l=pD(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new Lt("Unknown column alignment: "+u,s)});if(n.length>1)throw new Lt("{subarray} can contain only one column");var a={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=Gh(e.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new Lt("{subarray} can contain only one column");return a},htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=Gh(e.parser,t,bD(e.envName));return{type:"leftright",mode:e.mode,body:[r],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:kj,htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){["gather","gather*"].includes(e.envName)&&ck(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:xD(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Gh(e.parser,t,"display")},htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:kj,htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){ck(e);var t={autoTag:xD(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Gh(e.parser,t,"display")},htmlBuilder:oc,mathmlBuilder:lc});sc({type:"array",names:["CD"],props:{numArgs:0},handler(e){return ck(e),C9e(e.parser)},htmlBuilder:oc,mathmlBuilder:lc});he("\\nonumber","\\gdef\\@eqnsw{0}");he("\\notag","\\nonumber");Bt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new Lt(e.funcName+" valid only within array environment")}});AY=Tj;Bt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:r,funcName:i}=e,n=t[0];if(n.type!=="ordgroup")throw new Lt("Invalid environment name",n);for(var a="",s=0;s{var r=e.font,i=t.withFont(r);return Yr(e.body,i)},"htmlBuilder$5"),Sj=o((e,t)=>{var r=e.font,i=t.withFont(r);return Ti(e.body,i)},"mathmlBuilder$4"),_Y={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Bt({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((e,t)=>{var{parser:r,funcName:i}=e,n=tk(t[0]),a=i;return a in _Y&&(a=_Y[a]),{type:"font",mode:r.mode,font:a.slice(1),body:n}},"handler"),htmlBuilder:wj,mathmlBuilder:Sj});Bt({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((e,t)=>{var{parser:r}=e,i=t[0],n=Zr.isCharacterBox(i);return{type:"mclass",mode:r.mode,mclass:ok(i),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:i}],isCharacterBox:n}},"handler")});Bt({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((e,t)=>{var{parser:r,funcName:i,breakOnTokenText:n}=e,{mode:a}=r,s=r.parseExpression(!0,n),l="math"+i.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:wj,mathmlBuilder:Sj});Ej=o((e,t)=>{var r=t;return e==="display"?r=r.id>=ur.SCRIPT.id?r.text():ur.DISPLAY:e==="text"&&r.size===ur.DISPLAY.size?r=ur.TEXT:e==="script"?r=ur.SCRIPT:e==="scriptscript"&&(r=ur.SCRIPTSCRIPT),r},"adjustStyle"),TD=o((e,t)=>{var r=Ej(e.size,t.style),i=r.fracNum(),n=r.fracDen(),a;a=t.havingStyle(i);var s=Yr(e.numer,a,t);if(e.continued){var l=8.5/t.fontMetrics().ptPerEm,u=3.5/t.fontMetrics().ptPerEm;s.height=s.height0?g=3*p:g=7*p,y=t.fontMetrics().denom1):(f>0?(m=t.fontMetrics().num2,g=p):(m=t.fontMetrics().num3,g=3*p),y=t.fontMetrics().denom2);var v;if(d){var b=t.fontMetrics().axisHeight;m-s.depth-(b+.5*f){var r=new Dt.MathNode("mfrac",[Ti(e.numer,t),Ti(e.denom,t)]);if(!e.hasBarLine)r.setAttribute("linethickness","0px");else if(e.barSize){var i=Qi(e.barSize,t);r.setAttribute("linethickness",It(i))}var n=Ej(e.size,t.style);if(n.size!==t.style.size){r=new Dt.MathNode("mstyle",[r]);var a=n.size===ur.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(e.leftDelim!=null||e.rightDelim!=null){var s=[];if(e.leftDelim!=null){var l=new Dt.MathNode("mo",[new Dt.TextNode(e.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),e.rightDelim!=null){var u=new Dt.MathNode("mo",[new Dt.TextNode(e.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return dD(s)}return r},"mathmlBuilder$3");Bt({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((e,t)=>{var{parser:r,funcName:i}=e,n=t[0],a=t[1],s,l=null,u=null,h="auto";switch(i){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(i){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:n,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:TD,mathmlBuilder:CD});Bt({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((e,t)=>{var{parser:r,funcName:i}=e,n=t[0],a=t[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:n,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});Bt({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var{parser:t,funcName:r,token:i}=e,n;switch(r){case"\\over":n="\\frac";break;case"\\choose":n="\\binom";break;case"\\atop":n="\\\\atopfrac";break;case"\\brace":n="\\\\bracefrac";break;case"\\brack":n="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:t.mode,replaceWith:n,token:i}}});DY=["display","text","script","scriptscript"],RY=o(function(t){var r=null;return t.length>0&&(r=t,r=r==="."?null:r),r},"delimFromValue");Bt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var{parser:r}=e,i=t[4],n=t[5],a=tk(t[0]),s=a.type==="atom"&&a.family==="open"?RY(a.text):null,l=tk(t[1]),u=l.type==="atom"&&l.family==="close"?RY(l.text):null,h=Nr(t[2],"size"),d,f=null;h.isBlank?d=!0:(f=h.value,d=f.number>0);var p="auto",m=t[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=Nr(m.body[0],"textord");p=DY[Number(g.text)]}}else m=Nr(m,"textord"),p=DY[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:i,denom:n,continued:!1,hasBarLine:d,barSize:f,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:TD,mathmlBuilder:CD});Bt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:r,funcName:i,token:n}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Nr(t[0],"size").value,token:n}}});Bt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((e,t)=>{var{parser:r,funcName:i}=e,n=t[0],a=mIe(Nr(t[1],"infix").size),s=t[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:TD,mathmlBuilder:CD});Aj=o((e,t)=>{var r=t.style,i,n;e.type==="supsub"?(i=e.sup?Yr(e.sup,t.havingStyle(r.sup()),t):Yr(e.sub,t.havingStyle(r.sub()),t),n=Nr(e.base,"horizBrace")):n=Nr(e,"horizBrace");var a=Yr(n.base,t.havingBaseStyle(ur.DISPLAY)),s=Tu.svgSpan(n,t),l;if(n.isOver?(l=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},t),l.children[0].children[0].children[1].classes.push("svg-align")):(l=Ke.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},t),l.children[0].children[0].children[0].classes.push("svg-align")),i){var u=Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[l],t);n.isOver?l=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:i}]},t):l=Ke.makeVList({positionType:"bottom",positionData:u.depth+.2+i.height+i.depth,children:[{type:"elem",elem:i},{type:"kern",size:.2},{type:"elem",elem:u}]},t)}return Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[l],t)},"htmlBuilder$3"),B9e=o((e,t)=>{var r=Tu.mathMLnode(e.label);return new Dt.MathNode(e.isOver?"mover":"munder",[Ti(e.base,t),r])},"mathmlBuilder$2");Bt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:i}=e;return{type:"horizBrace",mode:r.mode,label:i,isOver:/^\\over/.test(i),base:t[0]}},htmlBuilder:Aj,mathmlBuilder:B9e});Bt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,i=t[1],n=Nr(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:r.mode,href:n,body:gn(i)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((e,t)=>{var r=Fn(e.body,t,!1);return Ke.makeAnchor(e.href,[],r,t)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=zh(e.body,t);return r instanceof Ha||(r=new Ha("mrow",[r])),r.setAttribute("href",e.href),r},"mathmlBuilder")});Bt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,i=Nr(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:i}))return r.formatUnsupportedCmd("\\url");for(var n=[],a=0;a{var{parser:r,funcName:i,token:n}=e,a=Nr(t[0],"raw").string,s=t[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(i){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),d=0;d{var r=Fn(e.body,t,!1),i=["enclosing"];e.attributes.class&&i.push(...e.attributes.class.trim().split(/\s+/));var n=Ke.makeSpan(i,r,t);for(var a in e.attributes)a!=="class"&&e.attributes.hasOwnProperty(a)&&n.setAttribute(a,e.attributes[a]);return n},"htmlBuilder"),mathmlBuilder:o((e,t)=>zh(e.body,t),"mathmlBuilder")});Bt({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:gn(t[0]),mathml:gn(t[1])}},"handler"),htmlBuilder:o((e,t)=>{var r=Fn(e.html,t,!1);return Ke.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((e,t)=>zh(e.mathml,t),"mathmlBuilder")});Y7=o(function(t){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t))return{number:+t,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t);if(!r)throw new Lt("Invalid size: '"+t+"' in \\includegraphics");var i={number:+(r[1]+r[2]),unit:r[3]};if(!HY(i))throw new Lt("Invalid unit: '"+i.unit+"' in \\includegraphics.");return i},"sizeData");Bt({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((e,t,r)=>{var{parser:i}=e,n={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=Nr(r[0],"raw").string,h=u.split(","),d=0;d{var r=Qi(e.height,t),i=0;e.totalheight.number>0&&(i=Qi(e.totalheight,t)-r);var n=0;e.width.number>0&&(n=Qi(e.width,t));var a={height:It(r+i)};n>0&&(a.width=It(n)),i>0&&(a.verticalAlign=It(-i));var s=new J7(e.src,e.alt,a);return s.height=r,s.depth=i,s},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=new Dt.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var i=Qi(e.height,t),n=0;if(e.totalheight.number>0&&(n=Qi(e.totalheight,t)-i,r.setAttribute("valign",It(-n))),r.setAttribute("height",It(i+n)),e.width.number>0){var a=Qi(e.width,t);r.setAttribute("width",It(a))}return r.setAttribute("src",e.src),r},"mathmlBuilder")});Bt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:i}=e,n=Nr(t[0],"size");if(r.settings.strict){var a=i[1]==="m",s=n.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+i+" supports only mu units, "+("not "+n.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+i+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+i+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:n.value}},htmlBuilder(e,t){return Ke.makeGlue(e.dimension,t)},mathmlBuilder(e,t){var r=Qi(e.dimension,t);return new Dt.SpaceNode(r)}});Bt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((e,t)=>{var{parser:r,funcName:i}=e,n=t[0];return{type:"lap",mode:r.mode,alignment:i.slice(5),body:n}},"handler"),htmlBuilder:o((e,t)=>{var r;e.alignment==="clap"?(r=Ke.makeSpan([],[Yr(e.body,t)]),r=Ke.makeSpan(["inner"],[r],t)):r=Ke.makeSpan(["inner"],[Yr(e.body,t)]);var i=Ke.makeSpan(["fix"],[]),n=Ke.makeSpan([e.alignment],[r,i],t),a=Ke.makeSpan(["strut"]);return a.style.height=It(n.height+n.depth),n.depth&&(a.style.verticalAlign=It(-n.depth)),n.children.unshift(a),n=Ke.makeSpan(["thinbox"],[n],t),Ke.makeSpan(["mord","vbox"],[n],t)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=new Dt.MathNode("mpadded",[Ti(e.body,t)]);if(e.alignment!=="rlap"){var i=e.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",i+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});Bt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:r,parser:i}=e,n=i.mode;i.switchMode("math");var a=r==="\\("?"\\)":"$",s=i.parseExpression(!1,a);return i.expect(a),i.switchMode(n),{type:"styling",mode:i.mode,style:"text",body:s}}});Bt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new Lt("Mismatched "+e.funcName)}});LY=o((e,t)=>{switch(t.style.size){case ur.DISPLAY.size:return e.display;case ur.TEXT.size:return e.text;case ur.SCRIPT.size:return e.script;case ur.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}},"chooseMathStyle");Bt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((e,t)=>{var{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:gn(t[0]),text:gn(t[1]),script:gn(t[2]),scriptscript:gn(t[3])}},"handler"),htmlBuilder:o((e,t)=>{var r=LY(e,t),i=Fn(r,t,!1);return Ke.makeFragment(i)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=LY(e,t);return zh(r,t)},"mathmlBuilder")});_j=o((e,t,r,i,n,a,s)=>{e=Ke.makeSpan([],[e]);var l=r&&Zr.isCharacterBox(r),u,h;if(t){var d=Yr(t,i.havingStyle(n.sup()),i);h={elem:d,kern:Math.max(i.fontMetrics().bigOpSpacing1,i.fontMetrics().bigOpSpacing3-d.depth)}}if(r){var f=Yr(r,i.havingStyle(n.sub()),i);u={elem:f,kern:Math.max(i.fontMetrics().bigOpSpacing2,i.fontMetrics().bigOpSpacing4-f.height)}}var p;if(h&&u){var m=i.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+e.depth+s;p=Ke.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:i.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:It(-a)},{type:"kern",size:u.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:It(a)},{type:"kern",size:i.fontMetrics().bigOpSpacing5}]},i)}else if(u){var g=e.height-s;p=Ke.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:i.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:It(-a)},{type:"kern",size:u.kern},{type:"elem",elem:e}]},i)}else if(h){var y=e.depth+s;p=Ke.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:It(a)},{type:"kern",size:i.fontMetrics().bigOpSpacing5}]},i)}else return e;var v=[p];if(u&&a!==0&&!l){var x=Ke.makeSpan(["mspace"],[],i);x.style.marginRight=It(a),v.unshift(x)}return Ke.makeSpan(["mop","op-limits"],v,i)},"assembleSupSub"),Dj=["\\smallint"],Bm=o((e,t)=>{var r,i,n=!1,a;e.type==="supsub"?(r=e.sup,i=e.sub,a=Nr(e.base,"op"),n=!0):a=Nr(e,"op");var s=t.style,l=!1;s.size===ur.DISPLAY.size&&a.symbol&&!Dj.includes(a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",d="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(d=a.name.slice(1),a.name=d==="oiint"?"\\iint":"\\iiint"),u=Ke.makeSymbol(a.name,h,"math",t,["mop","op-symbol",l?"large-op":"small-op"]),d.length>0){var f=u.italic,p=Ke.staticSvg(d+"Size"+(l?"2":"1"),t);u=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},t),a.name="\\"+d,u.classes.unshift("mop"),u.italic=f}}else if(a.body){var m=Fn(a.body,t,!0);m.length===1&&m[0]instanceof Ts?(u=m[0],u.classes[0]="mop"):u=Ke.makeSpan(["mop"],m,t)}else{for(var g=[],y=1;y{var r;if(e.symbol)r=new Ha("mo",[No(e.name,e.mode)]),Dj.includes(e.name)&&r.setAttribute("largeop","false");else if(e.body)r=new Ha("mo",Cs(e.body,t));else{r=new Ha("mi",[new Mo(e.name.slice(1))]);var i=new Ha("mo",[No("\u2061","text")]);e.parentIsSupSub?r=new Ha("mrow",[r,i]):r=ij([r,i])}return r},"mathmlBuilder$1"),F9e={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Bt({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((e,t)=>{var{parser:r,funcName:i}=e,n=i;return n.length===1&&(n=F9e[n]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},"handler"),htmlBuilder:Bm,mathmlBuilder:Tv});Bt({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((e,t)=>{var{parser:r}=e,i=t[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:gn(i)}},"handler"),htmlBuilder:Bm,mathmlBuilder:Tv});$9e={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Bt({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:Bm,mathmlBuilder:Tv});Bt({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:Bm,mathmlBuilder:Tv});Bt({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e,i=r;return i.length===1&&(i=$9e[i]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:i}},htmlBuilder:Bm,mathmlBuilder:Tv});Rj=o((e,t)=>{var r,i,n=!1,a;e.type==="supsub"?(r=e.sup,i=e.sub,a=Nr(e.base,"operatorname"),n=!0):a=Nr(e,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(f=>{var p=f.text;return typeof p=="string"?{type:"textord",mode:f.mode,text:p}:f}),u=Fn(l,t.withFont("mathrm"),!0),h=0;h{for(var r=Cs(e.body,t.withFont("mathrm")),i=!0,n=0;nd.toText()).join("");r=[new Dt.TextNode(l)]}var u=new Dt.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new Dt.MathNode("mo",[No("\u2061","text")]);return e.parentIsSupSub?new Dt.MathNode("mrow",[u,h]):Dt.newDocumentFragment([u,h])},"mathmlBuilder");Bt({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((e,t)=>{var{parser:r,funcName:i}=e,n=t[0];return{type:"operatorname",mode:r.mode,body:gn(n),alwaysHandleSupSub:i==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:Rj,mathmlBuilder:z9e});he("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");qf({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?Ke.makeFragment(Fn(e.body,t,!1)):Ke.makeSpan(["mord"],Fn(e.body,t,!0),t)},mathmlBuilder(e,t){return zh(e.body,t,!0)}});Bt({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:r}=e,i=t[0];return{type:"overline",mode:r.mode,body:i}},htmlBuilder(e,t){var r=Yr(e.body,t.havingCrampedStyle()),i=Ke.makeLineSpan("overline-line",t),n=t.fontMetrics().defaultRuleThickness,a=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*n},{type:"elem",elem:i},{type:"kern",size:n}]},t);return Ke.makeSpan(["mord","overline"],[a],t)},mathmlBuilder(e,t){var r=new Dt.MathNode("mo",[new Dt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var i=new Dt.MathNode("mover",[Ti(e.body,t),r]);return i.setAttribute("accent","true"),i}});Bt({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,i=t[0];return{type:"phantom",mode:r.mode,body:gn(i)}},"handler"),htmlBuilder:o((e,t)=>{var r=Fn(e.body,t.withPhantom(),!1);return Ke.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=Cs(e.body,t);return new Dt.MathNode("mphantom",r)},"mathmlBuilder")});Bt({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,i=t[0];return{type:"hphantom",mode:r.mode,body:i}},"handler"),htmlBuilder:o((e,t)=>{var r=Ke.makeSpan([],[Yr(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var i=0;i{var r=Cs(gn(e.body),t),i=new Dt.MathNode("mphantom",r),n=new Dt.MathNode("mpadded",[i]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n},"mathmlBuilder")});Bt({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,i=t[0];return{type:"vphantom",mode:r.mode,body:i}},"handler"),htmlBuilder:o((e,t)=>{var r=Ke.makeSpan(["inner"],[Yr(e.body,t.withPhantom())]),i=Ke.makeSpan(["fix"],[]);return Ke.makeSpan(["mord","rlap"],[r,i],t)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=Cs(gn(e.body),t),i=new Dt.MathNode("mphantom",r),n=new Dt.MathNode("mpadded",[i]);return n.setAttribute("width","0px"),n},"mathmlBuilder")});Bt({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e,i=Nr(t[0],"size").value,n=t[1];return{type:"raisebox",mode:r.mode,dy:i,body:n}},htmlBuilder(e,t){var r=Yr(e.body,t),i=Qi(e.dy,t);return Ke.makeVList({positionType:"shift",positionData:-i,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){var r=new Dt.MathNode("mpadded",[Ti(e.body,t)]),i=e.dy.number+e.dy.unit;return r.setAttribute("voffset",i),r}});Bt({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}});Bt({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(e,t,r){var{parser:i}=e,n=r[0],a=Nr(t[0],"size"),s=Nr(t[1],"size");return{type:"rule",mode:i.mode,shift:n&&Nr(n,"size").value,width:a.value,height:s.value}},htmlBuilder(e,t){var r=Ke.makeSpan(["mord","rule"],[],t),i=Qi(e.width,t),n=Qi(e.height,t),a=e.shift?Qi(e.shift,t):0;return r.style.borderRightWidth=It(i),r.style.borderTopWidth=It(n),r.style.bottom=It(a),r.width=i,r.height=n+a,r.depth=-a,r.maxFontSize=n*1.125*t.sizeMultiplier,r},mathmlBuilder(e,t){var r=Qi(e.width,t),i=Qi(e.height,t),n=e.shift?Qi(e.shift,t):0,a=t.color&&t.getColor()||"black",s=new Dt.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",It(r)),s.setAttribute("height",It(i));var l=new Dt.MathNode("mpadded",[s]);return n>=0?l.setAttribute("height",It(n)):(l.setAttribute("height",It(n)),l.setAttribute("depth",It(-n))),l.setAttribute("voffset",It(n)),l}});o(Lj,"sizingGroup");MY=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],G9e=o((e,t)=>{var r=t.havingSize(e.size);return Lj(e.body,r,t)},"htmlBuilder");Bt({type:"sizing",names:MY,props:{numArgs:0,allowedInText:!0},handler:o((e,t)=>{var{breakOnTokenText:r,funcName:i,parser:n}=e,a=n.parseExpression(!1,r);return{type:"sizing",mode:n.mode,size:MY.indexOf(i)+1,body:a}},"handler"),htmlBuilder:G9e,mathmlBuilder:o((e,t)=>{var r=t.havingSize(e.size),i=Cs(e.body,r),n=new Dt.MathNode("mstyle",i);return n.setAttribute("mathsize",It(r.sizeMultiplier)),n},"mathmlBuilder")});Bt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((e,t,r)=>{var{parser:i}=e,n=!1,a=!1,s=r[0]&&Nr(r[0],"ordgroup");if(s)for(var l="",u=0;u{var r=Ke.makeSpan([],[Yr(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return r;if(e.smashHeight&&(r.height=0,r.children))for(var i=0;i{var r=new Dt.MathNode("mpadded",[Ti(e.body,t)]);return e.smashHeight&&r.setAttribute("height","0px"),e.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});Bt({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:i}=e,n=r[0],a=t[0];return{type:"sqrt",mode:i.mode,body:a,index:n}},htmlBuilder(e,t){var r=Yr(e.body,t.havingCrampedStyle());r.height===0&&(r.height=t.fontMetrics().xHeight),r=Ke.wrapFragment(r,t);var i=t.fontMetrics(),n=i.defaultRuleThickness,a=n;t.style.idr.height+r.depth+s&&(s=(s+f-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=It(d);var m=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},t);if(e.index){var g=t.havingStyle(ur.SCRIPTSCRIPT),y=Yr(e.index,g,t),v=.6*(m.height-m.depth),x=Ke.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},t),b=Ke.makeSpan(["root"],[x]);return Ke.makeSpan(["mord","sqrt"],[b,m],t)}else return Ke.makeSpan(["mord","sqrt"],[m],t)},mathmlBuilder(e,t){var{body:r,index:i}=e;return i?new Dt.MathNode("mroot",[Ti(r,t),Ti(i,t)]):new Dt.MathNode("msqrt",[Ti(r,t)])}});NY={display:ur.DISPLAY,text:ur.TEXT,script:ur.SCRIPT,scriptscript:ur.SCRIPTSCRIPT};Bt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:r,funcName:i,parser:n}=e,a=n.parseExpression(!0,r),s=i.slice(1,i.length-5);return{type:"styling",mode:n.mode,style:s,body:a}},htmlBuilder(e,t){var r=NY[e.style],i=t.havingStyle(r).withFont("");return Lj(e.body,i,t)},mathmlBuilder(e,t){var r=NY[e.style],i=t.havingStyle(r),n=Cs(e.body,i),a=new Dt.MathNode("mstyle",n),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[e.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});V9e=o(function(t,r){var i=t.base;if(i)if(i.type==="op"){var n=i.limits&&(r.style.size===ur.DISPLAY.size||i.alwaysHandleSupSub);return n?Bm:null}else if(i.type==="operatorname"){var a=i.alwaysHandleSupSub&&(r.style.size===ur.DISPLAY.size||i.limits);return a?Rj:null}else{if(i.type==="accent")return Zr.isCharacterBox(i.base)?mD:null;if(i.type==="horizBrace"){var s=!t.sub;return s===i.isOver?Aj:null}else return null}else return null},"htmlBuilderDelegate");qf({type:"supsub",htmlBuilder(e,t){var r=V9e(e,t);if(r)return r(e,t);var{base:i,sup:n,sub:a}=e,s=Yr(i,t),l,u,h=t.fontMetrics(),d=0,f=0,p=i&&Zr.isCharacterBox(i);if(n){var m=t.havingStyle(t.style.sup());l=Yr(n,m,t),p||(d=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/t.sizeMultiplier)}if(a){var g=t.havingStyle(t.style.sub());u=Yr(a,g,t),p||(f=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/t.sizeMultiplier)}var y;t.style===ur.DISPLAY?y=h.sup1:t.style.cramped?y=h.sup3:y=h.sup2;var v=t.sizeMultiplier,x=It(.5/h.ptPerEm/v),b=null;if(u){var T=e.base&&e.base.type==="op"&&e.base.name&&(e.base.name==="\\oiint"||e.base.name==="\\oiiint");(s instanceof Ts||T)&&(b=It(-s.italic))}var w;if(l&&u){d=Math.max(d,y,l.depth+.25*h.xHeight),f=Math.max(f,h.sub2);var C=h.defaultRuleThickness,k=4*C;if(d-l.depth-(u.height-f)0&&(d+=E,f-=E)}var A=[{type:"elem",elem:u,shift:f,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-d,marginRight:x}];w=Ke.makeVList({positionType:"individualShift",children:A},t)}else if(u){f=Math.max(f,h.sub1,u.height-.8*h.xHeight);var N=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];w=Ke.makeVList({positionType:"shift",positionData:f,children:N},t)}else if(l)d=Math.max(d,y,l.depth+.25*h.xHeight),w=Ke.makeVList({positionType:"shift",positionData:-d,children:[{type:"elem",elem:l,marginRight:x}]},t);else throw new Error("supsub must have either sup or sub.");var P=tD(s,"right")||"mord";return Ke.makeSpan([P],[s,Ke.makeSpan(["msupsub"],[w])],t)},mathmlBuilder(e,t){var r=!1,i,n;e.base&&e.base.type==="horizBrace"&&(n=!!e.sup,n===e.base.isOver&&(r=!0,i=e.base.isOver)),e.base&&(e.base.type==="op"||e.base.type==="operatorname")&&(e.base.parentIsSupSub=!0);var a=[Ti(e.base,t)];e.sub&&a.push(Ti(e.sub,t)),e.sup&&a.push(Ti(e.sup,t));var s;if(r)s=i?"mover":"munder";else if(e.sub)if(e.sup){var h=e.base;h&&h.type==="op"&&h.limits&&t.style===ur.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(t.style===ur.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=e.base;u&&u.type==="op"&&u.limits&&(t.style===ur.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||t.style===ur.DISPLAY)?s="munder":s="msub"}else{var l=e.base;l&&l.type==="op"&&l.limits&&(t.style===ur.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||t.style===ur.DISPLAY)?s="mover":s="msup"}return new Dt.MathNode(s,a)}});qf({type:"atom",htmlBuilder(e,t){return Ke.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){var r=new Dt.MathNode("mo",[No(e.text,e.mode)]);if(e.family==="bin"){var i=fD(e,t);i==="bold-italic"&&r.setAttribute("mathvariant",i)}else e.family==="punct"?r.setAttribute("separator","true"):(e.family==="open"||e.family==="close")&&r.setAttribute("stretchy","false");return r}});Mj={mi:"italic",mn:"normal",mtext:"normal"};qf({type:"mathord",htmlBuilder(e,t){return Ke.makeOrd(e,t,"mathord")},mathmlBuilder(e,t){var r=new Dt.MathNode("mi",[No(e.text,e.mode,t)]),i=fD(e,t)||"italic";return i!==Mj[r.type]&&r.setAttribute("mathvariant",i),r}});qf({type:"textord",htmlBuilder(e,t){return Ke.makeOrd(e,t,"textord")},mathmlBuilder(e,t){var r=No(e.text,e.mode,t),i=fD(e,t)||"normal",n;return e.mode==="text"?n=new Dt.MathNode("mtext",[r]):/[0-9]/.test(e.text)?n=new Dt.MathNode("mn",[r]):e.text==="\\prime"?n=new Dt.MathNode("mo",[r]):n=new Dt.MathNode("mi",[r]),i!==Mj[n.type]&&n.setAttribute("mathvariant",i),n}});j7={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},X7={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};qf({type:"spacing",htmlBuilder(e,t){if(X7.hasOwnProperty(e.text)){var r=X7[e.text].className||"";if(e.mode==="text"){var i=Ke.makeOrd(e,t,"textord");return i.classes.push(r),i}else return Ke.makeSpan(["mspace",r],[Ke.mathsym(e.text,e.mode,t)],t)}else{if(j7.hasOwnProperty(e.text))return Ke.makeSpan(["mspace",j7[e.text]],[],t);throw new Lt('Unknown type of space "'+e.text+'"')}},mathmlBuilder(e,t){var r;if(X7.hasOwnProperty(e.text))r=new Dt.MathNode("mtext",[new Dt.TextNode("\xA0")]);else{if(j7.hasOwnProperty(e.text))return new Dt.MathNode("mspace");throw new Lt('Unknown type of space "'+e.text+'"')}return r}});IY=o(()=>{var e=new Dt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e},"pad");qf({type:"tag",mathmlBuilder(e,t){var r=new Dt.MathNode("mtable",[new Dt.MathNode("mtr",[IY(),new Dt.MathNode("mtd",[zh(e.body,t)]),IY(),new Dt.MathNode("mtd",[zh(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});OY={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},PY={"\\textbf":"textbf","\\textmd":"textmd"},W9e={"\\textit":"textit","\\textup":"textup"},BY=o((e,t)=>{var r=e.font;if(r){if(OY[r])return t.withTextFontFamily(OY[r]);if(PY[r])return t.withTextFontWeight(PY[r]);if(r==="\\emph")return t.fontShape==="textit"?t.withTextFontShape("textup"):t.withTextFontShape("textit")}else return t;return t.withTextFontShape(W9e[r])},"optionsWithFont");Bt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:i}=e,n=t[0];return{type:"text",mode:r.mode,body:gn(n),font:i}},htmlBuilder(e,t){var r=BY(e,t),i=Fn(e.body,r,!0);return Ke.makeSpan(["mord","text"],i,r)},mathmlBuilder(e,t){var r=BY(e,t);return zh(e.body,r)}});Bt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=Yr(e.body,t),i=Ke.makeLineSpan("underline-line",t),n=t.fontMetrics().defaultRuleThickness,a=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:n},{type:"elem",elem:i},{type:"kern",size:3*n},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","underline"],[a],t)},mathmlBuilder(e,t){var r=new Dt.MathNode("mo",[new Dt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var i=new Dt.MathNode("munder",[Ti(e.body,t),r]);return i.setAttribute("accentunder","true"),i}});Bt({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=Yr(e.body,t),i=t.fontMetrics().axisHeight,n=.5*(r.height-i-(r.depth+i));return Ke.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){return new Dt.MathNode("mpadded",[Ti(e.body,t)],["vcenter"])}});Bt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new Lt("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var r=FY(e),i=[],n=t.havingStyle(t.style.text()),a=0;ae.body.replace(/ /g,e.star?"\u2423":"\xA0"),"makeVerb"),Fh=tj,Nj=`[ \r
+	]`,q9e="\\\\[a-zA-Z@]+",U9e="\\\\[^\uD800-\uDFFF]",H9e="("+q9e+")"+Nj+"*",Y9e=`\\\\(
+|[ \r	]+
+?)[ \r	]*`,sD="[\u0300-\u036F]",j9e=new RegExp(sD+"+$"),X9e="("+Nj+"+)|"+(Y9e+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(sD+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(sD+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+H9e)+("|"+U9e+")"),rk=class{static{o(this,"Lexer")}constructor(t,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=t,this.settings=r,this.tokenRegex=new RegExp(X9e,"g"),this.catcodes={"%":14,"~":13}}setCatcode(t,r){this.catcodes[t]=r}lex(){var t=this.input,r=this.tokenRegex.lastIndex;if(r===t.length)return new eo("EOF",new bs(this,r,r));var i=this.tokenRegex.exec(t);if(i===null||i.index!==r)throw new Lt("Unexpected character: '"+t[r]+"'",new eo(t[r],new bs(this,r,r+1)));var n=i[6]||i[3]||(i[2]?"\\ ":" ");if(this.catcodes[n]===14){var a=t.indexOf(`
+`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=t.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new eo(n,new bs(this,r,this.tokenRegex.lastIndex))}},oD=class{static{o(this,"Namespace")}constructor(t,r){t===void 0&&(t={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=t,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new Lt("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var t=this.undefStack.pop();for(var r in t)t.hasOwnProperty(r)&&(t[r]==null?delete this.current[r]:this.current[r]=t[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(t){return this.current.hasOwnProperty(t)||this.builtins.hasOwnProperty(t)}get(t){return this.current.hasOwnProperty(t)?this.current[t]:this.builtins[t]}set(t,r,i){if(i===void 0&&(i=!1),i){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][t]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(t)&&(a[t]=this.current[t])}r==null?delete this.current[t]:this.current[t]=r}},K9e=Cj;he("\\noexpand",function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}});he("\\expandafter",function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}});he("\\@firstoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[0],numArgs:0}});he("\\@secondoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[1],numArgs:0}});he("\\@ifnextchar",function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return t[0].length===1&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}});he("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");he("\\TextOrMath",function(e){var t=e.consumeArgs(2);return e.mode==="text"?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});$Y={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};he("\\char",function(e){var t=e.popToken(),r,i="";if(t.text==="'")r=8,t=e.popToken();else if(t.text==='"')r=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]==="\\")i=t.text.charCodeAt(1);else{if(t.text==="EOF")throw new Lt("\\char` missing argument");i=t.text.charCodeAt(0)}else r=10;if(r){if(i=$Y[t.text],i==null||i>=r)throw new Lt("Invalid base-"+r+" digit "+t.text);for(var n;(n=$Y[e.future().text])!=null&&n{var n=e.consumeArg().tokens;if(n.length!==1)throw new Lt("\\newcommand's first argument must be a macro name");var a=n[0].text,s=e.isDefined(a);if(s&&!t)throw new Lt("\\newcommand{"+a+"} attempting to redefine "+(a+"; use \\renewcommand"));if(!s&&!r)throw new Lt("\\renewcommand{"+a+"} when command "+a+" does not yet exist; use \\newcommand");var l=0;if(n=e.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var u="",h=e.expandNextToken();h.text!=="]"&&h.text!=="EOF";)u+=h.text,h=e.expandNextToken();if(!u.match(/^\s*[0-9]+\s*$/))throw new Lt("Invalid number of arguments: "+u);l=parseInt(u),n=e.consumeArg().tokens}return s&&i||e.macros.set(a,{tokens:n,numArgs:l}),""},"newcommand");he("\\newcommand",e=>kD(e,!1,!0,!1));he("\\renewcommand",e=>kD(e,!0,!1,!1));he("\\providecommand",e=>kD(e,!0,!0,!0));he("\\message",e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(r=>r.text).join("")),""});he("\\errmessage",e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(r=>r.text).join("")),""});he("\\show",e=>{var t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),Fh[r],_i.math[r],_i.text[r]),""});he("\\bgroup","{");he("\\egroup","}");he("~","\\nobreakspace");he("\\lq","`");he("\\rq","'");he("\\aa","\\r a");he("\\AA","\\r A");he("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");he("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");he("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");he("\u212C","\\mathscr{B}");he("\u2130","\\mathscr{E}");he("\u2131","\\mathscr{F}");he("\u210B","\\mathscr{H}");he("\u2110","\\mathscr{I}");he("\u2112","\\mathscr{L}");he("\u2133","\\mathscr{M}");he("\u211B","\\mathscr{R}");he("\u212D","\\mathfrak{C}");he("\u210C","\\mathfrak{H}");he("\u2128","\\mathfrak{Z}");he("\\Bbbk","\\Bbb{k}");he("\xB7","\\cdotp");he("\\llap","\\mathllap{\\textrm{#1}}");he("\\rlap","\\mathrlap{\\textrm{#1}}");he("\\clap","\\mathclap{\\textrm{#1}}");he("\\mathstrut","\\vphantom{(}");he("\\underbar","\\underline{\\text{#1}}");he("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');he("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");he("\\ne","\\neq");he("\u2260","\\neq");he("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");he("\u2209","\\notin");he("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");he("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");he("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");he("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");he("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");he("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");he("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");he("\u27C2","\\perp");he("\u203C","\\mathclose{!\\mkern-0.8mu!}");he("\u220C","\\notni");he("\u231C","\\ulcorner");he("\u231D","\\urcorner");he("\u231E","\\llcorner");he("\u231F","\\lrcorner");he("\xA9","\\copyright");he("\xAE","\\textregistered");he("\uFE0F","\\textregistered");he("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');he("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');he("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');he("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');he("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");he("\u22EE","\\vdots");he("\\varGamma","\\mathit{\\Gamma}");he("\\varDelta","\\mathit{\\Delta}");he("\\varTheta","\\mathit{\\Theta}");he("\\varLambda","\\mathit{\\Lambda}");he("\\varXi","\\mathit{\\Xi}");he("\\varPi","\\mathit{\\Pi}");he("\\varSigma","\\mathit{\\Sigma}");he("\\varUpsilon","\\mathit{\\Upsilon}");he("\\varPhi","\\mathit{\\Phi}");he("\\varPsi","\\mathit{\\Psi}");he("\\varOmega","\\mathit{\\Omega}");he("\\substack","\\begin{subarray}{c}#1\\end{subarray}");he("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");he("\\boxed","\\fbox{$\\displaystyle{#1}$}");he("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");he("\\implies","\\DOTSB\\;\\Longrightarrow\\;");he("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");he("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");he("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");zY={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};he("\\dots",function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in zY?t=zY[r]:(r.slice(0,4)==="\\not"||r in _i.math&&["bin","rel"].includes(_i.math[r].group))&&(t="\\dotsb"),t});wD={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};he("\\dotso",function(e){var t=e.future().text;return t in wD?"\\ldots\\,":"\\ldots"});he("\\dotsc",function(e){var t=e.future().text;return t in wD&&t!==","?"\\ldots\\,":"\\ldots"});he("\\cdots",function(e){var t=e.future().text;return t in wD?"\\@cdots\\,":"\\@cdots"});he("\\dotsb","\\cdots");he("\\dotsm","\\cdots");he("\\dotsi","\\!\\cdots");he("\\dotsx","\\ldots\\,");he("\\DOTSI","\\relax");he("\\DOTSB","\\relax");he("\\DOTSX","\\relax");he("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");he("\\,","\\tmspace+{3mu}{.1667em}");he("\\thinspace","\\,");he("\\>","\\mskip{4mu}");he("\\:","\\tmspace+{4mu}{.2222em}");he("\\medspace","\\:");he("\\;","\\tmspace+{5mu}{.2777em}");he("\\thickspace","\\;");he("\\!","\\tmspace-{3mu}{.1667em}");he("\\negthinspace","\\!");he("\\negmedspace","\\tmspace-{4mu}{.2222em}");he("\\negthickspace","\\tmspace-{5mu}{.277em}");he("\\enspace","\\kern.5em ");he("\\enskip","\\hskip.5em\\relax");he("\\quad","\\hskip1em\\relax");he("\\qquad","\\hskip2em\\relax");he("\\tag","\\@ifstar\\tag@literal\\tag@paren");he("\\tag@paren","\\tag@literal{({#1})}");he("\\tag@literal",e=>{if(e.macros.get("\\df@tag"))throw new Lt("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});he("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");he("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");he("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");he("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");he("\\newline","\\\\\\relax");he("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");Ij=It(nc["Main-Regular"][84][1]-.7*nc["Main-Regular"][65][1]);he("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+Ij+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");he("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+Ij+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");he("\\hspace","\\@ifstar\\@hspacer\\@hspace");he("\\@hspace","\\hskip #1\\relax");he("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");he("\\ordinarycolon",":");he("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");he("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');he("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');he("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');he("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');he("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');he("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');he("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');he("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');he("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');he("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');he("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');he("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');he("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');he("\u2237","\\dblcolon");he("\u2239","\\eqcolon");he("\u2254","\\coloneqq");he("\u2255","\\eqqcolon");he("\u2A74","\\Coloneqq");he("\\ratio","\\vcentcolon");he("\\coloncolon","\\dblcolon");he("\\colonequals","\\coloneqq");he("\\coloncolonequals","\\Coloneqq");he("\\equalscolon","\\eqqcolon");he("\\equalscoloncolon","\\Eqqcolon");he("\\colonminus","\\coloneq");he("\\coloncolonminus","\\Coloneq");he("\\minuscolon","\\eqcolon");he("\\minuscoloncolon","\\Eqcolon");he("\\coloncolonapprox","\\Colonapprox");he("\\coloncolonsim","\\Colonsim");he("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");he("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");he("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");he("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");he("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");he("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");he("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");he("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");he("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");he("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");he("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");he("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");he("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");he("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");he("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");he("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");he("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");he("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");he("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");he("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");he("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");he("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");he("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");he("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");he("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");he("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");he("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");he("\\imath","\\html@mathml{\\@imath}{\u0131}");he("\\jmath","\\html@mathml{\\@jmath}{\u0237}");he("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");he("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");he("\u27E6","\\llbracket");he("\u27E7","\\rrbracket");he("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");he("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");he("\u2983","\\lBrace");he("\u2984","\\rBrace");he("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");he("\u29B5","\\minuso");he("\\darr","\\downarrow");he("\\dArr","\\Downarrow");he("\\Darr","\\Downarrow");he("\\lang","\\langle");he("\\rang","\\rangle");he("\\uarr","\\uparrow");he("\\uArr","\\Uparrow");he("\\Uarr","\\Uparrow");he("\\N","\\mathbb{N}");he("\\R","\\mathbb{R}");he("\\Z","\\mathbb{Z}");he("\\alef","\\aleph");he("\\alefsym","\\aleph");he("\\Alpha","\\mathrm{A}");he("\\Beta","\\mathrm{B}");he("\\bull","\\bullet");he("\\Chi","\\mathrm{X}");he("\\clubs","\\clubsuit");he("\\cnums","\\mathbb{C}");he("\\Complex","\\mathbb{C}");he("\\Dagger","\\ddagger");he("\\diamonds","\\diamondsuit");he("\\empty","\\emptyset");he("\\Epsilon","\\mathrm{E}");he("\\Eta","\\mathrm{H}");he("\\exist","\\exists");he("\\harr","\\leftrightarrow");he("\\hArr","\\Leftrightarrow");he("\\Harr","\\Leftrightarrow");he("\\hearts","\\heartsuit");he("\\image","\\Im");he("\\infin","\\infty");he("\\Iota","\\mathrm{I}");he("\\isin","\\in");he("\\Kappa","\\mathrm{K}");he("\\larr","\\leftarrow");he("\\lArr","\\Leftarrow");he("\\Larr","\\Leftarrow");he("\\lrarr","\\leftrightarrow");he("\\lrArr","\\Leftrightarrow");he("\\Lrarr","\\Leftrightarrow");he("\\Mu","\\mathrm{M}");he("\\natnums","\\mathbb{N}");he("\\Nu","\\mathrm{N}");he("\\Omicron","\\mathrm{O}");he("\\plusmn","\\pm");he("\\rarr","\\rightarrow");he("\\rArr","\\Rightarrow");he("\\Rarr","\\Rightarrow");he("\\real","\\Re");he("\\reals","\\mathbb{R}");he("\\Reals","\\mathbb{R}");he("\\Rho","\\mathrm{P}");he("\\sdot","\\cdot");he("\\sect","\\S");he("\\spades","\\spadesuit");he("\\sub","\\subset");he("\\sube","\\subseteq");he("\\supe","\\supseteq");he("\\Tau","\\mathrm{T}");he("\\thetasym","\\vartheta");he("\\weierp","\\wp");he("\\Zeta","\\mathrm{Z}");he("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");he("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");he("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");he("\\bra","\\mathinner{\\langle{#1}|}");he("\\ket","\\mathinner{|{#1}\\rangle}");he("\\braket","\\mathinner{\\langle{#1}\\rangle}");he("\\Bra","\\left\\langle#1\\right|");he("\\Ket","\\left|#1\\right\\rangle");Oj=o(e=>t=>{var r=t.consumeArg().tokens,i=t.consumeArg().tokens,n=t.consumeArg().tokens,a=t.consumeArg().tokens,s=t.macros.get("|"),l=t.macros.get("\\|");t.macros.beginGroup();var u=o(f=>p=>{e&&(p.macros.set("|",s),n.length&&p.macros.set("\\|",l));var m=f;if(!f&&n.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?n:i,numArgs:0}},"midMacro");t.macros.set("|",u(!1)),n.length&&t.macros.set("\\|",u(!0));var h=t.consumeArg().tokens,d=t.expandTokens([...a,...h,...r]);return t.macros.endGroup(),{tokens:d.reverse(),numArgs:0}},"braketHelper");he("\\bra@ket",Oj(!1));he("\\bra@set",Oj(!0));he("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");he("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");he("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");he("\\angln","{\\angl n}");he("\\blue","\\textcolor{##6495ed}{#1}");he("\\orange","\\textcolor{##ffa500}{#1}");he("\\pink","\\textcolor{##ff00af}{#1}");he("\\red","\\textcolor{##df0030}{#1}");he("\\green","\\textcolor{##28ae7b}{#1}");he("\\gray","\\textcolor{gray}{#1}");he("\\purple","\\textcolor{##9d38bd}{#1}");he("\\blueA","\\textcolor{##ccfaff}{#1}");he("\\blueB","\\textcolor{##80f6ff}{#1}");he("\\blueC","\\textcolor{##63d9ea}{#1}");he("\\blueD","\\textcolor{##11accd}{#1}");he("\\blueE","\\textcolor{##0c7f99}{#1}");he("\\tealA","\\textcolor{##94fff5}{#1}");he("\\tealB","\\textcolor{##26edd5}{#1}");he("\\tealC","\\textcolor{##01d1c1}{#1}");he("\\tealD","\\textcolor{##01a995}{#1}");he("\\tealE","\\textcolor{##208170}{#1}");he("\\greenA","\\textcolor{##b6ffb0}{#1}");he("\\greenB","\\textcolor{##8af281}{#1}");he("\\greenC","\\textcolor{##74cf70}{#1}");he("\\greenD","\\textcolor{##1fab54}{#1}");he("\\greenE","\\textcolor{##0d923f}{#1}");he("\\goldA","\\textcolor{##ffd0a9}{#1}");he("\\goldB","\\textcolor{##ffbb71}{#1}");he("\\goldC","\\textcolor{##ff9c39}{#1}");he("\\goldD","\\textcolor{##e07d10}{#1}");he("\\goldE","\\textcolor{##a75a05}{#1}");he("\\redA","\\textcolor{##fca9a9}{#1}");he("\\redB","\\textcolor{##ff8482}{#1}");he("\\redC","\\textcolor{##f9685d}{#1}");he("\\redD","\\textcolor{##e84d39}{#1}");he("\\redE","\\textcolor{##bc2612}{#1}");he("\\maroonA","\\textcolor{##ffbde0}{#1}");he("\\maroonB","\\textcolor{##ff92c6}{#1}");he("\\maroonC","\\textcolor{##ed5fa6}{#1}");he("\\maroonD","\\textcolor{##ca337c}{#1}");he("\\maroonE","\\textcolor{##9e034e}{#1}");he("\\purpleA","\\textcolor{##ddd7ff}{#1}");he("\\purpleB","\\textcolor{##c6b9fc}{#1}");he("\\purpleC","\\textcolor{##aa87ff}{#1}");he("\\purpleD","\\textcolor{##7854ab}{#1}");he("\\purpleE","\\textcolor{##543b78}{#1}");he("\\mintA","\\textcolor{##f5f9e8}{#1}");he("\\mintB","\\textcolor{##edf2df}{#1}");he("\\mintC","\\textcolor{##e0e5cc}{#1}");he("\\grayA","\\textcolor{##f6f7f7}{#1}");he("\\grayB","\\textcolor{##f0f1f2}{#1}");he("\\grayC","\\textcolor{##e3e5e6}{#1}");he("\\grayD","\\textcolor{##d6d8da}{#1}");he("\\grayE","\\textcolor{##babec2}{#1}");he("\\grayF","\\textcolor{##888d93}{#1}");he("\\grayG","\\textcolor{##626569}{#1}");he("\\grayH","\\textcolor{##3b3e40}{#1}");he("\\grayI","\\textcolor{##21242c}{#1}");he("\\kaBlue","\\textcolor{##314453}{#1}");he("\\kaGreen","\\textcolor{##71B307}{#1}");Pj={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},lD=class{static{o(this,"MacroExpander")}constructor(t,r,i){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(t),this.macros=new oD(K9e,r.macros),this.mode=i,this.stack=[]}feed(t){this.lexer=new rk(t,this.settings)}switchMode(t){this.mode=t}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(t){this.stack.push(t)}pushTokens(t){this.stack.push(...t)}scanArgument(t){var r,i,n;if(t){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:n,end:i}=this.consumeArg(["]"])}else({tokens:n,start:r,end:i}=this.consumeArg());return this.pushToken(new eo("EOF",i.loc)),this.pushTokens(n),new eo("",bs.range(r,i))}consumeSpaces(){for(;;){var t=this.future();if(t.text===" ")this.stack.pop();else break}}consumeArg(t){var r=[],i=t&&t.length>0;i||this.consumeSpaces();var n=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new Lt("Extra }",a)}else if(a.text==="EOF")throw new Lt("Unexpected end of input in a macro argument, expected '"+(t&&i?t[l]:"}")+"'",a);if(t&&i)if((s===0||s===1&&t[l]==="{")&&a.text===t[l]){if(++l,l===t.length){r.splice(-l,l);break}}else l=0}while(s!==0||i);return n.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:n,end:a}}consumeArgs(t,r){if(r){if(r.length!==t+1)throw new Lt("The length of delimiters doesn't match the number of args!");for(var i=r[0],n=0;nthis.settings.maxExpand)throw new Lt("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(t){var r=this.popToken(),i=r.text,n=r.noexpand?null:this._getExpansion(i);if(n==null||t&&n.unexpandable){if(t&&n==null&&i[0]==="\\"&&!this.isDefined(i))throw new Lt("Undefined control sequence: "+i);return this.pushToken(r),!1}this.countExpansion(1);var a=n.tokens,s=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new Lt("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new Lt("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var t=this.stack.pop();return t.treatAsRelax&&(t.text="\\relax"),t}throw new Error}expandMacro(t){return this.macros.has(t)?this.expandTokens([new eo(t)]):void 0}expandTokens(t){var r=[],i=this.stack.length;for(this.pushTokens(t);this.stack.length>i;)if(this.expandOnce(!0)===!1){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),r.push(n)}return this.countExpansion(r.length),r}expandMacroAsText(t){var r=this.expandMacro(t);return r&&r.map(i=>i.text).join("")}_getExpansion(t){var r=this.macros.get(t);if(r==null)return r;if(t.length===1){var i=this.lexer.catcodes[t];if(i!=null&&i!==13)return}var n=typeof r=="function"?r(this):r;if(typeof n=="string"){var a=0;if(n.indexOf("#")!==-1)for(var s=n.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new rk(n,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var d={tokens:u,numArgs:a};return d}return n}isDefined(t){return this.macros.has(t)||Fh.hasOwnProperty(t)||_i.math.hasOwnProperty(t)||_i.text.hasOwnProperty(t)||Pj.hasOwnProperty(t)}isExpandable(t){var r=this.macros.get(t);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:Fh.hasOwnProperty(t)&&!Fh[t].primitive}},GY=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,jC=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),K7={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},VY={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},ik=class e{static{o(this,"Parser")}constructor(t,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new lD(t,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(t,r){if(r===void 0&&(r=!0),this.fetch().text!==t)throw new Lt("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(t){this.mode=t,this.gullet.switchMode(t)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var t=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),t}finally{this.gullet.endGroups()}}subparse(t){var r=this.nextToken;this.consume(),this.gullet.pushToken(new eo("}")),this.gullet.pushTokens(t);var i=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,i}parseExpression(t,r){for(var i=[];;){this.mode==="math"&&this.consumeSpaces();var n=this.fetch();if(e.endOfExpression.indexOf(n.text)!==-1||r&&n.text===r||t&&Fh[n.text]&&Fh[n.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;i.push(a)}return this.mode==="text"&&this.formLigatures(i),this.handleInfixNodes(i)}handleInfixNodes(t){for(var r=-1,i,n=0;n=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',t);var l=_i[this.mode][r].group,u=bs.range(t),h;if(GIe.hasOwnProperty(l)){var d=l;h={type:"atom",mode:this.mode,family:d,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&(qY(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),t)),s={type:"textord",mode:"text",loc:bs.range(t),text:r};else return null;if(this.consume(),a)for(var f=0;f{t.tagName==="A"&&t.hasAttribute("target")&&t.setAttribute(e,t.getAttribute("target")??"")}),Ro.addHook("afterSanitizeAttributes",t=>{t.tagName==="A"&&t.hasAttribute(e)&&(t.setAttribute("target",t.getAttribute(e)??""),t.removeAttribute(e),t.getAttribute("target")==="_blank"&&t.setAttribute("rel","noopener"))})}var Uf,Q9e,J9e,Yj,Uj,fr,tOe,rOe,iOe,nOe,jj,Hf,aOe,sOe,cc,AD,oOe,lOe,Hj,hk,Bi,Yf,cOe,Fm,vt,Ir=z(()=>{"use strict";uv();br();Uf=//gi,Q9e=o(e=>e?jj(e).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),J9e=(()=>{let e=!1;return()=>{e||(eOe(),e=!0)}})();o(eOe,"setupDompurifyHooks");Yj=o(e=>(J9e(),Ro.sanitize(e)),"removeScript"),Uj=o((e,t)=>{if(Mr(t)){let r=t.securityLevel;r==="antiscript"||r==="strict"||r==="sandbox"?e=Yj(e):r!=="loose"&&(e=jj(e),e=e.replace(//g,">"),e=e.replace(/=/g,"="),e=nOe(e))}return e},"sanitizeMore"),fr=o((e,t)=>e&&(t.dompurifyConfig?e=Ro.sanitize(Uj(e,t),t.dompurifyConfig).toString():e=Ro.sanitize(Uj(e,t),{FORBID_TAGS:["style"]}).toString(),e),"sanitizeText"),tOe=o((e,t)=>typeof e=="string"?fr(e,t):e.flat().map(r=>fr(r,t)),"sanitizeTextOrArray"),rOe=o(e=>Uf.test(e),"hasBreaks"),iOe=o(e=>e.split(Uf),"splitBreaks"),nOe=o(e=>e.replace(/#br#/g,"
"),"placeholderToBreak"),jj=o(e=>e.replace(Uf,"#br#"),"breakToPlaceholder"),Hf=o(e=>{let t="";return e&&(t=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,t=CSS.escape(t)),t},"getUrl"),aOe=o(function(...e){let t=e.filter(r=>!isNaN(r));return Math.max(...t)},"getMax"),sOe=o(function(...e){let t=e.filter(r=>!isNaN(r));return Math.min(...t)},"getMin"),cc=o(function(e){let t=e.split(/(,)/),r=[];for(let i=0;i0&&i+1Math.max(0,e.split(t).length-1),"countOccurrence"),oOe=o((e,t)=>{let r=AD(e,"~"),i=AD(t,"~");return r===1&&i===1},"shouldCombineSets"),lOe=o(e=>{let t=AD(e,"~"),r=!1;if(t<=1)return e;t%2!==0&&e.startsWith("~")&&(e=e.substring(1),r=!0);let i=[...e],n=i.indexOf("~"),a=i.lastIndexOf("~");for(;n!==-1&&a!==-1&&n!==a;)i[n]="<",i[a]=">",n=i.indexOf("~"),a=i.lastIndexOf("~");return r&&i.unshift("~"),i.join("")},"processSet"),Hj=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),hk=/\$\$(.*)\$\$/g,Bi=o(e=>(e.match(hk)?.length??0)>0,"hasKatex"),Yf=o(async(e,t)=>{let r=document.createElement("div");r.innerHTML=await Fm(e,t),r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let n={width:r.clientWidth,height:r.clientHeight};return r.remove(),n},"calculateMathMLDimensions"),cOe=o(async(e,t)=>{if(!Bi(e))return e;if(!(Hj()||t.legacyMathML||t.forceLegacyMathML))return e.replace(hk,"MathML is unsupported in this environment.");{let{default:r}=await Promise.resolve().then(()=>(qj(),Wj)),i=t.forceLegacyMathML||!Hj()&&t.legacyMathML?"htmlAndMathml":"mathml";return e.split(Uf).map(n=>Bi(n)?`
${n}
`:`
${n}
`).join("").replace(hk,(n,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:i}).replace(/\n/g," ").replace(//g,""))}return e.replace(hk,"Katex is not supported in @mermaid-js/tiny. Please use the full mermaid library.")},"renderKatexUnsanitized"),Fm=o(async(e,t)=>fr(await cOe(e,t),t),"renderKatexSanitized"),vt={getRows:Q9e,sanitizeText:fr,sanitizeTextOrArray:tOe,hasBreaks:rOe,splitBreaks:iOe,lineBreakRegex:Uf,removeScript:Yj,getUrl:Hf,evaluate:Aa,getMax:aOe,getMin:sOe}});var DD,_D,Xj,dk,Kj,Zj,ks,uc=z(()=>{"use strict";UU();br();Ir();St();DD={body:'?',height:80,width:80},_D=new Map,Xj=new Map,dk=o(e=>{for(let t of e){if(!t.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(Z.debug("Registering icon pack:",t.name),"loader"in t)Xj.set(t.name,t.loader);else if("icons"in t)_D.set(t.name,t.icons);else throw Z.error("Invalid icon loader:",t),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),Kj=o(async(e,t)=>{let r=J_(e,!0,t!==void 0);if(!r)throw new Error(`Invalid icon name: ${e}`);let i=r.prefix||t;if(!i)throw new Error(`Icon name must contain a prefix: ${e}`);let n=_D.get(i);if(!n){let s=Xj.get(i);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{n={...await s(),prefix:i},_D.set(i,n)}catch(l){throw Z.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=t7(n,r.name);if(!a)throw new Error(`Icon not found: ${e}`);return a},"getRegisteredIconData"),Zj=o(async e=>{try{return await Kj(e),!0}catch{return!1}},"isIconAvailable"),ks=o(async(e,t,r)=>{let i;try{i=await Kj(e,t?.fallbackPrefix)}catch(s){Z.error(s),i=DD}let n=i7(i,t),a=a7(n7(n.body),{...n.attributes,...r});return fr(a,Nt())},"getIconSVG")});function fk(e){for(var t=[],r=1;r{"use strict";o(fk,"dedent")});var pk,jf,Qj,mk=z(()=>{"use strict";pk=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,jf=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Qj=/\s*%%.*\n/gm});var $m,LD=z(()=>{"use strict";$m=class extends Error{static{o(this,"UnknownDiagramError")}constructor(t){super(t),this.name="UnknownDiagramError"}}});var ku,zm,Cv,MD,Jj,Xf=z(()=>{"use strict";St();mk();LD();ku={},zm=o(function(e,t){e=e.replace(pk,"").replace(jf,"").replace(Qj,` +`);for(let[r,{detector:i}]of Object.entries(ku))if(i(e,t))return r;throw new $m(`No diagram type detected matching given configuration for text: ${e}`)},"detectType"),Cv=o((...e)=>{for(let{id:t,detector:r,loader:i}of e)MD(t,r,i)},"registerLazyLoadedDiagrams"),MD=o((e,t,r)=>{ku[e]&&Z.warn(`Detector with key ${e} already exists. Overwriting.`),ku[e]={detector:t,loader:r},Z.debug(`Detector with key ${e} added${r?" with loader":""}`)},"addDetector"),Jj=o(e=>ku[e].loader,"getDiagramLoader")});var kv,eX,ND=z(()=>{"use strict";kv=(function(){var e=o(function(ke,Fe,He,at){for(He=He||{},at=ke.length;at--;He[ke[at]]=Fe);return He},"o"),t=[1,24],r=[1,25],i=[1,26],n=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],d=[1,67],f=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],T=[1,35],w=[1,36],C=[1,37],k=[1,38],E=[1,39],A=[1,40],N=[1,41],P=[1,42],I=[1,43],D=[1,44],_=[1,45],R=[1,46],M=[1,47],L=[1,48],B=[1,50],O=[1,51],$=[1,52],G=[1,53],F=[1,54],V=[1,55],H=[1,56],j=[1,57],U=[1,58],Q=[1,59],Y=[1,60],ae=[14,42],J=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],te=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],re=[1,82],ee=[1,83],Te=[1,84],ue=[1,85],De=[12,14,42],Ie=[12,14,33,42],Ee=[12,14,33,42,76,77,79,80],we=[12,33],Me=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],$e={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:o(function(Fe,He,at,qe,Ue,ye,ve){var ie=ye.length-1;switch(Ue){case 3:qe.setDirection("TB");break;case 4:qe.setDirection("BT");break;case 5:qe.setDirection("RL");break;case 6:qe.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:qe.setC4Type(ye[ie-3]);break;case 19:qe.setTitle(ye[ie].substring(6)),this.$=ye[ie].substring(6);break;case 20:qe.setAccDescription(ye[ie].substring(15)),this.$=ye[ie].substring(15);break;case 21:this.$=ye[ie].trim(),qe.setTitle(this.$);break;case 22:case 23:this.$=ye[ie].trim(),qe.setAccDescription(this.$);break;case 28:ye[ie].splice(2,0,"ENTERPRISE"),qe.addPersonOrSystemBoundary(...ye[ie]),this.$=ye[ie];break;case 29:ye[ie].splice(2,0,"SYSTEM"),qe.addPersonOrSystemBoundary(...ye[ie]),this.$=ye[ie];break;case 30:qe.addPersonOrSystemBoundary(...ye[ie]),this.$=ye[ie];break;case 31:ye[ie].splice(2,0,"CONTAINER"),qe.addContainerBoundary(...ye[ie]),this.$=ye[ie];break;case 32:qe.addDeploymentNode("node",...ye[ie]),this.$=ye[ie];break;case 33:qe.addDeploymentNode("nodeL",...ye[ie]),this.$=ye[ie];break;case 34:qe.addDeploymentNode("nodeR",...ye[ie]),this.$=ye[ie];break;case 35:qe.popBoundaryParseStack();break;case 39:qe.addPersonOrSystem("person",...ye[ie]),this.$=ye[ie];break;case 40:qe.addPersonOrSystem("external_person",...ye[ie]),this.$=ye[ie];break;case 41:qe.addPersonOrSystem("system",...ye[ie]),this.$=ye[ie];break;case 42:qe.addPersonOrSystem("system_db",...ye[ie]),this.$=ye[ie];break;case 43:qe.addPersonOrSystem("system_queue",...ye[ie]),this.$=ye[ie];break;case 44:qe.addPersonOrSystem("external_system",...ye[ie]),this.$=ye[ie];break;case 45:qe.addPersonOrSystem("external_system_db",...ye[ie]),this.$=ye[ie];break;case 46:qe.addPersonOrSystem("external_system_queue",...ye[ie]),this.$=ye[ie];break;case 47:qe.addContainer("container",...ye[ie]),this.$=ye[ie];break;case 48:qe.addContainer("container_db",...ye[ie]),this.$=ye[ie];break;case 49:qe.addContainer("container_queue",...ye[ie]),this.$=ye[ie];break;case 50:qe.addContainer("external_container",...ye[ie]),this.$=ye[ie];break;case 51:qe.addContainer("external_container_db",...ye[ie]),this.$=ye[ie];break;case 52:qe.addContainer("external_container_queue",...ye[ie]),this.$=ye[ie];break;case 53:qe.addComponent("component",...ye[ie]),this.$=ye[ie];break;case 54:qe.addComponent("component_db",...ye[ie]),this.$=ye[ie];break;case 55:qe.addComponent("component_queue",...ye[ie]),this.$=ye[ie];break;case 56:qe.addComponent("external_component",...ye[ie]),this.$=ye[ie];break;case 57:qe.addComponent("external_component_db",...ye[ie]),this.$=ye[ie];break;case 58:qe.addComponent("external_component_queue",...ye[ie]),this.$=ye[ie];break;case 60:qe.addRel("rel",...ye[ie]),this.$=ye[ie];break;case 61:qe.addRel("birel",...ye[ie]),this.$=ye[ie];break;case 62:qe.addRel("rel_u",...ye[ie]),this.$=ye[ie];break;case 63:qe.addRel("rel_d",...ye[ie]),this.$=ye[ie];break;case 64:qe.addRel("rel_l",...ye[ie]),this.$=ye[ie];break;case 65:qe.addRel("rel_r",...ye[ie]),this.$=ye[ie];break;case 66:qe.addRel("rel_b",...ye[ie]),this.$=ye[ie];break;case 67:ye[ie].splice(0,1),qe.addRel("rel",...ye[ie]),this.$=ye[ie];break;case 68:qe.updateElStyle("update_el_style",...ye[ie]),this.$=ye[ie];break;case 69:qe.updateRelStyle("update_rel_style",...ye[ie]),this.$=ye[ie];break;case 70:qe.updateLayoutConfig("update_layout_config",...ye[ie]),this.$=ye[ie];break;case 71:this.$=[ye[ie]];break;case 72:ye[ie].unshift(ye[ie-1]),this.$=ye[ie];break;case 73:case 75:this.$=ye[ie].trim();break;case 74:let fe={};fe[ye[ie-1].trim()]=ye[ie].trim(),this.$=fe;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:r,24:i,26:n,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:d,40:f,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:w,52:C,53:k,54:E,55:A,56:N,57:P,58:I,59:D,60:_,61:R,62:M,63:L,64:B,65:O,66:$,67:G,68:F,69:V,70:H,71:j,72:U,73:Q,74:Y},{13:70,19:20,20:21,21:22,22:t,23:r,24:i,26:n,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:d,40:f,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:w,52:C,53:k,54:E,55:A,56:N,57:P,58:I,59:D,60:_,61:R,62:M,63:L,64:B,65:O,66:$,67:G,68:F,69:V,70:H,71:j,72:U,73:Q,74:Y},{13:71,19:20,20:21,21:22,22:t,23:r,24:i,26:n,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:d,40:f,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:w,52:C,53:k,54:E,55:A,56:N,57:P,58:I,59:D,60:_,61:R,62:M,63:L,64:B,65:O,66:$,67:G,68:F,69:V,70:H,71:j,72:U,73:Q,74:Y},{13:72,19:20,20:21,21:22,22:t,23:r,24:i,26:n,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:d,40:f,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:w,52:C,53:k,54:E,55:A,56:N,57:P,58:I,59:D,60:_,61:R,62:M,63:L,64:B,65:O,66:$,67:G,68:F,69:V,70:H,71:j,72:U,73:Q,74:Y},{13:73,19:20,20:21,21:22,22:t,23:r,24:i,26:n,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:d,40:f,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:w,52:C,53:k,54:E,55:A,56:N,57:P,58:I,59:D,60:_,61:R,62:M,63:L,64:B,65:O,66:$,67:G,68:F,69:V,70:H,71:j,72:U,73:Q,74:Y},{14:[1,74]},e(ae,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:d,40:f,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:w,52:C,53:k,54:E,55:A,56:N,57:P,58:I,59:D,60:_,61:R,62:M,63:L,64:B,65:O,66:$,67:G,68:F,69:V,70:H,71:j,72:U,73:Q,74:Y}),e(ae,[2,14]),e(J,[2,16],{12:[1,76]}),e(ae,[2,36],{12:[1,77]}),e(te,[2,19]),e(te,[2,20]),{25:[1,78]},{27:[1,79]},e(te,[2,23]),{35:80,75:81,76:re,77:ee,79:Te,80:ue},{35:86,75:81,76:re,77:ee,79:Te,80:ue},{35:87,75:81,76:re,77:ee,79:Te,80:ue},{35:88,75:81,76:re,77:ee,79:Te,80:ue},{35:89,75:81,76:re,77:ee,79:Te,80:ue},{35:90,75:81,76:re,77:ee,79:Te,80:ue},{35:91,75:81,76:re,77:ee,79:Te,80:ue},{35:92,75:81,76:re,77:ee,79:Te,80:ue},{35:93,75:81,76:re,77:ee,79:Te,80:ue},{35:94,75:81,76:re,77:ee,79:Te,80:ue},{35:95,75:81,76:re,77:ee,79:Te,80:ue},{35:96,75:81,76:re,77:ee,79:Te,80:ue},{35:97,75:81,76:re,77:ee,79:Te,80:ue},{35:98,75:81,76:re,77:ee,79:Te,80:ue},{35:99,75:81,76:re,77:ee,79:Te,80:ue},{35:100,75:81,76:re,77:ee,79:Te,80:ue},{35:101,75:81,76:re,77:ee,79:Te,80:ue},{35:102,75:81,76:re,77:ee,79:Te,80:ue},{35:103,75:81,76:re,77:ee,79:Te,80:ue},{35:104,75:81,76:re,77:ee,79:Te,80:ue},e(De,[2,59]),{35:105,75:81,76:re,77:ee,79:Te,80:ue},{35:106,75:81,76:re,77:ee,79:Te,80:ue},{35:107,75:81,76:re,77:ee,79:Te,80:ue},{35:108,75:81,76:re,77:ee,79:Te,80:ue},{35:109,75:81,76:re,77:ee,79:Te,80:ue},{35:110,75:81,76:re,77:ee,79:Te,80:ue},{35:111,75:81,76:re,77:ee,79:Te,80:ue},{35:112,75:81,76:re,77:ee,79:Te,80:ue},{35:113,75:81,76:re,77:ee,79:Te,80:ue},{35:114,75:81,76:re,77:ee,79:Te,80:ue},{35:115,75:81,76:re,77:ee,79:Te,80:ue},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:d,40:f,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:w,52:C,53:k,54:E,55:A,56:N,57:P,58:I,59:D,60:_,61:R,62:M,63:L,64:B,65:O,66:$,67:G,68:F,69:V,70:H,71:j,72:U,73:Q,74:Y},{12:[1,118],33:[1,117]},{35:119,75:81,76:re,77:ee,79:Te,80:ue},{35:120,75:81,76:re,77:ee,79:Te,80:ue},{35:121,75:81,76:re,77:ee,79:Te,80:ue},{35:122,75:81,76:re,77:ee,79:Te,80:ue},{35:123,75:81,76:re,77:ee,79:Te,80:ue},{35:124,75:81,76:re,77:ee,79:Te,80:ue},{35:125,75:81,76:re,77:ee,79:Te,80:ue},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(ae,[2,15]),e(J,[2,17],{21:22,19:130,22:t,23:r,24:i,26:n,28:a}),e(ae,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:r,24:i,26:n,28:a,34:s,36:l,37:u,38:h,39:d,40:f,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T,51:w,52:C,53:k,54:E,55:A,56:N,57:P,58:I,59:D,60:_,61:R,62:M,63:L,64:B,65:O,66:$,67:G,68:F,69:V,70:H,71:j,72:U,73:Q,74:Y}),e(te,[2,21]),e(te,[2,22]),e(De,[2,39]),e(Ie,[2,71],{75:81,35:132,76:re,77:ee,79:Te,80:ue}),e(Ee,[2,73]),{78:[1,133]},e(Ee,[2,75]),e(Ee,[2,76]),e(De,[2,40]),e(De,[2,41]),e(De,[2,42]),e(De,[2,43]),e(De,[2,44]),e(De,[2,45]),e(De,[2,46]),e(De,[2,47]),e(De,[2,48]),e(De,[2,49]),e(De,[2,50]),e(De,[2,51]),e(De,[2,52]),e(De,[2,53]),e(De,[2,54]),e(De,[2,55]),e(De,[2,56]),e(De,[2,57]),e(De,[2,58]),e(De,[2,60]),e(De,[2,61]),e(De,[2,62]),e(De,[2,63]),e(De,[2,64]),e(De,[2,65]),e(De,[2,66]),e(De,[2,67]),e(De,[2,68]),e(De,[2,69]),e(De,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(we,[2,28]),e(we,[2,29]),e(we,[2,30]),e(we,[2,31]),e(we,[2,32]),e(we,[2,33]),e(we,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(J,[2,18]),e(ae,[2,38]),e(Ie,[2,72]),e(Ee,[2,74]),e(De,[2,24]),e(De,[2,35]),e(Me,[2,25]),e(Me,[2,26],{12:[1,138]}),e(Me,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:o(function(Fe,He){if(He.recoverable)this.trace(Fe);else{var at=new Error(Fe);throw at.hash=He,at}},"parseError"),parse:o(function(Fe){var He=this,at=[0],qe=[],Ue=[null],ye=[],ve=this.table,ie="",fe=0,W=0,ce=0,K=2,Re=1,xe=ye.slice.call(arguments,1),Oe=Object.create(this.lexer),be={yy:{}};for(var Be in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Be)&&(be.yy[Be]=this.yy[Be]);Oe.setInput(Fe,be.yy),be.yy.lexer=Oe,be.yy.parser=this,typeof Oe.yylloc>"u"&&(Oe.yylloc={});var Ae=Oe.yylloc;ye.push(Ae);var Ve=Oe.options&&Oe.options.ranges;typeof be.yy.parseError=="function"?this.parseError=be.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pe(et){at.length=at.length-2*et,Ue.length=Ue.length-et,ye.length=ye.length-et}o(Pe,"popStack");function Ye(){var et;return et=qe.pop()||Oe.lex()||Re,typeof et!="number"&&(et instanceof Array&&(qe=et,et=qe.pop()),et=He.symbols_[et]||et),et}o(Ye,"lex");for(var le,st,me,ot,kt,Gt,Tt={},Et,yt,oe,ht;;){if(me=at[at.length-1],this.defaultActions[me]?ot=this.defaultActions[me]:((le===null||typeof le>"u")&&(le=Ye()),ot=ve[me]&&ve[me][le]),typeof ot>"u"||!ot.length||!ot[0]){var gt="";ht=[];for(Et in ve[me])this.terminals_[Et]&&Et>K&&ht.push("'"+this.terminals_[Et]+"'");Oe.showPosition?gt="Parse error on line "+(fe+1)+`: +`+Oe.showPosition()+` +Expecting `+ht.join(", ")+", got '"+(this.terminals_[le]||le)+"'":gt="Parse error on line "+(fe+1)+": Unexpected "+(le==Re?"end of input":"'"+(this.terminals_[le]||le)+"'"),this.parseError(gt,{text:Oe.match,token:this.terminals_[le]||le,line:Oe.yylineno,loc:Ae,expected:ht})}if(ot[0]instanceof Array&&ot.length>1)throw new Error("Parse Error: multiple actions possible at state: "+me+", token: "+le);switch(ot[0]){case 1:at.push(le),Ue.push(Oe.yytext),ye.push(Oe.yylloc),at.push(ot[1]),le=null,st?(le=st,st=null):(W=Oe.yyleng,ie=Oe.yytext,fe=Oe.yylineno,Ae=Oe.yylloc,ce>0&&ce--);break;case 2:if(yt=this.productions_[ot[1]][1],Tt.$=Ue[Ue.length-yt],Tt._$={first_line:ye[ye.length-(yt||1)].first_line,last_line:ye[ye.length-1].last_line,first_column:ye[ye.length-(yt||1)].first_column,last_column:ye[ye.length-1].last_column},Ve&&(Tt._$.range=[ye[ye.length-(yt||1)].range[0],ye[ye.length-1].range[1]]),Gt=this.performAction.apply(Tt,[ie,W,fe,be.yy,ot[1],Ue,ye].concat(xe)),typeof Gt<"u")return Gt;yt&&(at=at.slice(0,-1*yt*2),Ue=Ue.slice(0,-1*yt),ye=ye.slice(0,-1*yt)),at.push(this.productions_[ot[1]][0]),Ue.push(Tt.$),ye.push(Tt._$),oe=ve[at[at.length-2]][at[at.length-1]],at.push(oe);break;case 3:return!0}}return!0},"parse")},de=(function(){var ke={EOF:1,parseError:o(function(He,at){if(this.yy.parser)this.yy.parser.parseError(He,at);else throw new Error(He)},"parseError"),setInput:o(function(Fe,He){return this.yy=He||this.yy||{},this._input=Fe,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Fe=this._input[0];this.yytext+=Fe,this.yyleng++,this.offset++,this.match+=Fe,this.matched+=Fe;var He=Fe.match(/(?:\r\n?|\n).*/g);return He?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Fe},"input"),unput:o(function(Fe){var He=Fe.length,at=Fe.split(/(?:\r\n?|\n)/g);this._input=Fe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-He),this.offset-=He;var qe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),at.length-1&&(this.yylineno-=at.length-1);var Ue=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:at?(at.length===qe.length?this.yylloc.first_column:0)+qe[qe.length-at.length].length-at[0].length:this.yylloc.first_column-He},this.options.ranges&&(this.yylloc.range=[Ue[0],Ue[0]+this.yyleng-He]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Fe){this.unput(this.match.slice(Fe))},"less"),pastInput:o(function(){var Fe=this.matched.substr(0,this.matched.length-this.match.length);return(Fe.length>20?"...":"")+Fe.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Fe=this.match;return Fe.length<20&&(Fe+=this._input.substr(0,20-Fe.length)),(Fe.substr(0,20)+(Fe.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Fe=this.pastInput(),He=new Array(Fe.length+1).join("-");return Fe+this.upcomingInput()+` +`+He+"^"},"showPosition"),test_match:o(function(Fe,He){var at,qe,Ue;if(this.options.backtrack_lexer&&(Ue={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ue.yylloc.range=this.yylloc.range.slice(0))),qe=Fe[0].match(/(?:\r\n?|\n).*/g),qe&&(this.yylineno+=qe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:qe?qe[qe.length-1].length-qe[qe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Fe[0].length},this.yytext+=Fe[0],this.match+=Fe[0],this.matches=Fe,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Fe[0].length),this.matched+=Fe[0],at=this.performAction.call(this,this.yy,this,He,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),at)return at;if(this._backtrack){for(var ye in Ue)this[ye]=Ue[ye];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Fe,He,at,qe;this._more||(this.yytext="",this.match="");for(var Ue=this._currentRules(),ye=0;yeHe[0].length)){if(He=at,qe=ye,this.options.backtrack_lexer){if(Fe=this.test_match(at,Ue[ye]),Fe!==!1)return Fe;if(this._backtrack){He=!1;continue}else return!1}else if(!this.options.flex)break}return He?(Fe=this.test_match(He,Ue[qe]),Fe!==!1?Fe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var He=this.next();return He||this.lex()},"lex"),begin:o(function(He){this.conditionStack.push(He)},"begin"),popState:o(function(){var He=this.conditionStack.length-1;return He>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(He){return He=this.conditionStack.length-1-Math.abs(He||0),He>=0?this.conditionStack[He]:"INITIAL"},"topState"),pushState:o(function(He){this.begin(He)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(He,at,qe,Ue){var ye=Ue;switch(qe){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[65,66,67,68],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return ke})();$e.lexer=de;function rt(){this.yy={}}return o(rt,"Parser"),rt.prototype=$e,$e.Parser=rt,new rt})();kv.parser=kv;eX=kv});var uOe,hOe,Br,Io,Di=z(()=>{"use strict";St();uOe=o(function(e,t){for(let r of t)e.attr(r[0],r[1])},"d3Attrs"),hOe=o(function(e,t,r){let i=new Map;return r?(i.set("width","100%"),i.set("style",`max-width: ${t}px;`)):(i.set("height",e),i.set("width",t)),i},"calculateSvgSizeAttrs"),Br=o(function(e,t,r,i){let n=hOe(t,r,i);uOe(e,n)},"configureSvgSize"),Io=o(function(e,t,r,i){let n=t.node().getBBox(),a=n.width,s=n.height;Z.info(`SVG bounds: ${a}x${s}`,n);let l=0,u=0;Z.info(`Graph bounds: ${l}x${u}`,e),l=a+r*2,u=s+r*2,Z.info(`Calculated bounds: ${l}x${u}`),Br(t,u,l,i);let h=`${n.x-r} ${n.y-r} ${n.width+2*r} ${n.height+2*r}`;t.attr("viewBox",h)},"setupGraphViewbox")});function ID(e){return[...e.cssRules].map(t=>t.cssText).join(` +`)}var gk,dOe,tX,rX,OD=z(()=>{"use strict";St();gk={};o(ID,"cssStyleSheetToString");dOe=o((e,t,r,i)=>{let n="";return e in gk&&gk[e]?n=gk[e]({...r,svgId:i}):Z.warn(`No theme found for ${e}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + @keyframes edge-animation-frame { + from { + stroke-dashoffset: 0; + } + } + @keyframes dash { + to { + stroke-dashoffset: 0; + } + } + & .edge-animation-slow { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 50s linear infinite; + stroke-linecap: round; + } + & .edge-animation-fast { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 20s linear infinite; + stroke-linecap: round; + } + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: ${r.strokeWidth??1}px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${n} + .node .neo-node { + stroke: ${r.nodeBorder}; + } + + [data-look="neo"].node rect, [data-look="neo"].cluster rect, [data-look="neo"].node polygon { + stroke: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; + filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; + } + + + [data-look="neo"].node path { + stroke: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; + stroke-width: ${r.strokeWidth??1}px; + } + + [data-look="neo"].node .outer-path { + filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; + } + + [data-look="neo"].node .neo-line path { + stroke: ${r.nodeBorder}; + filter: none; + } + + [data-look="neo"].node circle{ + stroke: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; + filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; + } + + [data-look="neo"].node circle .state-start{ + fill: #000000; + } + + [data-look="neo"].icon-shape .icon { + fill: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; + filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; + } + + [data-look="neo"].icon-shape .icon-neo path { + stroke: ${r.useGradient?"url("+i+"-gradient)":r.nodeBorder}; + filter: ${r.dropShadow?r.dropShadow.replace("url(#drop-shadow)",`url(${i}-drop-shadow)`):"none"}; + } + + ${t} +`},"getStyles"),tX=o((e,t)=>{t!==void 0&&(gk[e]=t)},"addStylesForDiagram"),rX=dOe});var wv={};xr(wv,{clear:()=>gr,getAccDescription:()=>Sr,getAccTitle:()=>kr,getDiagramTitle:()=>Er,setAccDescription:()=>wr,setAccTitle:()=>Cr,setDiagramTitle:()=>Ar});var PD,BD,FD,$D,gr,Cr,kr,wr,Sr,Ar,Er,Ci=z(()=>{"use strict";Ir();br();PD="",BD="",FD="",$D=o(e=>fr(e,Nt()),"sanitizeText"),gr=o(()=>{PD="",FD="",BD=""},"clear"),Cr=o(e=>{PD=$D(e).replace(/^\s+/g,"")},"setAccTitle"),kr=o(()=>PD,"getAccTitle"),wr=o(e=>{FD=$D(e).replace(/\n\s+/g,` +`)},"setAccDescription"),Sr=o(()=>FD,"getAccDescription"),Ar=o(e=>{BD=$D(e)},"setDiagramTitle"),Er=o(()=>BD,"getDiagramTitle")});var iX,fOe,ge,Sv,vk,Ev,Av,pOe,yk,Kf,_v,zD,Ut=z(()=>{"use strict";Xf();St();br();Ir();Di();OD();Ci();iX=Z,fOe=Zy,ge=Nt,Sv=OC,vk=Ph,Ev=o(e=>fr(e,ge()),"sanitizeText"),Av=Io,pOe=o(()=>wv,"getCommonDb"),yk={},Kf=o((e,t,r)=>{yk[e]&&iX.warn(`Diagram with id ${e} already registered. Overwriting.`),yk[e]=t,r&&MD(e,r),tX(e,t.styles),t.injectUtils?.(iX,fOe,ge,Ev,Av,pOe(),()=>{})},"registerDiagram"),_v=o(e=>{if(e in yk)return yk[e];throw new zD(e)},"getDiagram"),zD=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(t){super(`Diagram ${t} not found.`)}}});var yl,Vh,Xa,gl,hc,Dv,GD,VD,xk,bk,nX,mOe,gOe,yOe,vOe,xOe,bOe,TOe,COe,kOe,wOe,SOe,EOe,AOe,_Oe,DOe,ROe,LOe,aX,MOe,NOe,sX,IOe,OOe,POe,BOe,Wh,FOe,$Oe,zOe,GOe,VOe,Rv,WD=z(()=>{"use strict";Ut();Ir();Ci();yl=[],Vh=[""],Xa="global",gl="",hc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Dv=[],GD="",VD=!1,xk=4,bk=2,mOe=o(function(){return nX},"getC4Type"),gOe=o(function(e){nX=fr(e,ge())},"setC4Type"),yOe=o(function(e,t,r,i,n,a,s,l,u){if(e==null||t===void 0||t===null||r===void 0||r===null||i===void 0||i===null)return;let h={},d=Dv.find(f=>f.from===t&&f.to===r);if(d?h=d:Dv.push(h),h.type=e,h.from=t,h.to=r,h.label={text:i},n==null)h.techn={text:""};else if(typeof n=="object"){let[f,p]=Object.entries(n)[0];h[f]={text:p}}else h.techn={text:n};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[f,p]=Object.entries(a)[0];h[f]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[f,p]=Object.entries(s)[0];h[f]=p}else h.sprite=s;if(typeof l=="object"){let[f,p]=Object.entries(l)[0];h[f]=p}else h.tags=l;if(typeof u=="object"){let[f,p]=Object.entries(u)[0];h[f]=p}else h.link=u;h.wrap=Wh()},"addRel"),vOe=o(function(e,t,r,i,n,a,s){if(t===null||r===null)return;let l={},u=yl.find(h=>h.alias===t);if(u&&t===u.alias?l=u:(l.alias=t,yl.push(l)),r==null?l.label={text:""}:l.label={text:r},i==null)l.descr={text:""};else if(typeof i=="object"){let[h,d]=Object.entries(i)[0];l[h]={text:d}}else l.descr={text:i};if(typeof n=="object"){let[h,d]=Object.entries(n)[0];l[h]=d}else l.sprite=n;if(typeof a=="object"){let[h,d]=Object.entries(a)[0];l[h]=d}else l.tags=a;if(typeof s=="object"){let[h,d]=Object.entries(s)[0];l[h]=d}else l.link=s;l.typeC4Shape={text:e},l.parentBoundary=Xa,l.wrap=Wh()},"addPersonOrSystem"),xOe=o(function(e,t,r,i,n,a,s,l){if(t===null||r===null)return;let u={},h=yl.find(d=>d.alias===t);if(h&&t===h.alias?u=h:(u.alias=t,yl.push(u)),r==null?u.label={text:""}:u.label={text:r},i==null)u.techn={text:""};else if(typeof i=="object"){let[d,f]=Object.entries(i)[0];u[d]={text:f}}else u.techn={text:i};if(n==null)u.descr={text:""};else if(typeof n=="object"){let[d,f]=Object.entries(n)[0];u[d]={text:f}}else u.descr={text:n};if(typeof a=="object"){let[d,f]=Object.entries(a)[0];u[d]=f}else u.sprite=a;if(typeof s=="object"){let[d,f]=Object.entries(s)[0];u[d]=f}else u.tags=s;if(typeof l=="object"){let[d,f]=Object.entries(l)[0];u[d]=f}else u.link=l;u.wrap=Wh(),u.typeC4Shape={text:e},u.parentBoundary=Xa},"addContainer"),bOe=o(function(e,t,r,i,n,a,s,l){if(t===null||r===null)return;let u={},h=yl.find(d=>d.alias===t);if(h&&t===h.alias?u=h:(u.alias=t,yl.push(u)),r==null?u.label={text:""}:u.label={text:r},i==null)u.techn={text:""};else if(typeof i=="object"){let[d,f]=Object.entries(i)[0];u[d]={text:f}}else u.techn={text:i};if(n==null)u.descr={text:""};else if(typeof n=="object"){let[d,f]=Object.entries(n)[0];u[d]={text:f}}else u.descr={text:n};if(typeof a=="object"){let[d,f]=Object.entries(a)[0];u[d]=f}else u.sprite=a;if(typeof s=="object"){let[d,f]=Object.entries(s)[0];u[d]=f}else u.tags=s;if(typeof l=="object"){let[d,f]=Object.entries(l)[0];u[d]=f}else u.link=l;u.wrap=Wh(),u.typeC4Shape={text:e},u.parentBoundary=Xa},"addComponent"),TOe=o(function(e,t,r,i,n){if(e===null||t===null)return;let a={},s=hc.find(l=>l.alias===e);if(s&&e===s.alias?a=s:(a.alias=e,hc.push(a)),t==null?a.label={text:""}:a.label={text:t},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.tags=i;if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.link=n;a.parentBoundary=Xa,a.wrap=Wh(),gl=Xa,Xa=e,Vh.push(gl)},"addPersonOrSystemBoundary"),COe=o(function(e,t,r,i,n){if(e===null||t===null)return;let a={},s=hc.find(l=>l.alias===e);if(s&&e===s.alias?a=s:(a.alias=e,hc.push(a)),t==null?a.label={text:""}:a.label={text:t},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.tags=i;if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.link=n;a.parentBoundary=Xa,a.wrap=Wh(),gl=Xa,Xa=e,Vh.push(gl)},"addContainerBoundary"),kOe=o(function(e,t,r,i,n,a,s,l){if(t===null||r===null)return;let u={},h=hc.find(d=>d.alias===t);if(h&&t===h.alias?u=h:(u.alias=t,hc.push(u)),r==null?u.label={text:""}:u.label={text:r},i==null)u.type={text:"node"};else if(typeof i=="object"){let[d,f]=Object.entries(i)[0];u[d]={text:f}}else u.type={text:i};if(n==null)u.descr={text:""};else if(typeof n=="object"){let[d,f]=Object.entries(n)[0];u[d]={text:f}}else u.descr={text:n};if(typeof s=="object"){let[d,f]=Object.entries(s)[0];u[d]=f}else u.tags=s;if(typeof l=="object"){let[d,f]=Object.entries(l)[0];u[d]=f}else u.link=l;u.nodeType=e,u.parentBoundary=Xa,u.wrap=Wh(),gl=Xa,Xa=t,Vh.push(gl)},"addDeploymentNode"),wOe=o(function(){Xa=gl,Vh.pop(),gl=Vh.pop(),Vh.push(gl)},"popBoundaryParseStack"),SOe=o(function(e,t,r,i,n,a,s,l,u,h,d){let f=yl.find(p=>p.alias===t);if(!(f===void 0&&(f=hc.find(p=>p.alias===t),f===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];f[p]=m}else f.bgColor=r;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];f[p]=m}else f.fontColor=i;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];f[p]=m}else f.borderColor=n;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];f[p]=m}else f.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];f[p]=m}else f.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];f[p]=m}else f.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];f[p]=m}else f.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];f[p]=m}else f.legendText=h;if(d!=null)if(typeof d=="object"){let[p,m]=Object.entries(d)[0];f[p]=m}else f.legendSprite=d}},"updateElStyle"),EOe=o(function(e,t,r,i,n,a,s){let l=Dv.find(u=>u.from===t&&u.to===r);if(l!==void 0){if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.textColor=i;if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.lineColor=n;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),AOe=o(function(e,t,r){let i=xk,n=bk;if(typeof t=="object"){let a=Object.values(t)[0];i=parseInt(a)}else i=parseInt(t);if(typeof r=="object"){let a=Object.values(r)[0];n=parseInt(a)}else n=parseInt(r);i>=1&&(xk=i),n>=1&&(bk=n)},"updateLayoutConfig"),_Oe=o(function(){return xk},"getC4ShapeInRow"),DOe=o(function(){return bk},"getC4BoundaryInRow"),ROe=o(function(){return Xa},"getCurrentBoundaryParse"),LOe=o(function(){return gl},"getParentBoundaryParse"),aX=o(function(e){return e==null?yl:yl.filter(t=>t.parentBoundary===e)},"getC4ShapeArray"),MOe=o(function(e){return yl.find(t=>t.alias===e)},"getC4Shape"),NOe=o(function(e){return Object.keys(aX(e))},"getC4ShapeKeys"),sX=o(function(e){return e==null?hc:hc.filter(t=>t.parentBoundary===e)},"getBoundaries"),IOe=sX,OOe=o(function(){return Dv},"getRels"),POe=o(function(){return GD},"getTitle"),BOe=o(function(e){VD=e},"setWrap"),Wh=o(function(){return VD},"autoWrap"),FOe=o(function(){yl=[],hc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],gl="",Xa="global",Vh=[""],Dv=[],Vh=[""],GD="",VD=!1,xk=4,bk=2},"clear"),$Oe={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},zOe={FILLED:0,OPEN:1},GOe={LEFTOF:0,RIGHTOF:1,OVER:2},VOe=o(function(e){GD=fr(e,ge())},"setTitle"),Rv={addPersonOrSystem:vOe,addPersonOrSystemBoundary:TOe,addContainer:xOe,addContainerBoundary:COe,addComponent:bOe,addDeploymentNode:kOe,popBoundaryParseStack:wOe,addRel:yOe,updateElStyle:SOe,updateRelStyle:EOe,updateLayoutConfig:AOe,autoWrap:Wh,setWrap:BOe,getC4ShapeArray:aX,getC4Shape:MOe,getC4ShapeKeys:NOe,getBoundaries:sX,getBoundarys:IOe,getCurrentBoundaryParse:ROe,getParentBoundaryParse:LOe,getRels:OOe,getTitle:POe,getC4Type:mOe,getC4ShapeInRow:_Oe,getC4BoundaryInRow:DOe,setAccTitle:Cr,getAccTitle:kr,getAccDescription:Sr,setAccDescription:wr,getConfig:o(()=>ge().c4,"getConfig"),clear:FOe,LINETYPE:$Oe,ARROWTYPE:zOe,PLACEMENT:GOe,setTitle:VOe,setC4Type:gOe}});function Zf(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}var qD=z(()=>{"use strict";o(Zf,"ascending")});function UD(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}var oX=z(()=>{"use strict";o(UD,"descending")});function Qf(e){let t,r,i;e.length!==2?(t=Zf,r=o((l,u)=>Zf(e(l),u),"compare2"),i=o((l,u)=>e(l)-u,"delta")):(t=e===Zf||e===UD?e:WOe,r=e,i=e);function n(l,u,h=0,d=l.length){if(h>>1;r(l[f],u)<0?h=f+1:d=f}while(h>>1;r(l[f],u)<=0?h=f+1:d=f}while(hh&&i(l[f-1],u)>-i(l[f],u)?f-1:f}return o(s,"center"),{left:n,center:s,right:a}}function WOe(){return 0}var HD=z(()=>{"use strict";qD();oX();o(Qf,"bisector");o(WOe,"zero")});function YD(e){return e===null?NaN:+e}var lX=z(()=>{"use strict";o(YD,"number")});var cX,uX,qOe,UOe,jD,hX=z(()=>{"use strict";qD();HD();lX();cX=Qf(Zf),uX=cX.right,qOe=cX.left,UOe=Qf(YD).center,jD=uX});function dX({_intern:e,_key:t},r){let i=t(r);return e.has(i)?e.get(i):r}function HOe({_intern:e,_key:t},r){let i=t(r);return e.has(i)?e.get(i):(e.set(i,r),r)}function YOe({_intern:e,_key:t},r){let i=t(r);return e.has(i)&&(r=e.get(i),e.delete(i)),r}function jOe(e){return e!==null&&typeof e=="object"?e.valueOf():e}var Gm,fX=z(()=>{"use strict";Gm=class extends Map{static{o(this,"InternMap")}constructor(t,r=jOe){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[i,n]of t)this.set(i,n)}get(t){return super.get(dX(this,t))}has(t){return super.has(dX(this,t))}set(t,r){return super.set(HOe(this,t),r)}delete(t){return super.delete(YOe(this,t))}};o(dX,"intern_get");o(HOe,"intern_set");o(YOe,"intern_delete");o(jOe,"keyof")});function Tk(e,t,r){let i=(t-e)/Math.max(0,r),n=Math.floor(Math.log10(i)),a=i/Math.pow(10,n),s=a>=XOe?10:a>=KOe?5:a>=ZOe?2:1,l,u,h;return n<0?(h=Math.pow(10,-n)/s,l=Math.round(e*h),u=Math.round(t*h),l/ht&&--u,h=-h):(h=Math.pow(10,n)*s,l=Math.round(e/h),u=Math.round(t/h),l*ht&&--u),u0))return[];if(e===t)return[e];let i=t=n))return[];let l=a-n+1,u=new Array(l);if(i)if(s<0)for(let h=0;h{"use strict";XOe=Math.sqrt(50),KOe=Math.sqrt(10),ZOe=Math.sqrt(2);o(Tk,"tickSpec");o(Ck,"ticks");o(Lv,"tickIncrement");o(Vm,"tickStep")});function kk(e,t){let r;if(t===void 0)for(let i of e)i!=null&&(r=i)&&(r=i);else{let i=-1;for(let n of e)(n=t(n,++i,e))!=null&&(r=n)&&(r=n)}return r}var mX=z(()=>{"use strict";o(kk,"max")});function wk(e,t){let r;if(t===void 0)for(let i of e)i!=null&&(r>i||r===void 0&&i>=i)&&(r=i);else{let i=-1;for(let n of e)(n=t(n,++i,e))!=null&&(r>n||r===void 0&&n>=n)&&(r=n)}return r}var gX=z(()=>{"use strict";o(wk,"min")});function Sk(e,t,r){e=+e,t=+t,r=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+r;for(var i=-1,n=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(n);++i{"use strict";o(Sk,"range")});var qh=z(()=>{"use strict";hX();HD();mX();gX();yX();pX();fX()});function XD(e){return e}var vX=z(()=>{"use strict";o(XD,"default")});function QOe(e){return"translate("+e+",0)"}function JOe(e){return"translate(0,"+e+")"}function ePe(e){return t=>+e(t)}function tPe(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),r=>+e(r)+t}function rPe(){return!this.__axis}function bX(e,t){var r=[],i=null,n=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=e===Ak||e===Ek?-1:1,d=e===Ek||e===KD?"x":"y",f=e===Ak||e===ZD?QOe:JOe;function p(m){var g=i??(t.ticks?t.ticks.apply(t,r):t.domain()),y=n??(t.tickFormat?t.tickFormat.apply(t,r):XD),v=Math.max(a,0)+l,x=t.range(),b=+x[0]+u,T=+x[x.length-1]+u,w=(t.bandwidth?tPe:ePe)(t.copy(),u),C=m.selection?m.selection():m,k=C.selectAll(".domain").data([null]),E=C.selectAll(".tick").data(g,t).order(),A=E.exit(),N=E.enter().append("g").attr("class","tick"),P=E.select("line"),I=E.select("text");k=k.merge(k.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),E=E.merge(N),P=P.merge(N.append("line").attr("stroke","currentColor").attr(d+"2",h*a)),I=I.merge(N.append("text").attr("fill","currentColor").attr(d,h*v).attr("dy",e===Ak?"0em":e===ZD?"0.71em":"0.32em")),m!==C&&(k=k.transition(m),E=E.transition(m),P=P.transition(m),I=I.transition(m),A=A.transition(m).attr("opacity",xX).attr("transform",function(D){return isFinite(D=w(D))?f(D+u):this.getAttribute("transform")}),N.attr("opacity",xX).attr("transform",function(D){var _=this.parentNode.__axis;return f((_&&isFinite(_=_(D))?_:w(D))+u)})),A.remove(),k.attr("d",e===Ek||e===KD?s?"M"+h*s+","+b+"H"+u+"V"+T+"H"+h*s:"M"+u+","+b+"V"+T:s?"M"+b+","+h*s+"V"+u+"H"+T+"V"+h*s:"M"+b+","+u+"H"+T),E.attr("opacity",1).attr("transform",function(D){return f(w(D)+u)}),P.attr(d+"2",h*a),I.attr(d,h*v).text(y),C.filter(rPe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",e===KD?"start":e===Ek?"end":"middle"),C.each(function(){this.__axis=w})}return o(p,"axis"),p.scale=function(m){return arguments.length?(t=m,p):t},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(i=m==null?null:Array.from(m),p):i&&i.slice()},p.tickFormat=function(m){return arguments.length?(n=m,p):n},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function QD(e){return bX(Ak,e)}function JD(e){return bX(ZD,e)}var Ak,KD,ZD,Ek,xX,TX=z(()=>{"use strict";vX();Ak=1,KD=2,ZD=3,Ek=4,xX=1e-6;o(QOe,"translateX");o(JOe,"translateY");o(ePe,"number");o(tPe,"center");o(rPe,"entering");o(bX,"axis");o(QD,"axisTop");o(JD,"axisBottom")});var CX=z(()=>{"use strict";TX()});function wX(){for(var e=0,t=arguments.length,r={},i;e=0&&(i=r.slice(n+1),r=r.slice(0,n)),r&&!t.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}function aPe(e,t){for(var r=0,i=e.length,n;r{"use strict";iPe={value:o(()=>{},"value")};o(wX,"dispatch");o(_k,"Dispatch");o(nPe,"parseTypenames");_k.prototype=wX.prototype={constructor:_k,on:o(function(e,t){var r=this._,i=nPe(e+"",r),n,a=-1,s=i.length;if(arguments.length<2){for(;++a0)for(var r=new Array(n),i=0,n,a;i{"use strict";SX()});var Dk,r8,i8=z(()=>{"use strict";Dk="http://www.w3.org/1999/xhtml",r8={svg:"http://www.w3.org/2000/svg",xhtml:Dk,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function dc(e){var t=e+="",r=t.indexOf(":");return r>=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),r8.hasOwnProperty(t)?{space:r8[t],local:e}:e}var Rk=z(()=>{"use strict";i8();o(dc,"default")});function sPe(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===Dk&&t.documentElement.namespaceURI===Dk?t.createElement(e):t.createElementNS(r,e)}}function oPe(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Mv(e){var t=dc(e);return(t.local?oPe:sPe)(t)}var n8=z(()=>{"use strict";Rk();i8();o(sPe,"creatorInherit");o(oPe,"creatorFixed");o(Mv,"default")});function lPe(){}function Uh(e){return e==null?lPe:function(){return this.querySelector(e)}}var Lk=z(()=>{"use strict";o(lPe,"none");o(Uh,"default")});function a8(e){typeof e!="function"&&(e=Uh(e));for(var t=this._groups,r=t.length,i=new Array(r),n=0;n{"use strict";vl();Lk();o(a8,"default")});function s8(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}var AX=z(()=>{"use strict";o(s8,"array")});function cPe(){return[]}function Wm(e){return e==null?cPe:function(){return this.querySelectorAll(e)}}var o8=z(()=>{"use strict";o(cPe,"empty");o(Wm,"default")});function uPe(e){return function(){return s8(e.apply(this,arguments))}}function l8(e){typeof e=="function"?e=uPe(e):e=Wm(e);for(var t=this._groups,r=t.length,i=[],n=[],a=0;a{"use strict";vl();AX();o8();o(uPe,"arrayAll");o(l8,"default")});function qm(e){return function(){return this.matches(e)}}function Mk(e){return function(t){return t.matches(e)}}var Nv=z(()=>{"use strict";o(qm,"default");o(Mk,"childMatcher")});function dPe(e){return function(){return hPe.call(this.children,e)}}function fPe(){return this.firstElementChild}function c8(e){return this.select(e==null?fPe:dPe(typeof e=="function"?e:Mk(e)))}var hPe,DX=z(()=>{"use strict";Nv();hPe=Array.prototype.find;o(dPe,"childFind");o(fPe,"childFirst");o(c8,"default")});function mPe(){return Array.from(this.children)}function gPe(e){return function(){return pPe.call(this.children,e)}}function u8(e){return this.selectAll(e==null?mPe:gPe(typeof e=="function"?e:Mk(e)))}var pPe,RX=z(()=>{"use strict";Nv();pPe=Array.prototype.filter;o(mPe,"children");o(gPe,"childrenFilter");o(u8,"default")});function h8(e){typeof e!="function"&&(e=qm(e));for(var t=this._groups,r=t.length,i=new Array(r),n=0;n{"use strict";vl();Nv();o(h8,"default")});function Iv(e){return new Array(e.length)}var d8=z(()=>{"use strict";o(Iv,"default")});function f8(){return new sn(this._enter||this._groups.map(Iv),this._parents)}function Ov(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}var p8=z(()=>{"use strict";d8();vl();o(f8,"default");o(Ov,"EnterNode");Ov.prototype={constructor:Ov,appendChild:o(function(e){return this._parent.insertBefore(e,this._next)},"appendChild"),insertBefore:o(function(e,t){return this._parent.insertBefore(e,t)},"insertBefore"),querySelector:o(function(e){return this._parent.querySelector(e)},"querySelector"),querySelectorAll:o(function(e){return this._parent.querySelectorAll(e)},"querySelectorAll")}});function m8(e){return function(){return e}}var MX=z(()=>{"use strict";o(m8,"default")});function yPe(e,t,r,i,n,a){for(var s=0,l,u=t.length,h=a.length;s=T&&(T=b+1);!(C=v[T])&&++T{"use strict";vl();p8();MX();o(yPe,"bindIndex");o(vPe,"bindKey");o(xPe,"datum");o(g8,"default");o(bPe,"arraylike")});function y8(){return new sn(this._exit||this._groups.map(Iv),this._parents)}var IX=z(()=>{"use strict";d8();vl();o(y8,"default")});function v8(e,t,r){var i=this.enter(),n=this,a=this.exit();return typeof e=="function"?(i=e(i),i&&(i=i.selection())):i=i.append(e+""),t!=null&&(n=t(n),n&&(n=n.selection())),r==null?a.remove():r(a),i&&n?i.merge(n).order():n}var OX=z(()=>{"use strict";o(v8,"default")});function x8(e){for(var t=e.selection?e.selection():e,r=this._groups,i=t._groups,n=r.length,a=i.length,s=Math.min(n,a),l=new Array(n),u=0;u{"use strict";vl();o(x8,"default")});function b8(){for(var e=this._groups,t=-1,r=e.length;++t=0;)(s=i[n])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var BX=z(()=>{"use strict";o(b8,"default")});function T8(e){e||(e=TPe);function t(f,p){return f&&p?e(f.__data__,p.__data__):!f-!p}o(t,"compareNode");for(var r=this._groups,i=r.length,n=new Array(i),a=0;at?1:e>=t?0:NaN}var FX=z(()=>{"use strict";vl();o(T8,"default");o(TPe,"ascending")});function C8(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}var $X=z(()=>{"use strict";o(C8,"default")});function k8(){return Array.from(this)}var zX=z(()=>{"use strict";o(k8,"default")});function w8(){for(var e=this._groups,t=0,r=e.length;t{"use strict";o(w8,"default")});function S8(){let e=0;for(let t of this)++e;return e}var VX=z(()=>{"use strict";o(S8,"default")});function E8(){return!this.node()}var WX=z(()=>{"use strict";o(E8,"default")});function A8(e){for(var t=this._groups,r=0,i=t.length;r{"use strict";o(A8,"default")});function CPe(e){return function(){this.removeAttribute(e)}}function kPe(e){return function(){this.removeAttributeNS(e.space,e.local)}}function wPe(e,t){return function(){this.setAttribute(e,t)}}function SPe(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function EPe(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function APe(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function _8(e,t){var r=dc(e);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((t==null?r.local?kPe:CPe:typeof t=="function"?r.local?APe:EPe:r.local?SPe:wPe)(r,t))}var UX=z(()=>{"use strict";Rk();o(CPe,"attrRemove");o(kPe,"attrRemoveNS");o(wPe,"attrConstant");o(SPe,"attrConstantNS");o(EPe,"attrFunction");o(APe,"attrFunctionNS");o(_8,"default")});function Pv(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}var D8=z(()=>{"use strict";o(Pv,"default")});function _Pe(e){return function(){this.style.removeProperty(e)}}function DPe(e,t,r){return function(){this.style.setProperty(e,t,r)}}function RPe(e,t,r){return function(){var i=t.apply(this,arguments);i==null?this.style.removeProperty(e):this.style.setProperty(e,i,r)}}function R8(e,t,r){return arguments.length>1?this.each((t==null?_Pe:typeof t=="function"?RPe:DPe)(e,t,r??"")):Hh(this.node(),e)}function Hh(e,t){return e.style.getPropertyValue(t)||Pv(e).getComputedStyle(e,null).getPropertyValue(t)}var L8=z(()=>{"use strict";D8();o(_Pe,"styleRemove");o(DPe,"styleConstant");o(RPe,"styleFunction");o(R8,"default");o(Hh,"styleValue")});function LPe(e){return function(){delete this[e]}}function MPe(e,t){return function(){this[e]=t}}function NPe(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function M8(e,t){return arguments.length>1?this.each((t==null?LPe:typeof t=="function"?NPe:MPe)(e,t)):this.node()[e]}var HX=z(()=>{"use strict";o(LPe,"propertyRemove");o(MPe,"propertyConstant");o(NPe,"propertyFunction");o(M8,"default")});function YX(e){return e.trim().split(/^|\s+/)}function N8(e){return e.classList||new jX(e)}function jX(e){this._node=e,this._names=YX(e.getAttribute("class")||"")}function XX(e,t){for(var r=N8(e),i=-1,n=t.length;++i{"use strict";o(YX,"classArray");o(N8,"classList");o(jX,"ClassList");jX.prototype={add:o(function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(e){return this._names.indexOf(e)>=0},"contains")};o(XX,"classedAdd");o(KX,"classedRemove");o(IPe,"classedTrue");o(OPe,"classedFalse");o(PPe,"classedFunction");o(I8,"default")});function BPe(){this.textContent=""}function FPe(e){return function(){this.textContent=e}}function $Pe(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function O8(e){return arguments.length?this.each(e==null?BPe:(typeof e=="function"?$Pe:FPe)(e)):this.node().textContent}var QX=z(()=>{"use strict";o(BPe,"textRemove");o(FPe,"textConstant");o($Pe,"textFunction");o(O8,"default")});function zPe(){this.innerHTML=""}function GPe(e){return function(){this.innerHTML=e}}function VPe(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function P8(e){return arguments.length?this.each(e==null?zPe:(typeof e=="function"?VPe:GPe)(e)):this.node().innerHTML}var JX=z(()=>{"use strict";o(zPe,"htmlRemove");o(GPe,"htmlConstant");o(VPe,"htmlFunction");o(P8,"default")});function WPe(){this.nextSibling&&this.parentNode.appendChild(this)}function B8(){return this.each(WPe)}var eK=z(()=>{"use strict";o(WPe,"raise");o(B8,"default")});function qPe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function F8(){return this.each(qPe)}var tK=z(()=>{"use strict";o(qPe,"lower");o(F8,"default")});function $8(e){var t=typeof e=="function"?e:Mv(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}var rK=z(()=>{"use strict";n8();o($8,"default")});function UPe(){return null}function z8(e,t){var r=typeof e=="function"?e:Mv(e),i=t==null?UPe:typeof t=="function"?t:Uh(t);return this.select(function(){return this.insertBefore(r.apply(this,arguments),i.apply(this,arguments)||null)})}var iK=z(()=>{"use strict";n8();Lk();o(UPe,"constantNull");o(z8,"default")});function HPe(){var e=this.parentNode;e&&e.removeChild(this)}function G8(){return this.each(HPe)}var nK=z(()=>{"use strict";o(HPe,"remove");o(G8,"default")});function YPe(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function jPe(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function V8(e){return this.select(e?jPe:YPe)}var aK=z(()=>{"use strict";o(YPe,"selection_cloneShallow");o(jPe,"selection_cloneDeep");o(V8,"default")});function W8(e){return arguments.length?this.property("__data__",e):this.node().__data__}var sK=z(()=>{"use strict";o(W8,"default")});function XPe(e){return function(t){e.call(this,t,this.__data__)}}function KPe(e){return e.trim().split(/^|\s+/).map(function(t){var r="",i=t.indexOf(".");return i>=0&&(r=t.slice(i+1),t=t.slice(0,i)),{type:t,name:r}})}function ZPe(e){return function(){var t=this.__on;if(t){for(var r=0,i=-1,n=t.length,a;r{"use strict";o(XPe,"contextListener");o(KPe,"parseTypenames");o(ZPe,"onRemove");o(QPe,"onAdd");o(q8,"default")});function lK(e,t,r){var i=Pv(e),n=i.CustomEvent;typeof n=="function"?n=new n(t,r):(n=i.document.createEvent("Event"),r?(n.initEvent(t,r.bubbles,r.cancelable),n.detail=r.detail):n.initEvent(t,!1,!1)),e.dispatchEvent(n)}function JPe(e,t){return function(){return lK(this,e,t)}}function eBe(e,t){return function(){return lK(this,e,t.apply(this,arguments))}}function U8(e,t){return this.each((typeof t=="function"?eBe:JPe)(e,t))}var cK=z(()=>{"use strict";D8();o(lK,"dispatchEvent");o(JPe,"dispatchConstant");o(eBe,"dispatchFunction");o(U8,"default")});function*H8(){for(var e=this._groups,t=0,r=e.length;t{"use strict";o(H8,"default")});function sn(e,t){this._groups=e,this._parents=t}function hK(){return new sn([[document.documentElement]],Y8)}function tBe(){return this}var Y8,wu,vl=z(()=>{"use strict";EX();_X();DX();RX();LX();NX();p8();IX();OX();PX();BX();FX();$X();zX();GX();VX();WX();qX();UX();L8();HX();ZX();QX();JX();eK();tK();rK();iK();nK();aK();sK();oK();cK();uK();Y8=[null];o(sn,"Selection");o(hK,"selection");o(tBe,"selection_selection");sn.prototype=hK.prototype={constructor:sn,select:a8,selectAll:l8,selectChild:c8,selectChildren:u8,filter:h8,data:g8,enter:f8,exit:y8,join:v8,merge:x8,selection:tBe,order:b8,sort:T8,call:C8,nodes:k8,node:w8,size:S8,empty:E8,each:A8,attr:_8,style:R8,property:M8,classed:I8,text:O8,html:P8,raise:B8,lower:F8,append:$8,insert:z8,remove:G8,clone:V8,datum:W8,on:q8,dispatch:U8,[Symbol.iterator]:H8};wu=hK});function Je(e){return typeof e=="string"?new sn([[document.querySelector(e)]],[document.documentElement]):new sn([[e]],Y8)}var dK=z(()=>{"use strict";vl();o(Je,"default")});var xl=z(()=>{"use strict";Nv();Rk();dK();vl();Lk();o8();L8()});var fK=z(()=>{"use strict"});function Yh(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function Um(e,t){var r=Object.create(e.prototype);for(var i in t)r[i]=t[i];return r}var j8=z(()=>{"use strict";o(Yh,"default");o(Um,"extend")});function jh(){}function mK(){return this.rgb().formatHex()}function cBe(){return this.rgb().formatHex8()}function uBe(){return CK(this).formatHsl()}function gK(){return this.rgb().formatRgb()}function Tl(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=rBe.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?yK(t):r===3?new ua(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Nk(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Nk(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=iBe.exec(e))?new ua(t[1],t[2],t[3],1):(t=nBe.exec(e))?new ua(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=aBe.exec(e))?Nk(t[1],t[2],t[3],t[4]):(t=sBe.exec(e))?Nk(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=oBe.exec(e))?bK(t[1],t[2]/100,t[3]/100,1):(t=lBe.exec(e))?bK(t[1],t[2]/100,t[3]/100,t[4]):pK.hasOwnProperty(e)?yK(pK[e]):e==="transparent"?new ua(NaN,NaN,NaN,0):null}function yK(e){return new ua(e>>16&255,e>>8&255,e&255,1)}function Nk(e,t,r,i){return i<=0&&(e=t=r=NaN),new ua(e,t,r,i)}function K8(e){return e instanceof jh||(e=Tl(e)),e?(e=e.rgb(),new ua(e.r,e.g,e.b,e.opacity)):new ua}function Ym(e,t,r,i){return arguments.length===1?K8(e):new ua(e,t,r,i??1)}function ua(e,t,r,i){this.r=+e,this.g=+t,this.b=+r,this.opacity=+i}function vK(){return`#${Jf(this.r)}${Jf(this.g)}${Jf(this.b)}`}function hBe(){return`#${Jf(this.r)}${Jf(this.g)}${Jf(this.b)}${Jf((isNaN(this.opacity)?1:this.opacity)*255)}`}function xK(){let e=Pk(this.opacity);return`${e===1?"rgb(":"rgba("}${ep(this.r)}, ${ep(this.g)}, ${ep(this.b)}${e===1?")":`, ${e})`}`}function Pk(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ep(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Jf(e){return e=ep(e),(e<16?"0":"")+e.toString(16)}function bK(e,t,r,i){return i<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new bl(e,t,r,i)}function CK(e){if(e instanceof bl)return new bl(e.h,e.s,e.l,e.opacity);if(e instanceof jh||(e=Tl(e)),!e)return new bl;if(e instanceof bl)return e;e=e.rgb();var t=e.r/255,r=e.g/255,i=e.b/255,n=Math.min(t,r,i),a=Math.max(t,r,i),s=NaN,l=a-n,u=(a+n)/2;return l?(t===a?s=(r-i)/l+(r0&&u<1?0:s,new bl(s,l,u,e.opacity)}function kK(e,t,r,i){return arguments.length===1?CK(e):new bl(e,t,r,i??1)}function bl(e,t,r,i){this.h=+e,this.s=+t,this.l=+r,this.opacity=+i}function TK(e){return e=(e||0)%360,e<0?e+360:e}function Ik(e){return Math.max(0,Math.min(1,e||0))}function X8(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}var Bv,Ok,Hm,Fv,fc,rBe,iBe,nBe,aBe,sBe,oBe,lBe,pK,Z8=z(()=>{"use strict";j8();o(jh,"Color");Bv=.7,Ok=1/Bv,Hm="\\s*([+-]?\\d+)\\s*",Fv="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",fc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",rBe=/^#([0-9a-f]{3,8})$/,iBe=new RegExp(`^rgb\\(${Hm},${Hm},${Hm}\\)$`),nBe=new RegExp(`^rgb\\(${fc},${fc},${fc}\\)$`),aBe=new RegExp(`^rgba\\(${Hm},${Hm},${Hm},${Fv}\\)$`),sBe=new RegExp(`^rgba\\(${fc},${fc},${fc},${Fv}\\)$`),oBe=new RegExp(`^hsl\\(${Fv},${fc},${fc}\\)$`),lBe=new RegExp(`^hsla\\(${Fv},${fc},${fc},${Fv}\\)$`),pK={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Yh(jh,Tl,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:mK,formatHex:mK,formatHex8:cBe,formatHsl:uBe,formatRgb:gK,toString:gK});o(mK,"color_formatHex");o(cBe,"color_formatHex8");o(uBe,"color_formatHsl");o(gK,"color_formatRgb");o(Tl,"color");o(yK,"rgbn");o(Nk,"rgba");o(K8,"rgbConvert");o(Ym,"rgb");o(ua,"Rgb");Yh(ua,Ym,Um(jh,{brighter(e){return e=e==null?Ok:Math.pow(Ok,e),new ua(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Bv:Math.pow(Bv,e),new ua(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ua(ep(this.r),ep(this.g),ep(this.b),Pk(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vK,formatHex:vK,formatHex8:hBe,formatRgb:xK,toString:xK}));o(vK,"rgb_formatHex");o(hBe,"rgb_formatHex8");o(xK,"rgb_formatRgb");o(Pk,"clampa");o(ep,"clampi");o(Jf,"hex");o(bK,"hsla");o(CK,"hslConvert");o(kK,"hsl");o(bl,"Hsl");Yh(bl,kK,Um(jh,{brighter(e){return e=e==null?Ok:Math.pow(Ok,e),new bl(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Bv:Math.pow(Bv,e),new bl(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*t,n=2*r-i;return new ua(X8(e>=240?e-240:e+120,n,i),X8(e,n,i),X8(e<120?e+240:e-120,n,i),this.opacity)},clamp(){return new bl(TK(this.h),Ik(this.s),Ik(this.l),Pk(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Pk(this.opacity);return`${e===1?"hsl(":"hsla("}${TK(this.h)}, ${Ik(this.s)*100}%, ${Ik(this.l)*100}%${e===1?")":`, ${e})`}`}}));o(TK,"clamph");o(Ik,"clampt");o(X8,"hsl2rgb")});var wK,SK,EK=z(()=>{"use strict";wK=Math.PI/180,SK=180/Math.PI});function MK(e){if(e instanceof pc)return new pc(e.l,e.a,e.b,e.opacity);if(e instanceof Su)return NK(e);e instanceof ua||(e=K8(e));var t=tR(e.r),r=tR(e.g),i=tR(e.b),n=Q8((.2225045*t+.7168786*r+.0606169*i)/_K),a,s;return t===r&&r===i?a=s=n:(a=Q8((.4360747*t+.3850649*r+.1430804*i)/AK),s=Q8((.0139322*t+.0971045*r+.7141733*i)/DK)),new pc(116*n-16,500*(a-n),200*(n-s),e.opacity)}function rR(e,t,r,i){return arguments.length===1?MK(e):new pc(e,t,r,i??1)}function pc(e,t,r,i){this.l=+e,this.a=+t,this.b=+r,this.opacity=+i}function Q8(e){return e>dBe?Math.pow(e,1/3):e/LK+RK}function J8(e){return e>jm?e*e*e:LK*(e-RK)}function eR(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function tR(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function fBe(e){if(e instanceof Su)return new Su(e.h,e.c,e.l,e.opacity);if(e instanceof pc||(e=MK(e)),e.a===0&&e.b===0)return new Su(NaN,0{"use strict";j8();Z8();EK();Bk=18,AK=.96422,_K=1,DK=.82521,RK=4/29,jm=6/29,LK=3*jm*jm,dBe=jm*jm*jm;o(MK,"labConvert");o(rR,"lab");o(pc,"Lab");Yh(pc,rR,Um(jh,{brighter(e){return new pc(this.l+Bk*(e??1),this.a,this.b,this.opacity)},darker(e){return new pc(this.l-Bk*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,r=isNaN(this.b)?e:e-this.b/200;return t=AK*J8(t),e=_K*J8(e),r=DK*J8(r),new ua(eR(3.1338561*t-1.6168667*e-.4906146*r),eR(-.9787684*t+1.9161415*e+.033454*r),eR(.0719453*t-.2289914*e+1.4052427*r),this.opacity)}}));o(Q8,"xyz2lab");o(J8,"lab2xyz");o(eR,"lrgb2rgb");o(tR,"rgb2lrgb");o(fBe,"hclConvert");o($v,"hcl");o(Su,"Hcl");o(NK,"hcl2lab");Yh(Su,$v,Um(jh,{brighter(e){return new Su(this.h,this.c,this.l+Bk*(e??1),this.opacity)},darker(e){return new Su(this.h,this.c,this.l-Bk*(e??1),this.opacity)},rgb(){return NK(this).rgb()}}))});var Xm=z(()=>{"use strict";Z8();IK()});function iR(e,t,r,i,n){var a=e*e,s=a*e;return((1-3*e+3*a-s)*t+(4-6*a+3*s)*r+(1+3*e+3*a-3*s)*i+s*n)/6}function nR(e){var t=e.length-1;return function(r){var i=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),n=e[i],a=e[i+1],s=i>0?e[i-1]:2*n-a,l=i{"use strict";o(iR,"basis");o(nR,"default")});function sR(e){var t=e.length;return function(r){var i=Math.floor(((r%=1)<0?++r:r)*t),n=e[(i+t-1)%t],a=e[i%t],s=e[(i+1)%t],l=e[(i+2)%t];return iR((r-i/t)*t,n,a,s,l)}}var OK=z(()=>{"use strict";aR();o(sR,"default")});var Km,oR=z(()=>{"use strict";Km=o(e=>()=>e,"default")});function PK(e,t){return function(r){return e+r*t}}function pBe(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(i){return Math.pow(e+i*t,r)}}function BK(e,t){var r=t-e;return r?PK(e,r>180||r<-180?r-360*Math.round(r/360):r):Km(isNaN(e)?t:e)}function FK(e){return(e=+e)==1?Eu:function(t,r){return r-t?pBe(t,r,e):Km(isNaN(t)?r:t)}}function Eu(e,t){var r=t-e;return r?PK(e,r):Km(isNaN(e)?t:e)}var lR=z(()=>{"use strict";oR();o(PK,"linear");o(pBe,"exponential");o(BK,"hue");o(FK,"gamma");o(Eu,"nogamma")});function $K(e){return function(t){var r=t.length,i=new Array(r),n=new Array(r),a=new Array(r),s,l;for(s=0;s{"use strict";Xm();aR();OK();lR();tp=o((function e(t){var r=FK(t);function i(n,a){var s=r((n=Ym(n)).r,(a=Ym(a)).r),l=r(n.g,a.g),u=r(n.b,a.b),h=Eu(n.opacity,a.opacity);return function(d){return n.r=s(d),n.g=l(d),n.b=u(d),n.opacity=h(d),n+""}}return o(i,"rgb"),i.gamma=e,i}),"rgbGamma")(1);o($K,"rgbSpline");mBe=$K(nR),gBe=$K(sR)});function uR(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,i=t.slice(),n;return function(a){for(n=0;n{"use strict";o(uR,"default");o(zK,"isNumberArray")});function VK(e,t){var r=t?t.length:0,i=e?Math.min(r,e.length):0,n=new Array(i),a=new Array(r),s;for(s=0;s{"use strict";Fk();o(VK,"genericArray")});function hR(e,t){var r=new Date;return e=+e,t=+t,function(i){return r.setTime(e*(1-i)+t*i),r}}var qK=z(()=>{"use strict";o(hR,"default")});function Zn(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}var zv=z(()=>{"use strict";o(Zn,"default")});function dR(e,t){var r={},i={},n;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(n in t)n in e?r[n]=Xh(e[n],t[n]):i[n]=t[n];return function(a){for(n in r)i[n]=r[n](a);return i}}var UK=z(()=>{"use strict";Fk();o(dR,"default")});function yBe(e){return function(){return e}}function vBe(e){return function(t){return e(t)+""}}function Zm(e,t){var r=pR.lastIndex=fR.lastIndex=0,i,n,a,s=-1,l=[],u=[];for(e=e+"",t=t+"";(i=pR.exec(e))&&(n=fR.exec(t));)(a=n.index)>r&&(a=t.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(i=i[0])===(n=n[0])?l[s]?l[s]+=n:l[++s]=n:(l[++s]=null,u.push({i:s,x:Zn(i,n)})),r=fR.lastIndex;return r{"use strict";zv();pR=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,fR=new RegExp(pR.source,"g");o(yBe,"zero");o(vBe,"one");o(Zm,"default")});function Xh(e,t){var r=typeof t,i;return t==null||r==="boolean"?Km(t):(r==="number"?Zn:r==="string"?(i=Tl(t))?(t=i,tp):Zm:t instanceof Tl?tp:t instanceof Date?hR:zK(t)?uR:Array.isArray(t)?VK:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?dR:Zn)(e,t)}var Fk=z(()=>{"use strict";Xm();cR();WK();qK();zv();UK();mR();oR();GK();o(Xh,"default")});function $k(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}var HK=z(()=>{"use strict";o($k,"default")});function Gk(e,t,r,i,n,a){var s,l,u;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(u=e*r+t*i)&&(r-=e*u,i-=t*u),(l=Math.sqrt(r*r+i*i))&&(r/=l,i/=l,u/=l),e*i{"use strict";YK=180/Math.PI,zk={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(Gk,"default")});function XK(e){let t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?zk:Gk(t.a,t.b,t.c,t.d,t.e,t.f)}function KK(e){return e==null?zk:(Vk||(Vk=document.createElementNS("http://www.w3.org/2000/svg","g")),Vk.setAttribute("transform",e),(e=Vk.transform.baseVal.consolidate())?(e=e.matrix,Gk(e.a,e.b,e.c,e.d,e.e,e.f)):zk)}var Vk,ZK=z(()=>{"use strict";jK();o(XK,"parseCss");o(KK,"parseSvg")});function QK(e,t,r,i){function n(h){return h.length?h.pop()+" ":""}o(n,"pop");function a(h,d,f,p,m,g){if(h!==f||d!==p){var y=m.push("translate(",null,t,null,r);g.push({i:y-4,x:Zn(h,f)},{i:y-2,x:Zn(d,p)})}else(f||p)&&m.push("translate("+f+t+p+r)}o(a,"translate");function s(h,d,f,p){h!==d?(h-d>180?d+=360:d-h>180&&(h+=360),p.push({i:f.push(n(f)+"rotate(",null,i)-2,x:Zn(h,d)})):d&&f.push(n(f)+"rotate("+d+i)}o(s,"rotate");function l(h,d,f,p){h!==d?p.push({i:f.push(n(f)+"skewX(",null,i)-2,x:Zn(h,d)}):d&&f.push(n(f)+"skewX("+d+i)}o(l,"skewX");function u(h,d,f,p,m,g){if(h!==f||d!==p){var y=m.push(n(m)+"scale(",null,",",null,")");g.push({i:y-4,x:Zn(h,f)},{i:y-2,x:Zn(d,p)})}else(f!==1||p!==1)&&m.push(n(m)+"scale("+f+","+p+")")}return o(u,"scale"),function(h,d){var f=[],p=[];return h=e(h),d=e(d),a(h.translateX,h.translateY,d.translateX,d.translateY,f,p),s(h.rotate,d.rotate,f,p),l(h.skewX,d.skewX,f,p),u(h.scaleX,h.scaleY,d.scaleX,d.scaleY,f,p),h=d=null,function(m){for(var g=-1,y=p.length,v;++g{"use strict";zv();ZK();o(QK,"interpolateTransform");gR=QK(XK,"px, ","px)","deg)"),yR=QK(KK,", ",")",")")});function eZ(e){return function(t,r){var i=e((t=$v(t)).h,(r=$v(r)).h),n=Eu(t.c,r.c),a=Eu(t.l,r.l),s=Eu(t.opacity,r.opacity);return function(l){return t.h=i(l),t.c=n(l),t.l=a(l),t.opacity=s(l),t+""}}}var vR,xBe,tZ=z(()=>{"use strict";Xm();lR();o(eZ,"hcl");vR=eZ(BK),xBe=eZ(Eu)});var Qm=z(()=>{"use strict";Fk();zv();HK();mR();JK();cR();tZ()});function Hv(){return rp||(nZ(bBe),rp=qv.now()+Uk)}function bBe(){rp=0}function Uv(){this._call=this._time=this._next=null}function Hk(e,t,r){var i=new Uv;return i.restart(e,t,r),i}function aZ(){Hv(),++Jm;for(var e=Wk,t;e;)(t=rp-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Jm}function rZ(){rp=(qk=qv.now())+Uk,Jm=Vv=0;try{aZ()}finally{Jm=0,CBe(),rp=0}}function TBe(){var e=qv.now(),t=e-qk;t>iZ&&(Uk-=t,qk=e)}function CBe(){for(var e,t=Wk,r,i=1/0;t;)t._call?(i>t._time&&(i=t._time),e=t,t=t._next):(r=t._next,t._next=null,t=e?e._next=r:Wk=r);Wv=e,xR(i)}function xR(e){if(!Jm){Vv&&(Vv=clearTimeout(Vv));var t=e-rp;t>24?(e<1/0&&(Vv=setTimeout(rZ,e-qv.now()-Uk)),Gv&&(Gv=clearInterval(Gv))):(Gv||(qk=qv.now(),Gv=setInterval(TBe,iZ)),Jm=1,nZ(rZ))}}var Jm,Vv,Gv,iZ,Wk,Wv,qk,rp,Uk,qv,nZ,bR=z(()=>{"use strict";Jm=0,Vv=0,Gv=0,iZ=1e3,qk=0,rp=0,Uk=0,qv=typeof performance=="object"&&performance.now?performance:Date,nZ=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};o(Hv,"now");o(bBe,"clearNow");o(Uv,"Timer");Uv.prototype=Hk.prototype={constructor:Uv,restart:o(function(e,t,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?Hv():+r)+(t==null?0:+t),!this._next&&Wv!==this&&(Wv?Wv._next=this:Wk=this,Wv=this),this._call=e,this._time=r,xR()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,xR())},"stop")};o(Hk,"timer");o(aZ,"timerFlush");o(rZ,"wake");o(TBe,"poke");o(CBe,"nap");o(xR,"sleep")});function Yv(e,t,r){var i=new Uv;return t=t==null?0:+t,i.restart(n=>{i.stop(),e(n+t)},t,r),i}var sZ=z(()=>{"use strict";bR();o(Yv,"default")});var Yk=z(()=>{"use strict";bR();sZ()});function Au(e,t,r,i,n,a){var s=e.__transition;if(!s)e.__transition={};else if(r in s)return;SBe(e,r,{name:t,index:i,group:n,on:kBe,tween:wBe,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:cZ})}function Xv(e,t){var r=$n(e,t);if(r.state>cZ)throw new Error("too late; already scheduled");return r}function ha(e,t){var r=$n(e,t);if(r.state>jk)throw new Error("too late; already running");return r}function $n(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function SBe(e,t,r){var i=e.__transition,n;i[t]=r,r.timer=Hk(a,0,r.time);function a(h){r.state=oZ,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var d,f,p,m;if(r.state!==oZ)return u();for(d in i)if(m=i[d],m.name===r.name){if(m.state===jk)return Yv(s);m.state===lZ?(m.state=jv,m.timer.stop(),m.on.call("interrupt",e,e.__data__,m.index,m.group),delete i[d]):+d{"use strict";t8();Yk();kBe=e8("start","end","cancel","interrupt"),wBe=[],cZ=0,oZ=1,Xk=2,jk=3,lZ=4,Kk=5,jv=6;o(Au,"default");o(Xv,"init");o(ha,"set");o($n,"get");o(SBe,"create")});function Kv(e,t){var r=e.__transition,i,n,a=!0,s;if(r){t=t==null?null:t+"";for(s in r){if((i=r[s]).name!==t){a=!1;continue}n=i.state>Xk&&i.state{"use strict";ws();o(Kv,"default")});function TR(e){return this.each(function(){Kv(this,e)})}var hZ=z(()=>{"use strict";uZ();o(TR,"default")});function EBe(e,t){var r,i;return function(){var n=ha(this,e),a=n.tween;if(a!==r){i=r=a;for(var s=0,l=i.length;s{"use strict";ws();o(EBe,"tweenRemove");o(ABe,"tweenFunction");o(CR,"default");o(eg,"tweenValue")});function Qv(e,t){var r;return(typeof t=="number"?Zn:t instanceof Tl?tp:(r=Tl(t))?(t=r,tp):Zm)(e,t)}var kR=z(()=>{"use strict";Xm();Qm();o(Qv,"default")});function _Be(e){return function(){this.removeAttribute(e)}}function DBe(e){return function(){this.removeAttributeNS(e.space,e.local)}}function RBe(e,t,r){var i,n=r+"",a;return function(){var s=this.getAttribute(e);return s===n?null:s===i?a:a=t(i=s,r)}}function LBe(e,t,r){var i,n=r+"",a;return function(){var s=this.getAttributeNS(e.space,e.local);return s===n?null:s===i?a:a=t(i=s,r)}}function MBe(e,t,r){var i,n,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(e):(s=this.getAttribute(e),u=l+"",s===u?null:s===i&&u===n?a:(n=u,a=t(i=s,l)))}}function NBe(e,t,r){var i,n,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),u=l+"",s===u?null:s===i&&u===n?a:(n=u,a=t(i=s,l)))}}function wR(e,t){var r=dc(e),i=r==="transform"?yR:Qv;return this.attrTween(e,typeof t=="function"?(r.local?NBe:MBe)(r,i,eg(this,"attr."+e,t)):t==null?(r.local?DBe:_Be)(r):(r.local?LBe:RBe)(r,i,t))}var dZ=z(()=>{"use strict";Qm();xl();Zv();kR();o(_Be,"attrRemove");o(DBe,"attrRemoveNS");o(RBe,"attrConstant");o(LBe,"attrConstantNS");o(MBe,"attrFunction");o(NBe,"attrFunctionNS");o(wR,"default")});function IBe(e,t){return function(r){this.setAttribute(e,t.call(this,r))}}function OBe(e,t){return function(r){this.setAttributeNS(e.space,e.local,t.call(this,r))}}function PBe(e,t){var r,i;function n(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&OBe(e,a)),r}return o(n,"tween"),n._value=t,n}function BBe(e,t){var r,i;function n(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&IBe(e,a)),r}return o(n,"tween"),n._value=t,n}function SR(e,t){var r="attr."+e;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;var i=dc(e);return this.tween(r,(i.local?PBe:BBe)(i,t))}var fZ=z(()=>{"use strict";xl();o(IBe,"attrInterpolate");o(OBe,"attrInterpolateNS");o(PBe,"attrTweenNS");o(BBe,"attrTween");o(SR,"default")});function FBe(e,t){return function(){Xv(this,e).delay=+t.apply(this,arguments)}}function $Be(e,t){return t=+t,function(){Xv(this,e).delay=t}}function ER(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?FBe:$Be)(t,e)):$n(this.node(),t).delay}var pZ=z(()=>{"use strict";ws();o(FBe,"delayFunction");o($Be,"delayConstant");o(ER,"default")});function zBe(e,t){return function(){ha(this,e).duration=+t.apply(this,arguments)}}function GBe(e,t){return t=+t,function(){ha(this,e).duration=t}}function AR(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?zBe:GBe)(t,e)):$n(this.node(),t).duration}var mZ=z(()=>{"use strict";ws();o(zBe,"durationFunction");o(GBe,"durationConstant");o(AR,"default")});function VBe(e,t){if(typeof t!="function")throw new Error;return function(){ha(this,e).ease=t}}function _R(e){var t=this._id;return arguments.length?this.each(VBe(t,e)):$n(this.node(),t).ease}var gZ=z(()=>{"use strict";ws();o(VBe,"easeConstant");o(_R,"default")});function WBe(e,t){return function(){var r=t.apply(this,arguments);if(typeof r!="function")throw new Error;ha(this,e).ease=r}}function DR(e){if(typeof e!="function")throw new Error;return this.each(WBe(this._id,e))}var yZ=z(()=>{"use strict";ws();o(WBe,"easeVarying");o(DR,"default")});function RR(e){typeof e!="function"&&(e=qm(e));for(var t=this._groups,r=t.length,i=new Array(r),n=0;n{"use strict";xl();ip();o(RR,"default")});function LR(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,r=e._groups,i=t.length,n=r.length,a=Math.min(i,n),s=new Array(i),l=0;l{"use strict";ip();o(LR,"default")});function qBe(e){return(e+"").trim().split(/^|\s+/).every(function(t){var r=t.indexOf(".");return r>=0&&(t=t.slice(0,r)),!t||t==="start"})}function UBe(e,t,r){var i,n,a=qBe(t)?Xv:ha;return function(){var s=a(this,e),l=s.on;l!==i&&(n=(i=l).copy()).on(t,r),s.on=n}}function MR(e,t){var r=this._id;return arguments.length<2?$n(this.node(),r).on.on(e):this.each(UBe(r,e,t))}var bZ=z(()=>{"use strict";ws();o(qBe,"start");o(UBe,"onFunction");o(MR,"default")});function HBe(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function NR(){return this.on("end.remove",HBe(this._id))}var TZ=z(()=>{"use strict";o(HBe,"removeFunction");o(NR,"default")});function IR(e){var t=this._name,r=this._id;typeof e!="function"&&(e=Uh(e));for(var i=this._groups,n=i.length,a=new Array(n),s=0;s{"use strict";xl();ip();ws();o(IR,"default")});function OR(e){var t=this._name,r=this._id;typeof e!="function"&&(e=Wm(e));for(var i=this._groups,n=i.length,a=[],s=[],l=0;l{"use strict";xl();ip();ws();o(OR,"default")});function PR(){return new YBe(this._groups,this._parents)}var YBe,wZ=z(()=>{"use strict";xl();YBe=wu.prototype.constructor;o(PR,"default")});function jBe(e,t){var r,i,n;return function(){var a=Hh(this,e),s=(this.style.removeProperty(e),Hh(this,e));return a===s?null:a===r&&s===i?n:n=t(r=a,i=s)}}function SZ(e){return function(){this.style.removeProperty(e)}}function XBe(e,t,r){var i,n=r+"",a;return function(){var s=Hh(this,e);return s===n?null:s===i?a:a=t(i=s,r)}}function KBe(e,t,r){var i,n,a;return function(){var s=Hh(this,e),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(e),Hh(this,e))),s===u?null:s===i&&u===n?a:(n=u,a=t(i=s,l))}}function ZBe(e,t){var r,i,n,a="style."+t,s="end."+a,l;return function(){var u=ha(this,e),h=u.on,d=u.value[a]==null?l||(l=SZ(t)):void 0;(h!==r||n!==d)&&(i=(r=h).copy()).on(s,n=d),u.on=i}}function BR(e,t,r){var i=(e+="")=="transform"?gR:Qv;return t==null?this.styleTween(e,jBe(e,i)).on("end.style."+e,SZ(e)):typeof t=="function"?this.styleTween(e,KBe(e,i,eg(this,"style."+e,t))).each(ZBe(this._id,e)):this.styleTween(e,XBe(e,i,t),r).on("end.style."+e,null)}var EZ=z(()=>{"use strict";Qm();xl();ws();Zv();kR();o(jBe,"styleNull");o(SZ,"styleRemove");o(XBe,"styleConstant");o(KBe,"styleFunction");o(ZBe,"styleMaybeRemove");o(BR,"default")});function QBe(e,t,r){return function(i){this.style.setProperty(e,t.call(this,i),r)}}function JBe(e,t,r){var i,n;function a(){var s=t.apply(this,arguments);return s!==n&&(i=(n=s)&&QBe(e,s,r)),i}return o(a,"tween"),a._value=t,a}function FR(e,t,r){var i="style."+(e+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(t==null)return this.tween(i,null);if(typeof t!="function")throw new Error;return this.tween(i,JBe(e,t,r??""))}var AZ=z(()=>{"use strict";o(QBe,"styleInterpolate");o(JBe,"styleTween");o(FR,"default")});function eFe(e){return function(){this.textContent=e}}function tFe(e){return function(){var t=e(this);this.textContent=t??""}}function $R(e){return this.tween("text",typeof e=="function"?tFe(eg(this,"text",e)):eFe(e==null?"":e+""))}var _Z=z(()=>{"use strict";Zv();o(eFe,"textConstant");o(tFe,"textFunction");o($R,"default")});function rFe(e){return function(t){this.textContent=e.call(this,t)}}function iFe(e){var t,r;function i(){var n=e.apply(this,arguments);return n!==r&&(t=(r=n)&&rFe(n)),t}return o(i,"tween"),i._value=e,i}function zR(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,iFe(e))}var DZ=z(()=>{"use strict";o(rFe,"textInterpolate");o(iFe,"textTween");o(zR,"default")});function GR(){for(var e=this._name,t=this._id,r=Zk(),i=this._groups,n=i.length,a=0;a{"use strict";ip();ws();o(GR,"default")});function VR(){var e,t,r=this,i=r._id,n=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--n===0&&a()},"value")};r.each(function(){var h=ha(this,i),d=h.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(u)),h.on=t}),n===0&&a()})}var LZ=z(()=>{"use strict";ws();o(VR,"default")});function Ka(e,t,r,i){this._groups=e,this._parents=t,this._name=r,this._id=i}function MZ(e){return wu().transition(e)}function Zk(){return++nFe}var nFe,_u,ip=z(()=>{"use strict";xl();dZ();fZ();pZ();mZ();gZ();yZ();vZ();xZ();bZ();TZ();CZ();kZ();wZ();EZ();AZ();_Z();DZ();RZ();Zv();LZ();nFe=0;o(Ka,"Transition");o(MZ,"transition");o(Zk,"newId");_u=wu.prototype;Ka.prototype=MZ.prototype={constructor:Ka,select:IR,selectAll:OR,selectChild:_u.selectChild,selectChildren:_u.selectChildren,filter:RR,merge:LR,selection:PR,transition:GR,call:_u.call,nodes:_u.nodes,node:_u.node,size:_u.size,empty:_u.empty,each:_u.each,on:MR,attr:wR,attrTween:SR,style:BR,styleTween:FR,text:$R,textTween:zR,remove:NR,tween:CR,delay:ER,duration:AR,ease:_R,easeVarying:DR,end:VR,[Symbol.iterator]:_u[Symbol.iterator]}});function Qk(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var NZ=z(()=>{"use strict";o(Qk,"cubicInOut")});var WR=z(()=>{"use strict";NZ()});function sFe(e,t){for(var r;!(r=e.__transition)||!(r=r[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return r}function qR(e){var t,r;e instanceof Ka?(t=e._id,e=e._name):(t=Zk(),(r=aFe).time=Hv(),e=e==null?null:e+"");for(var i=this._groups,n=i.length,a=0;a{"use strict";ip();ws();WR();Yk();aFe={time:null,delay:0,duration:250,ease:Qk};o(sFe,"inherit");o(qR,"default")});var OZ=z(()=>{"use strict";xl();hZ();IZ();wu.prototype.interrupt=TR;wu.prototype.transition=qR});var Jk=z(()=>{"use strict";OZ()});var PZ=z(()=>{"use strict"});var BZ=z(()=>{"use strict"});var FZ=z(()=>{"use strict"});function $Z(e){return[+e[0],+e[1]]}function oFe(e){return[$Z(e[0]),$Z(e[1])]}function UR(e){return{type:e}}var TBt,CBt,kBt,wBt,SBt,EBt,zZ=z(()=>{"use strict";Jk();PZ();BZ();FZ();({abs:TBt,max:CBt,min:kBt}=Math);o($Z,"number1");o(oFe,"number2");wBt={name:"x",handles:["w","e"].map(UR),input:o(function(e,t){return e==null?null:[[+e[0],t[0][1]],[+e[1],t[1][1]]]},"input"),output:o(function(e){return e&&[e[0][0],e[1][0]]},"output")},SBt={name:"y",handles:["n","s"].map(UR),input:o(function(e,t){return e==null?null:[[t[0][0],+e[0]],[t[1][0],+e[1]]]},"input"),output:o(function(e){return e&&[e[0][1],e[1][1]]},"output")},EBt={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(UR),input:o(function(e){return e==null?null:oFe(e)},"input"),output:o(function(e){return e},"output")};o(UR,"type")});var GZ=z(()=>{"use strict";zZ()});function VZ(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return VZ;let r=10**t;return function(i){this._+=i[0];for(let n=1,a=i.length;n{"use strict";HR=Math.PI,YR=2*HR,np=1e-6,lFe=YR-np;o(VZ,"append");o(cFe,"appendRound");ap=class{static{o(this,"Path")}constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?VZ:cFe(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,i,n){this._append`Q${+t},${+r},${this._x1=+i},${this._y1=+n}`}bezierCurveTo(t,r,i,n,a,s){this._append`C${+t},${+r},${+i},${+n},${this._x1=+a},${this._y1=+s}`}arcTo(t,r,i,n,a){if(t=+t,r=+r,i=+i,n=+n,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=i-t,h=n-r,d=s-t,f=l-r,p=d*d+f*f;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(p>np)if(!(Math.abs(f*u-h*d)>np)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let m=i-s,g=n-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),T=a*Math.tan((HR-Math.acos((y+p-v)/(2*x*b)))/2),w=T/b,C=T/x;Math.abs(w-1)>np&&this._append`L${t+w*d},${r+w*f}`,this._append`A${a},${a},0,0,${+(f*m>d*g)},${this._x1=t+C*u},${this._y1=r+C*h}`}}arc(t,r,i,n,a,s){if(t=+t,r=+r,i=+i,s=!!s,i<0)throw new Error(`negative radius: ${i}`);let l=i*Math.cos(n),u=i*Math.sin(n),h=t+l,d=r+u,f=1^s,p=s?n-a:a-n;this._x1===null?this._append`M${h},${d}`:(Math.abs(this._x1-h)>np||Math.abs(this._y1-d)>np)&&this._append`L${h},${d}`,i&&(p<0&&(p=p%YR+YR),p>lFe?this._append`A${i},${i},0,1,${f},${t-l},${r-u}A${i},${i},0,1,${f},${this._x1=h},${this._y1=d}`:p>np&&this._append`A${i},${i},0,${+(p>=HR)},${f},${this._x1=t+i*Math.cos(a)},${this._y1=r+i*Math.sin(a)}`)}rect(t,r,i,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${i=+i}v${+n}h${-i}Z`}toString(){return this._}};o(WZ,"path");WZ.prototype=ap.prototype});var jR=z(()=>{"use strict";qZ()});var UZ=z(()=>{"use strict"});var HZ=z(()=>{"use strict"});var YZ=z(()=>{"use strict"});var jZ=z(()=>{"use strict"});var XZ=z(()=>{"use strict"});var KZ=z(()=>{"use strict"});var ZZ=z(()=>{"use strict"});function XR(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function sp(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,i=e.slice(0,r);return[i.length>1?i[0]+i.slice(2):i,+e.slice(r+1)]}var Jv=z(()=>{"use strict";o(XR,"default");o(sp,"formatDecimalParts")});function Cl(e){return e=sp(Math.abs(e)),e?e[1]:NaN}var ex=z(()=>{"use strict";Jv();o(Cl,"default")});function KR(e,t){return function(r,i){for(var n=r.length,a=[],s=0,l=e[0],u=0;n>0&&l>0&&(u+l+1>i&&(l=Math.max(1,i-u)),a.push(r.substring(n-=l,n+l)),!((u+=l+1)>i));)l=e[s=(s+1)%e.length];return a.reverse().join(t)}}var QZ=z(()=>{"use strict";o(KR,"default")});function ZR(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var JZ=z(()=>{"use strict";o(ZR,"default")});function Kh(e){if(!(t=uFe.exec(e)))throw new Error("invalid format: "+e);var t;return new ew({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function ew(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}var uFe,QR=z(()=>{"use strict";uFe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(Kh,"formatSpecifier");Kh.prototype=ew.prototype;o(ew,"FormatSpecifier");ew.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}});function JR(e){e:for(var t=e.length,r=1,i=-1,n;r0&&(i=0);break}return i>0?e.slice(0,i)+e.slice(n+1):e}var eQ=z(()=>{"use strict";o(JR,"default")});function tL(e,t){var r=sp(e,t);if(!r)return e+"";var i=r[0],n=r[1],a=n-(eL=Math.max(-8,Math.min(8,Math.floor(n/3)))*3)+1,s=i.length;return a===s?i:a>s?i+new Array(a-s+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+new Array(1-a).join("0")+sp(e,Math.max(0,t+a-1))[0]}var eL,rL=z(()=>{"use strict";Jv();o(tL,"default")});function tw(e,t){var r=sp(e,t);if(!r)return e+"";var i=r[0],n=r[1];return n<0?"0."+new Array(-n).join("0")+i:i.length>n+1?i.slice(0,n+1)+"."+i.slice(n+1):i+new Array(n-i.length+2).join("0")}var tQ=z(()=>{"use strict";Jv();o(tw,"default")});var iL,rQ=z(()=>{"use strict";Jv();rL();tQ();iL={"%":o((e,t)=>(e*100).toFixed(t),"%"),b:o(e=>Math.round(e).toString(2),"b"),c:o(e=>e+"","c"),d:XR,e:o((e,t)=>e.toExponential(t),"e"),f:o((e,t)=>e.toFixed(t),"f"),g:o((e,t)=>e.toPrecision(t),"g"),o:o(e=>Math.round(e).toString(8),"o"),p:o((e,t)=>tw(e*100,t),"p"),r:tw,s:tL,X:o(e=>Math.round(e).toString(16).toUpperCase(),"X"),x:o(e=>Math.round(e).toString(16),"x")}});function rw(e){return e}var iQ=z(()=>{"use strict";o(rw,"default")});function nL(e){var t=e.grouping===void 0||e.thousands===void 0?rw:KR(nQ.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",i=e.currency===void 0?"":e.currency[1]+"",n=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?rw:ZR(nQ.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"\u2212":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function h(f){f=Kh(f);var p=f.fill,m=f.align,g=f.sign,y=f.symbol,v=f.zero,x=f.width,b=f.comma,T=f.precision,w=f.trim,C=f.type;C==="n"?(b=!0,C="g"):iL[C]||(T===void 0&&(T=12),w=!0,C="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var k=y==="$"?r:y==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",E=y==="$"?i:/[%p]/.test(C)?s:"",A=iL[C],N=/[defgprs%]/.test(C);T=T===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,T)):Math.max(0,Math.min(20,T));function P(I){var D=k,_=E,R,M,L;if(C==="c")_=A(I)+_,I="";else{I=+I;var B=I<0||1/I<0;if(I=isNaN(I)?u:A(Math.abs(I),T),w&&(I=JR(I)),B&&+I==0&&g!=="+"&&(B=!1),D=(B?g==="("?g:l:g==="-"||g==="("?"":g)+D,_=(C==="s"?aQ[8+eL/3]:"")+_+(B&&g==="("?")":""),N){for(R=-1,M=I.length;++RL||L>57){_=(L===46?n+I.slice(R+1):I.slice(R))+_,I=I.slice(0,R);break}}}b&&!v&&(I=t(I,1/0));var O=D.length+I.length+_.length,$=O>1)+D+I+_+$.slice(O);break;default:I=$+D+I+_;break}return a(I)}return o(P,"format"),P.toString=function(){return f+""},P}o(h,"newFormat");function d(f,p){var m=h((f=Kh(f),f.type="f",f)),g=Math.max(-8,Math.min(8,Math.floor(Cl(p)/3)))*3,y=Math.pow(10,-g),v=aQ[8+g/3];return function(x){return m(y*x)+v}}return o(d,"formatPrefix"),{format:h,formatPrefix:d}}var nQ,aQ,sQ=z(()=>{"use strict";ex();QZ();JZ();QR();eQ();rQ();rL();iQ();nQ=Array.prototype.map,aQ=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(nL,"default")});function aL(e){return iw=nL(e),mc=iw.format,nw=iw.formatPrefix,iw}var iw,mc,nw,oQ=z(()=>{"use strict";sQ();aL({thousands:",",grouping:[3],currency:["$",""]});o(aL,"defaultLocale")});function aw(e){return Math.max(0,-Cl(Math.abs(e)))}var lQ=z(()=>{"use strict";ex();o(aw,"default")});function sw(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Cl(t)/3)))*3-Cl(Math.abs(e)))}var cQ=z(()=>{"use strict";ex();o(sw,"default")});function ow(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Cl(t)-Cl(e))+1}var uQ=z(()=>{"use strict";ex();o(ow,"default")});var sL=z(()=>{"use strict";oQ();QR();lQ();cQ();uQ()});var hQ=z(()=>{"use strict"});function hFe(e){var t=0,r=e.children,i=r&&r.length;if(!i)t=1;else for(;--i>=0;)t+=r[i].value;e.value=t}function oL(){return this.eachAfter(hFe)}var dQ=z(()=>{"use strict";o(hFe,"count");o(oL,"default")});function lL(e,t){let r=-1;for(let i of this)e.call(t,i,++r,this);return this}var fQ=z(()=>{"use strict";o(lL,"default")});function cL(e,t){for(var r=this,i=[r],n,a,s=-1;r=i.pop();)if(e.call(t,r,++s,this),n=r.children)for(a=n.length-1;a>=0;--a)i.push(n[a]);return this}var pQ=z(()=>{"use strict";o(cL,"default")});function uL(e,t){for(var r=this,i=[r],n=[],a,s,l,u=-1;r=i.pop();)if(n.push(r),a=r.children)for(s=0,l=a.length;s{"use strict";o(uL,"default")});function hL(e,t){let r=-1;for(let i of this)if(e.call(t,i,++r,this))return i}var gQ=z(()=>{"use strict";o(hL,"default")});function dL(e){return this.eachAfter(function(t){for(var r=+e(t.data)||0,i=t.children,n=i&&i.length;--n>=0;)r+=i[n].value;t.value=r})}var yQ=z(()=>{"use strict";o(dL,"default")});function fL(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}var vQ=z(()=>{"use strict";o(fL,"default")});function pL(e){for(var t=this,r=dFe(t,e),i=[t];t!==r;)t=t.parent,i.push(t);for(var n=i.length;e!==r;)i.splice(n,0,e),e=e.parent;return i}function dFe(e,t){if(e===t)return e;var r=e.ancestors(),i=t.ancestors(),n=null;for(e=r.pop(),t=i.pop();e===t;)n=e,e=r.pop(),t=i.pop();return n}var xQ=z(()=>{"use strict";o(pL,"default");o(dFe,"leastCommonAncestor")});function mL(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}var bQ=z(()=>{"use strict";o(mL,"default")});function gL(){return Array.from(this)}var TQ=z(()=>{"use strict";o(gL,"default")});function yL(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}var CQ=z(()=>{"use strict";o(yL,"default")});function vL(){var e=this,t=[];return e.each(function(r){r!==e&&t.push({source:r.parent,target:r})}),t}var kQ=z(()=>{"use strict";o(vL,"default")});function*xL(){var e=this,t,r=[e],i,n,a;do for(t=r.reverse(),r=[];e=t.pop();)if(yield e,i=e.children)for(n=0,a=i.length;n{"use strict";o(xL,"default")});function tg(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=mFe)):t===void 0&&(t=pFe);for(var r=new tx(e),i,n=[r],a,s,l,u;i=n.pop();)if((s=t(i.data))&&(u=(s=Array.from(s)).length))for(i.children=s,l=u-1;l>=0;--l)n.push(a=s[l]=new tx(s[l])),a.parent=i,a.depth=i.depth+1;return r.eachBefore(yFe)}function fFe(){return tg(this).eachBefore(gFe)}function pFe(e){return e.children}function mFe(e){return Array.isArray(e)?e[1]:null}function gFe(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function yFe(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function tx(e){this.data=e,this.depth=this.height=0,this.parent=null}var SQ=z(()=>{"use strict";dQ();fQ();pQ();mQ();gQ();yQ();vQ();xQ();bQ();TQ();CQ();kQ();wQ();o(tg,"hierarchy");o(fFe,"node_copy");o(pFe,"objectChildren");o(mFe,"mapChildren");o(gFe,"copyData");o(yFe,"computeHeight");o(tx,"Node");tx.prototype=tg.prototype={constructor:tx,count:oL,each:lL,eachAfter:uL,eachBefore:cL,find:hL,sum:dL,sort:fL,path:pL,ancestors:mL,descendants:gL,leaves:yL,links:vL,copy:fFe,[Symbol.iterator]:xL}});function EQ(e){if(typeof e!="function")throw new Error;return e}var AQ=z(()=>{"use strict";o(EQ,"required")});function rg(){return 0}function op(e){return function(){return e}}var _Q=z(()=>{"use strict";o(rg,"constantZero");o(op,"default")});function bL(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}var DQ=z(()=>{"use strict";o(bL,"default")});function TL(e,t,r,i,n){for(var a=e.children,s,l=-1,u=a.length,h=e.value&&(i-t)/e.value;++l{"use strict";o(TL,"default")});function CL(e,t,r,i,n){for(var a=e.children,s,l=-1,u=a.length,h=e.value&&(n-r)/e.value;++l{"use strict";o(CL,"default")});function xFe(e,t,r,i,n,a){for(var s=[],l=t.children,u,h,d=0,f=0,p=l.length,m,g,y=t.value,v,x,b,T,w,C,k;db&&(b=h),k=v*v*C,T=Math.max(b/k,k/x),T>w){v-=h;break}w=T}s.push(u={value:v,dice:m{"use strict";RQ();LQ();vFe=(1+Math.sqrt(5))/2;o(xFe,"squarifyRatio");MQ=o((function e(t){function r(i,n,a,s,l){xFe(t,i,n,a,s,l)}return o(r,"squarify"),r.ratio=function(i){return e((i=+i)>1?i:1)},r}),"custom")(vFe)});function lw(){var e=MQ,t=!1,r=1,i=1,n=[0],a=rg,s=rg,l=rg,u=rg,h=rg;function d(p){return p.x0=p.y0=0,p.x1=r,p.y1=i,p.eachBefore(f),n=[0],t&&p.eachBefore(bL),p}o(d,"treemap");function f(p){var m=n[p.depth],g=p.x0+m,y=p.y0+m,v=p.x1-m,x=p.y1-m;v{"use strict";DQ();NQ();AQ();_Q();o(lw,"default")});var OQ=z(()=>{"use strict";SQ();IQ()});var PQ=z(()=>{"use strict"});var BQ=z(()=>{"use strict"});function Zh(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var rx=z(()=>{"use strict";o(Zh,"initRange")});function ro(){var e=new Gm,t=[],r=[],i=kL;function n(a){let s=e.get(a);if(s===void 0){if(i!==kL)return i;e.set(a,s=t.push(a)-1)}return r[s%r.length]}return o(n,"scale"),n.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new Gm;for(let s of a)e.has(s)||e.set(s,t.push(s)-1);return n},n.range=function(a){return arguments.length?(r=Array.from(a),n):r.slice()},n.unknown=function(a){return arguments.length?(i=a,n):i},n.copy=function(){return ro(t,r).unknown(i)},Zh.apply(n,arguments),n}var kL,wL=z(()=>{"use strict";qh();rx();kL=Symbol("implicit");o(ro,"ordinal")});function ig(){var e=ro().unknown(void 0),t=e.domain,r=e.range,i=0,n=1,a,s,l=!1,u=0,h=0,d=.5;delete e.unknown;function f(){var p=t().length,m=n{"use strict";qh();rx();wL();o(ig,"band")});function SL(e){return function(){return e}}var $Q=z(()=>{"use strict";o(SL,"constants")});function EL(e){return+e}var zQ=z(()=>{"use strict";o(EL,"number")});function ng(e){return e}function AL(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:SL(isNaN(t)?NaN:.5)}function bFe(e,t){var r;return e>t&&(r=e,e=t,t=r),function(i){return Math.max(e,Math.min(t,i))}}function TFe(e,t,r){var i=e[0],n=e[1],a=t[0],s=t[1];return n2?CFe:TFe,u=h=null,f}o(d,"rescale");function f(p){return p==null||isNaN(p=+p)?a:(u||(u=l(e.map(i),t,r)))(i(s(p)))}return o(f,"scale"),f.invert=function(p){return s(n((h||(h=l(t,e.map(i),Zn)))(p)))},f.domain=function(p){return arguments.length?(e=Array.from(p,EL),d()):e.slice()},f.range=function(p){return arguments.length?(t=Array.from(p),d()):t.slice()},f.rangeRound=function(p){return t=Array.from(p),r=$k,d()},f.clamp=function(p){return arguments.length?(s=p?!0:ng,d()):s!==ng},f.interpolate=function(p){return arguments.length?(r=p,d()):r},f.unknown=function(p){return arguments.length?(a=p,f):a},function(p,m){return i=p,n=m,d()}}function ix(){return kFe()(ng,ng)}var GQ,_L=z(()=>{"use strict";qh();Qm();$Q();zQ();GQ=[0,1];o(ng,"identity");o(AL,"normalize");o(bFe,"clamper");o(TFe,"bimap");o(CFe,"polymap");o(cw,"copy");o(kFe,"transformer");o(ix,"continuous")});function DL(e,t,r,i){var n=Vm(e,t,r),a;switch(i=Kh(i??",f"),i.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return i.precision==null&&!isNaN(a=sw(n,s))&&(i.precision=a),nw(i,s)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(a=ow(n,Math.max(Math.abs(e),Math.abs(t))))&&(i.precision=a-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(a=aw(n))&&(i.precision=a-(i.type==="%")*2);break}}return mc(i)}var VQ=z(()=>{"use strict";qh();sL();o(DL,"tickFormat")});function wFe(e){var t=e.domain;return e.ticks=function(r){var i=t();return Ck(i[0],i[i.length-1],r??10)},e.tickFormat=function(r,i){var n=t();return DL(n[0],n[n.length-1],r??10,i)},e.nice=function(r){r==null&&(r=10);var i=t(),n=0,a=i.length-1,s=i[n],l=i[a],u,h,d=10;for(l0;){if(h=Lv(s,l,r),h===u)return i[n]=s,i[a]=l,t(i);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return e},e}function kl(){var e=ix();return e.copy=function(){return cw(e,kl())},Zh.apply(e,arguments),wFe(e)}var WQ=z(()=>{"use strict";qh();_L();rx();VQ();o(wFe,"linearish");o(kl,"linear")});function RL(e,t){e=e.slice();var r=0,i=e.length-1,n=e[r],a=e[i],s;return a{"use strict";o(RL,"nice")});function ki(e,t,r,i){function n(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return o(n,"interval"),n.floor=a=>(e(a=new Date(+a)),a),n.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),n.round=a=>{let s=n(a),l=n.ceil(a);return a-s(t(a=new Date(+a),s==null?1:Math.floor(s)),a),n.range=(a,s,l)=>{let u=[];if(a=n.ceil(a),l=l==null?1:Math.floor(l),!(a0))return u;let h;do u.push(h=new Date(+a)),t(a,l),e(a);while(hki(s=>{if(s>=s)for(;e(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;t(s,-1),!a(s););else for(;--l>=0;)for(;t(s,1),!a(s););}),r&&(n.count=(a,s)=>(LL.setTime(+a),ML.setTime(+s),e(LL),e(ML),Math.floor(r(LL,ML))),n.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?n.filter(i?s=>i(s)%a===0:s=>n.count(0,s)%a===0):n)),n}var LL,ML,Du=z(()=>{"use strict";LL=new Date,ML=new Date;o(ki,"timeInterval")});var gc,UQ,NL=z(()=>{"use strict";Du();gc=ki(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);gc.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?ki(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):gc);UQ=gc.range});var io,HQ,IL=z(()=>{"use strict";Du();io=ki(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),HQ=io.range});var Ru,SFe,uw,EFe,OL=z(()=>{"use strict";Du();Ru=ki(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),SFe=Ru.range,uw=ki(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),EFe=uw.range});var Lu,AFe,hw,_Fe,PL=z(()=>{"use strict";Du();Lu=ki(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),AFe=Lu.range,hw=ki(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),_Fe=hw.range});var Oo,DFe,ax,RFe,dw,LFe,BL=z(()=>{"use strict";Du();Oo=ki(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),DFe=Oo.range,ax=ki(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),RFe=ax.range,dw=ki(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),LFe=dw.range});function up(e){return ki(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}function hp(e){return ki(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var wl,Qh,fw,pw,vc,mw,gw,jQ,MFe,NFe,IFe,OFe,PFe,BFe,dp,ag,XQ,KQ,Jh,ZQ,QQ,JQ,FFe,$Fe,zFe,GFe,VFe,WFe,FL=z(()=>{"use strict";Du();o(up,"timeWeekday");wl=up(0),Qh=up(1),fw=up(2),pw=up(3),vc=up(4),mw=up(5),gw=up(6),jQ=wl.range,MFe=Qh.range,NFe=fw.range,IFe=pw.range,OFe=vc.range,PFe=mw.range,BFe=gw.range;o(hp,"utcWeekday");dp=hp(0),ag=hp(1),XQ=hp(2),KQ=hp(3),Jh=hp(4),ZQ=hp(5),QQ=hp(6),JQ=dp.range,FFe=ag.range,$Fe=XQ.range,zFe=KQ.range,GFe=Jh.range,VFe=ZQ.range,WFe=QQ.range});var Mu,qFe,yw,UFe,$L=z(()=>{"use strict";Du();Mu=ki(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),qFe=Mu.range,yw=ki(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),UFe=yw.range});var no,HFe,Sl,YFe,zL=z(()=>{"use strict";Du();no=ki(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());no.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ki(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});HFe=no.range,Sl=ki(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Sl.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ki(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});YFe=Sl.range});function tJ(e,t,r,i,n,a){let s=[[io,1,1e3],[io,5,5*1e3],[io,15,15*1e3],[io,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[n,1,36e5],[n,3,3*36e5],[n,6,6*36e5],[n,12,12*36e5],[i,1,864e5],[i,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function l(h,d,f){let p=dv).right(s,p);if(m===s.length)return e.every(Vm(h/31536e6,d/31536e6,f));if(m===0)return gc.every(Math.max(Vm(h,d,f),1));let[g,y]=s[p/s[m-1][2]{"use strict";qh();NL();IL();OL();PL();BL();FL();$L();zL();o(tJ,"ticker");[XFe,KFe]=tJ(Sl,yw,dp,dw,hw,uw),[GL,VL]=tJ(no,Mu,wl,Oo,Lu,Ru)});var vw=z(()=>{"use strict";NL();IL();OL();PL();BL();FL();$L();zL();rJ()});function WL(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function qL(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function sx(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function UL(e){var t=e.dateTime,r=e.date,i=e.time,n=e.periods,a=e.days,s=e.shortDays,l=e.months,u=e.shortMonths,h=ox(n),d=lx(n),f=ox(a),p=lx(a),m=ox(s),g=lx(s),y=ox(l),v=lx(l),x=ox(u),b=lx(u),T={a:B,A:O,b:$,B:G,c:null,d:lJ,e:lJ,f:x$e,g:D$e,G:L$e,H:g$e,I:y$e,j:v$e,L:fJ,m:b$e,M:T$e,p:F,q:V,Q:hJ,s:dJ,S:C$e,u:k$e,U:w$e,V:S$e,w:E$e,W:A$e,x:null,X:null,y:_$e,Y:R$e,Z:M$e,"%":uJ},w={a:H,A:j,b:U,B:Q,c:null,d:cJ,e:cJ,f:P$e,g:H$e,G:j$e,H:N$e,I:I$e,j:O$e,L:mJ,m:B$e,M:F$e,p:Y,q:ae,Q:hJ,s:dJ,S:$$e,u:z$e,U:G$e,V:V$e,w:W$e,W:q$e,x:null,X:null,y:U$e,Y:Y$e,Z:X$e,"%":uJ},C={a:P,A:I,b:D,B:_,c:R,d:sJ,e:sJ,f:d$e,g:aJ,G:nJ,H:oJ,I:oJ,j:l$e,L:h$e,m:o$e,M:c$e,p:N,q:s$e,Q:p$e,s:m$e,S:u$e,u:t$e,U:r$e,V:i$e,w:e$e,W:n$e,x:M,X:L,y:aJ,Y:nJ,Z:a$e,"%":f$e};T.x=k(r,T),T.X=k(i,T),T.c=k(t,T),w.x=k(r,w),w.X=k(i,w),w.c=k(t,w);function k(J,te){return function(re){var ee=[],Te=-1,ue=0,De=J.length,Ie,Ee,we;for(re instanceof Date||(re=new Date(+re));++Te53)return null;"w"in ee||(ee.w=1),"Z"in ee?(ue=qL(sx(ee.y,0,1)),De=ue.getUTCDay(),ue=De>4||De===0?ag.ceil(ue):ag(ue),ue=ax.offset(ue,(ee.V-1)*7),ee.y=ue.getUTCFullYear(),ee.m=ue.getUTCMonth(),ee.d=ue.getUTCDate()+(ee.w+6)%7):(ue=WL(sx(ee.y,0,1)),De=ue.getDay(),ue=De>4||De===0?Qh.ceil(ue):Qh(ue),ue=Oo.offset(ue,(ee.V-1)*7),ee.y=ue.getFullYear(),ee.m=ue.getMonth(),ee.d=ue.getDate()+(ee.w+6)%7)}else("W"in ee||"U"in ee)&&("w"in ee||(ee.w="u"in ee?ee.u%7:"W"in ee?1:0),De="Z"in ee?qL(sx(ee.y,0,1)).getUTCDay():WL(sx(ee.y,0,1)).getDay(),ee.m=0,ee.d="W"in ee?(ee.w+6)%7+ee.W*7-(De+5)%7:ee.w+ee.U*7-(De+6)%7);return"Z"in ee?(ee.H+=ee.Z/100|0,ee.M+=ee.Z%100,qL(ee)):WL(ee)}}o(E,"newParse");function A(J,te,re,ee){for(var Te=0,ue=te.length,De=re.length,Ie,Ee;Te=De)return-1;if(Ie=te.charCodeAt(Te++),Ie===37){if(Ie=te.charAt(Te++),Ee=C[Ie in iJ?te.charAt(Te++):Ie],!Ee||(ee=Ee(J,re,ee))<0)return-1}else if(Ie!=re.charCodeAt(ee++))return-1}return ee}o(A,"parseSpecifier");function N(J,te,re){var ee=h.exec(te.slice(re));return ee?(J.p=d.get(ee[0].toLowerCase()),re+ee[0].length):-1}o(N,"parsePeriod");function P(J,te,re){var ee=m.exec(te.slice(re));return ee?(J.w=g.get(ee[0].toLowerCase()),re+ee[0].length):-1}o(P,"parseShortWeekday");function I(J,te,re){var ee=f.exec(te.slice(re));return ee?(J.w=p.get(ee[0].toLowerCase()),re+ee[0].length):-1}o(I,"parseWeekday");function D(J,te,re){var ee=x.exec(te.slice(re));return ee?(J.m=b.get(ee[0].toLowerCase()),re+ee[0].length):-1}o(D,"parseShortMonth");function _(J,te,re){var ee=y.exec(te.slice(re));return ee?(J.m=v.get(ee[0].toLowerCase()),re+ee[0].length):-1}o(_,"parseMonth");function R(J,te,re){return A(J,t,te,re)}o(R,"parseLocaleDateTime");function M(J,te,re){return A(J,r,te,re)}o(M,"parseLocaleDate");function L(J,te,re){return A(J,i,te,re)}o(L,"parseLocaleTime");function B(J){return s[J.getDay()]}o(B,"formatShortWeekday");function O(J){return a[J.getDay()]}o(O,"formatWeekday");function $(J){return u[J.getMonth()]}o($,"formatShortMonth");function G(J){return l[J.getMonth()]}o(G,"formatMonth");function F(J){return n[+(J.getHours()>=12)]}o(F,"formatPeriod");function V(J){return 1+~~(J.getMonth()/3)}o(V,"formatQuarter");function H(J){return s[J.getUTCDay()]}o(H,"formatUTCShortWeekday");function j(J){return a[J.getUTCDay()]}o(j,"formatUTCWeekday");function U(J){return u[J.getUTCMonth()]}o(U,"formatUTCShortMonth");function Q(J){return l[J.getUTCMonth()]}o(Q,"formatUTCMonth");function Y(J){return n[+(J.getUTCHours()>=12)]}o(Y,"formatUTCPeriod");function ae(J){return 1+~~(J.getUTCMonth()/3)}return o(ae,"formatUTCQuarter"),{format:o(function(J){var te=k(J+="",T);return te.toString=function(){return J},te},"format"),parse:o(function(J){var te=E(J+="",!1);return te.toString=function(){return J},te},"parse"),utcFormat:o(function(J){var te=k(J+="",w);return te.toString=function(){return J},te},"utcFormat"),utcParse:o(function(J){var te=E(J+="",!0);return te.toString=function(){return J},te},"utcParse")}}function Qr(e,t,r){var i=e<0?"-":"",n=(i?-e:e)+"",a=n.length;return i+(a[t.toLowerCase(),r]))}function e$e(e,t,r){var i=Qn.exec(t.slice(r,r+1));return i?(e.w=+i[0],r+i[0].length):-1}function t$e(e,t,r){var i=Qn.exec(t.slice(r,r+1));return i?(e.u=+i[0],r+i[0].length):-1}function r$e(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.U=+i[0],r+i[0].length):-1}function i$e(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.V=+i[0],r+i[0].length):-1}function n$e(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.W=+i[0],r+i[0].length):-1}function nJ(e,t,r){var i=Qn.exec(t.slice(r,r+4));return i?(e.y=+i[0],r+i[0].length):-1}function aJ(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.y=+i[0]+(+i[0]>68?1900:2e3),r+i[0].length):-1}function a$e(e,t,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return i?(e.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function s$e(e,t,r){var i=Qn.exec(t.slice(r,r+1));return i?(e.q=i[0]*3-3,r+i[0].length):-1}function o$e(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.m=i[0]-1,r+i[0].length):-1}function sJ(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.d=+i[0],r+i[0].length):-1}function l$e(e,t,r){var i=Qn.exec(t.slice(r,r+3));return i?(e.m=0,e.d=+i[0],r+i[0].length):-1}function oJ(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.H=+i[0],r+i[0].length):-1}function c$e(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.M=+i[0],r+i[0].length):-1}function u$e(e,t,r){var i=Qn.exec(t.slice(r,r+2));return i?(e.S=+i[0],r+i[0].length):-1}function h$e(e,t,r){var i=Qn.exec(t.slice(r,r+3));return i?(e.L=+i[0],r+i[0].length):-1}function d$e(e,t,r){var i=Qn.exec(t.slice(r,r+6));return i?(e.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function f$e(e,t,r){var i=ZFe.exec(t.slice(r,r+1));return i?r+i[0].length:-1}function p$e(e,t,r){var i=Qn.exec(t.slice(r));return i?(e.Q=+i[0],r+i[0].length):-1}function m$e(e,t,r){var i=Qn.exec(t.slice(r));return i?(e.s=+i[0],r+i[0].length):-1}function lJ(e,t){return Qr(e.getDate(),t,2)}function g$e(e,t){return Qr(e.getHours(),t,2)}function y$e(e,t){return Qr(e.getHours()%12||12,t,2)}function v$e(e,t){return Qr(1+Oo.count(no(e),e),t,3)}function fJ(e,t){return Qr(e.getMilliseconds(),t,3)}function x$e(e,t){return fJ(e,t)+"000"}function b$e(e,t){return Qr(e.getMonth()+1,t,2)}function T$e(e,t){return Qr(e.getMinutes(),t,2)}function C$e(e,t){return Qr(e.getSeconds(),t,2)}function k$e(e){var t=e.getDay();return t===0?7:t}function w$e(e,t){return Qr(wl.count(no(e)-1,e),t,2)}function pJ(e){var t=e.getDay();return t>=4||t===0?vc(e):vc.ceil(e)}function S$e(e,t){return e=pJ(e),Qr(vc.count(no(e),e)+(no(e).getDay()===4),t,2)}function E$e(e){return e.getDay()}function A$e(e,t){return Qr(Qh.count(no(e)-1,e),t,2)}function _$e(e,t){return Qr(e.getFullYear()%100,t,2)}function D$e(e,t){return e=pJ(e),Qr(e.getFullYear()%100,t,2)}function R$e(e,t){return Qr(e.getFullYear()%1e4,t,4)}function L$e(e,t){var r=e.getDay();return e=r>=4||r===0?vc(e):vc.ceil(e),Qr(e.getFullYear()%1e4,t,4)}function M$e(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Qr(t/60|0,"0",2)+Qr(t%60,"0",2)}function cJ(e,t){return Qr(e.getUTCDate(),t,2)}function N$e(e,t){return Qr(e.getUTCHours(),t,2)}function I$e(e,t){return Qr(e.getUTCHours()%12||12,t,2)}function O$e(e,t){return Qr(1+ax.count(Sl(e),e),t,3)}function mJ(e,t){return Qr(e.getUTCMilliseconds(),t,3)}function P$e(e,t){return mJ(e,t)+"000"}function B$e(e,t){return Qr(e.getUTCMonth()+1,t,2)}function F$e(e,t){return Qr(e.getUTCMinutes(),t,2)}function $$e(e,t){return Qr(e.getUTCSeconds(),t,2)}function z$e(e){var t=e.getUTCDay();return t===0?7:t}function G$e(e,t){return Qr(dp.count(Sl(e)-1,e),t,2)}function gJ(e){var t=e.getUTCDay();return t>=4||t===0?Jh(e):Jh.ceil(e)}function V$e(e,t){return e=gJ(e),Qr(Jh.count(Sl(e),e)+(Sl(e).getUTCDay()===4),t,2)}function W$e(e){return e.getUTCDay()}function q$e(e,t){return Qr(ag.count(Sl(e)-1,e),t,2)}function U$e(e,t){return Qr(e.getUTCFullYear()%100,t,2)}function H$e(e,t){return e=gJ(e),Qr(e.getUTCFullYear()%100,t,2)}function Y$e(e,t){return Qr(e.getUTCFullYear()%1e4,t,4)}function j$e(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Jh(e):Jh.ceil(e),Qr(e.getUTCFullYear()%1e4,t,4)}function X$e(){return"+0000"}function uJ(){return"%"}function hJ(e){return+e}function dJ(e){return Math.floor(+e/1e3)}var iJ,Qn,ZFe,QFe,yJ=z(()=>{"use strict";vw();o(WL,"localDate");o(qL,"utcDate");o(sx,"newDate");o(UL,"formatLocale");iJ={"-":"",_:" ",0:"0"},Qn=/^\s*\d+/,ZFe=/^%/,QFe=/[\\^$*+?|[\]().{}]/g;o(Qr,"pad");o(JFe,"requote");o(ox,"formatRe");o(lx,"formatLookup");o(e$e,"parseWeekdayNumberSunday");o(t$e,"parseWeekdayNumberMonday");o(r$e,"parseWeekNumberSunday");o(i$e,"parseWeekNumberISO");o(n$e,"parseWeekNumberMonday");o(nJ,"parseFullYear");o(aJ,"parseYear");o(a$e,"parseZone");o(s$e,"parseQuarter");o(o$e,"parseMonthNumber");o(sJ,"parseDayOfMonth");o(l$e,"parseDayOfYear");o(oJ,"parseHour24");o(c$e,"parseMinutes");o(u$e,"parseSeconds");o(h$e,"parseMilliseconds");o(d$e,"parseMicroseconds");o(f$e,"parseLiteralPercent");o(p$e,"parseUnixTimestamp");o(m$e,"parseUnixTimestampSeconds");o(lJ,"formatDayOfMonth");o(g$e,"formatHour24");o(y$e,"formatHour12");o(v$e,"formatDayOfYear");o(fJ,"formatMilliseconds");o(x$e,"formatMicroseconds");o(b$e,"formatMonthNumber");o(T$e,"formatMinutes");o(C$e,"formatSeconds");o(k$e,"formatWeekdayNumberMonday");o(w$e,"formatWeekNumberSunday");o(pJ,"dISO");o(S$e,"formatWeekNumberISO");o(E$e,"formatWeekdayNumberSunday");o(A$e,"formatWeekNumberMonday");o(_$e,"formatYear");o(D$e,"formatYearISO");o(R$e,"formatFullYear");o(L$e,"formatFullYearISO");o(M$e,"formatZone");o(cJ,"formatUTCDayOfMonth");o(N$e,"formatUTCHour24");o(I$e,"formatUTCHour12");o(O$e,"formatUTCDayOfYear");o(mJ,"formatUTCMilliseconds");o(P$e,"formatUTCMicroseconds");o(B$e,"formatUTCMonthNumber");o(F$e,"formatUTCMinutes");o($$e,"formatUTCSeconds");o(z$e,"formatUTCWeekdayNumberMonday");o(G$e,"formatUTCWeekNumberSunday");o(gJ,"UTCdISO");o(V$e,"formatUTCWeekNumberISO");o(W$e,"formatUTCWeekdayNumberSunday");o(q$e,"formatUTCWeekNumberMonday");o(U$e,"formatUTCYear");o(H$e,"formatUTCYearISO");o(Y$e,"formatUTCFullYear");o(j$e,"formatUTCFullYearISO");o(X$e,"formatUTCZone");o(uJ,"formatLiteralPercent");o(hJ,"formatUnixTimestamp");o(dJ,"formatUnixTimestampSeconds")});function HL(e){return sg=UL(e),fp=sg.format,vJ=sg.parse,xJ=sg.utcFormat,bJ=sg.utcParse,sg}var sg,fp,vJ,xJ,bJ,TJ=z(()=>{"use strict";yJ();HL({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});o(HL,"defaultLocale")});var YL=z(()=>{"use strict";TJ()});function K$e(e){return new Date(e)}function Z$e(e){return e instanceof Date?+e:+new Date(+e)}function CJ(e,t,r,i,n,a,s,l,u,h){var d=ix(),f=d.invert,p=d.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),T=h("%B"),w=h("%Y");function C(k){return(u(k){"use strict";vw();YL();_L();rx();qQ();o(K$e,"date");o(Z$e,"number");o(CJ,"calendar");o(xw,"time")});var wJ=z(()=>{"use strict";FQ();WQ();wL();kJ()});function jL(e){for(var t=e.length/6|0,r=new Array(t),i=0;i{"use strict";o(jL,"default")});var XL,EJ=z(()=>{"use strict";SJ();XL=jL("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var AJ=z(()=>{"use strict";EJ()});function Fi(e){return o(function(){return e},"constant")}var bw=z(()=>{"use strict";o(Fi,"default")});function DJ(e){return e>1?0:e<-1?og:Math.acos(e)}function ZL(e){return e>=1?cx:e<=-1?-cx:Math.asin(e)}var KL,da,ed,_J,Tw,El,pp,Jn,og,cx,lg,Cw=z(()=>{"use strict";KL=Math.abs,da=Math.atan2,ed=Math.cos,_J=Math.max,Tw=Math.min,El=Math.sin,pp=Math.sqrt,Jn=1e-12,og=Math.PI,cx=og/2,lg=2*og;o(DJ,"acos");o(ZL,"asin")});function kw(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let i=Math.floor(r);if(!(i>=0))throw new RangeError(`invalid digits: ${r}`);t=i}return e},()=>new ap(t)}var QL=z(()=>{"use strict";jR();o(kw,"withPath")});function Q$e(e){return e.innerRadius}function J$e(e){return e.outerRadius}function eze(e){return e.startAngle}function tze(e){return e.endAngle}function rze(e){return e&&e.padAngle}function ize(e,t,r,i,n,a,s,l){var u=r-e,h=i-t,d=s-n,f=l-a,p=f*u-d*h;if(!(p*pR*R+M*M&&(A=P,N=I),{cx:A,cy:N,x01:-d,y01:-f,x11:A*(n/C-1),y11:N*(n/C-1)}}function Al(){var e=Q$e,t=J$e,r=Fi(0),i=null,n=eze,a=tze,s=rze,l=null,u=kw(h);function h(){var d,f,p=+e.apply(this,arguments),m=+t.apply(this,arguments),g=n.apply(this,arguments)-cx,y=a.apply(this,arguments)-cx,v=KL(y-g),x=y>g;if(l||(l=d=u()),mJn))l.moveTo(0,0);else if(v>lg-Jn)l.moveTo(m*ed(g),m*El(g)),l.arc(0,0,m,g,y,!x),p>Jn&&(l.moveTo(p*ed(y),p*El(y)),l.arc(0,0,p,y,g,x));else{var b=g,T=y,w=g,C=y,k=v,E=v,A=s.apply(this,arguments)/2,N=A>Jn&&(i?+i.apply(this,arguments):pp(p*p+m*m)),P=Tw(KL(m-p)/2,+r.apply(this,arguments)),I=P,D=P,_,R;if(N>Jn){var M=ZL(N/p*El(A)),L=ZL(N/m*El(A));(k-=M*2)>Jn?(M*=x?1:-1,w+=M,C-=M):(k=0,w=C=(g+y)/2),(E-=L*2)>Jn?(L*=x?1:-1,b+=L,T-=L):(E=0,b=T=(g+y)/2)}var B=m*ed(b),O=m*El(b),$=p*ed(C),G=p*El(C);if(P>Jn){var F=m*ed(T),V=m*El(T),H=p*ed(w),j=p*El(w),U;if(vJn?D>Jn?(_=ww(H,j,B,O,m,D,x),R=ww(F,V,$,G,m,D,x),l.moveTo(_.cx+_.x01,_.cy+_.y01),DJn)||!(k>Jn)?l.lineTo($,G):I>Jn?(_=ww($,G,F,V,p,-I,x),R=ww(B,O,H,j,p,-I,x),l.lineTo(_.cx+_.x01,_.cy+_.y01),I{"use strict";bw();Cw();QL();o(Q$e,"arcInnerRadius");o(J$e,"arcOuterRadius");o(eze,"arcStartAngle");o(tze,"arcEndAngle");o(rze,"arcPadAngle");o(ize,"intersect");o(ww,"cornerTangents");o(Al,"default")});function ux(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}var uVt,JL=z(()=>{"use strict";uVt=Array.prototype.slice;o(ux,"default")});function LJ(e){this._context=e}function xc(e){return new LJ(e)}var eM=z(()=>{"use strict";o(LJ,"Linear");LJ.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}},"point")};o(xc,"default")});function MJ(e){return e[0]}function NJ(e){return e[1]}var IJ=z(()=>{"use strict";o(MJ,"x");o(NJ,"y")});function _l(e,t){var r=Fi(!0),i=null,n=xc,a=null,s=kw(l);e=typeof e=="function"?e:e===void 0?MJ:Fi(e),t=typeof t=="function"?t:t===void 0?NJ:Fi(t);function l(u){var h,d=(u=ux(u)).length,f,p=!1,m;for(i==null&&(a=n(m=s())),h=0;h<=d;++h)!(h{"use strict";JL();bw();eM();QL();IJ();o(_l,"default")});function tM(e,t){return te?1:t>=e?0:NaN}var PJ=z(()=>{"use strict";o(tM,"default")});function rM(e){return e}var BJ=z(()=>{"use strict";o(rM,"default")});function Sw(){var e=rM,t=tM,r=null,i=Fi(0),n=Fi(lg),a=Fi(0);function s(l){var u,h=(l=ux(l)).length,d,f,p=0,m=new Array(h),g=new Array(h),y=+i.apply(this,arguments),v=Math.min(lg,Math.max(-lg,n.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),T=b*(v<0?-1:1),w;for(u=0;u0&&(p+=w);for(t!=null?m.sort(function(C,k){return t(g[C],g[k])}):r!=null&&m.sort(function(C,k){return r(l[C],l[k])}),u=0,f=p?(v-h*T)/p:0;u0?w*f:0)+T,g[d]={data:l[d],index:u,value:w,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(e=typeof l=="function"?l:Fi(+l),s):e},s.sortValues=function(l){return arguments.length?(t=l,r=null,s):t},s.sort=function(l){return arguments.length?(r=l,t=null,s):r},s.startAngle=function(l){return arguments.length?(i=typeof l=="function"?l:Fi(+l),s):i},s.endAngle=function(l){return arguments.length?(n=typeof l=="function"?l:Fi(+l),s):n},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:Fi(+l),s):a},s}var FJ=z(()=>{"use strict";JL();bw();PJ();BJ();Cw();o(Sw,"default")});function hx(e){return new Ew(e,!0)}function dx(e){return new Ew(e,!1)}var Ew,$J=z(()=>{"use strict";Ew=class{static{o(this,"Bump")}constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}};o(hx,"bumpX");o(dx,"bumpY")});function ao(){}var fx=z(()=>{"use strict";o(ao,"default")});function cg(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function px(e){this._context=e}function Dl(e){return new px(e)}var mx=z(()=>{"use strict";o(cg,"point");o(px,"Basis");px.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:cg(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:cg(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t},"point")};o(Dl,"default")});function zJ(e){this._context=e}function Aw(e){return new zJ(e)}var GJ=z(()=>{"use strict";fx();mx();o(zJ,"BasisClosed");zJ.prototype={areaStart:ao,areaEnd:ao,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:cg(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t},"point")};o(Aw,"default")});function VJ(e){this._context=e}function _w(e){return new VJ(e)}var WJ=z(()=>{"use strict";mx();o(VJ,"BasisOpen");VJ.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,i=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,i):this._context.moveTo(r,i);break;case 3:this._point=4;default:cg(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t},"point")};o(_w,"default")});function qJ(e,t){this._basis=new px(e),this._beta=t}var iM,UJ=z(()=>{"use strict";mx();o(qJ,"Bundle");qJ.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var e=this._x,t=this._y,r=e.length-1;if(r>0)for(var i=e[0],n=t[0],a=e[r]-i,s=t[r]-n,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*e[l]+(1-this._beta)*(i+u*a),this._beta*t[l]+(1-this._beta)*(n+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(e,t){this._x.push(+e),this._y.push(+t)},"point")};iM=o((function e(t){function r(i){return t===1?new px(i):new qJ(i,t)}return o(r,"bundle"),r.beta=function(i){return e(+i)},r}),"custom")(.85)});function ug(e,t,r){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-r),e._x2,e._y2)}function Dw(e,t){this._context=e,this._k=(1-t)/6}var gx,yx=z(()=>{"use strict";o(ug,"point");o(Dw,"Cardinal");Dw.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:ug(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:ug(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};gx=o((function e(t){function r(i){return new Dw(i,t)}return o(r,"cardinal"),r.tension=function(i){return e(+i)},r}),"custom")(0)});function Rw(e,t){this._context=e,this._k=(1-t)/6}var nM,aM=z(()=>{"use strict";fx();yx();o(Rw,"CardinalClosed");Rw.prototype={areaStart:ao,areaEnd:ao,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:ug(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};nM=o((function e(t){function r(i){return new Rw(i,t)}return o(r,"cardinal"),r.tension=function(i){return e(+i)},r}),"custom")(0)});function Lw(e,t){this._context=e,this._k=(1-t)/6}var sM,oM=z(()=>{"use strict";yx();o(Lw,"CardinalOpen");Lw.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ug(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};sM=o((function e(t){function r(i){return new Lw(i,t)}return o(r,"cardinal"),r.tension=function(i){return e(+i)},r}),"custom")(0)});function vx(e,t,r){var i=e._x1,n=e._y1,a=e._x2,s=e._y2;if(e._l01_a>Jn){var l=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,u=3*e._l01_a*(e._l01_a+e._l12_a);i=(i*l-e._x0*e._l12_2a+e._x2*e._l01_2a)/u,n=(n*l-e._y0*e._l12_2a+e._y2*e._l01_2a)/u}if(e._l23_a>Jn){var h=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,d=3*e._l23_a*(e._l23_a+e._l12_a);a=(a*h+e._x1*e._l23_2a-t*e._l12_2a)/d,s=(s*h+e._y1*e._l23_2a-r*e._l12_2a)/d}e._context.bezierCurveTo(i,n,a,s,e._x2,e._y2)}function HJ(e,t){this._context=e,this._alpha=t}var xx,Mw=z(()=>{"use strict";Cw();yx();o(vx,"point");o(HJ,"CatmullRom");HJ.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:vx(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};xx=o((function e(t){function r(i){return t?new HJ(i,t):new Dw(i,0)}return o(r,"catmullRom"),r.alpha=function(i){return e(+i)},r}),"custom")(.5)});function YJ(e,t){this._context=e,this._alpha=t}var lM,jJ=z(()=>{"use strict";aM();fx();Mw();o(YJ,"CatmullRomClosed");YJ.prototype={areaStart:ao,areaEnd:ao,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:vx(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};lM=o((function e(t){function r(i){return t?new YJ(i,t):new Rw(i,0)}return o(r,"catmullRom"),r.alpha=function(i){return e(+i)},r}),"custom")(.5)});function XJ(e,t){this._context=e,this._alpha=t}var cM,KJ=z(()=>{"use strict";oM();Mw();o(XJ,"CatmullRomOpen");XJ.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:vx(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};cM=o((function e(t){function r(i){return t?new XJ(i,t):new Lw(i,0)}return o(r,"catmullRom"),r.alpha=function(i){return e(+i)},r}),"custom")(.5)});function ZJ(e){this._context=e}function Nw(e){return new ZJ(e)}var QJ=z(()=>{"use strict";fx();o(ZJ,"LinearClosed");ZJ.prototype={areaStart:ao,areaEnd:ao,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))},"point")};o(Nw,"default")});function JJ(e){return e<0?-1:1}function eee(e,t,r){var i=e._x1-e._x0,n=t-e._x1,a=(e._y1-e._y0)/(i||n<0&&-0),s=(r-e._y1)/(n||i<0&&-0),l=(a*n+s*i)/(i+n);return(JJ(a)+JJ(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function tee(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function uM(e,t,r){var i=e._x0,n=e._y0,a=e._x1,s=e._y1,l=(a-i)/3;e._context.bezierCurveTo(i+l,n+l*t,a-l,s-l*r,a,s)}function Iw(e){this._context=e}function ree(e){this._context=new iee(e)}function iee(e){this._context=e}function bx(e){return new Iw(e)}function Tx(e){return new ree(e)}var nee=z(()=>{"use strict";o(JJ,"sign");o(eee,"slope3");o(tee,"slope2");o(uM,"point");o(Iw,"MonotoneX");Iw.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:uM(this,this._t0,tee(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,uM(this,tee(this,r=eee(this,e,t)),r);break;default:uM(this,this._t0,r=eee(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}},"point")};o(ree,"MonotoneY");(ree.prototype=Object.create(Iw.prototype)).point=function(e,t){Iw.prototype.point.call(this,t,e)};o(iee,"ReflectContext");iee.prototype={moveTo:o(function(e,t){this._context.moveTo(t,e)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(e,t){this._context.lineTo(t,e)},"lineTo"),bezierCurveTo:o(function(e,t,r,i,n,a){this._context.bezierCurveTo(t,e,i,r,a,n)},"bezierCurveTo")};o(bx,"monotoneX");o(Tx,"monotoneY")});function see(e){this._context=e}function aee(e){var t,r=e.length-1,i,n=new Array(r),a=new Array(r),s=new Array(r);for(n[0]=0,a[0]=2,s[0]=e[0]+2*e[1],t=1;t=0;--t)n[t]=(s[t]-n[t+1])/a[t];for(a[r-1]=(e[r]+n[r-1])/2,t=0;t{"use strict";o(see,"Natural");see.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var i=aee(e),n=aee(t),a=0,s=1;s{"use strict";o(Ow,"Step");Ow.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t},"point")};o(dg,"default");o(Cx,"stepBefore");o(kx,"stepAfter")});var cee=z(()=>{"use strict";RJ();OJ();FJ();GJ();WJ();mx();$J();UJ();aM();oM();yx();jJ();KJ();Mw();QJ();eM();nee();oee();lee()});var uee=z(()=>{"use strict"});var hee=z(()=>{"use strict"});function td(e,t,r){this.k=e,this.x=t,this.y=r}function dM(e){for(;!e.__zoom;)if(!(e=e.parentNode))return hM;return e.__zoom}var hM,fM=z(()=>{"use strict";o(td,"Transform");td.prototype={constructor:td,scale:o(function(e){return e===1?this:new td(this.k*e,this.x,this.y)},"scale"),translate:o(function(e,t){return e===0&t===0?this:new td(this.k,this.x+this.k*e,this.y+this.k*t)},"translate"),apply:o(function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},"apply"),applyX:o(function(e){return e*this.k+this.x},"applyX"),applyY:o(function(e){return e*this.k+this.y},"applyY"),invert:o(function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},"invert"),invertX:o(function(e){return(e-this.x)/this.k},"invertX"),invertY:o(function(e){return(e-this.y)/this.k},"invertY"),rescaleX:o(function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},"rescaleX"),rescaleY:o(function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};hM=new td(1,0,0);dM.prototype=td.prototype;o(dM,"transform")});var dee=z(()=>{"use strict"});var fee=z(()=>{"use strict";Jk();uee();hee();fM();dee()});var pee=z(()=>{"use strict";fee();fM()});var Rr=z(()=>{"use strict";qh();CX();GZ();UZ();Xm();HZ();YZ();t8();fK();jZ();WR();XZ();ZZ();sL();hQ();OQ();Qm();jR();PQ();KZ();BQ();wJ();AJ();xl();cee();vw();YL();Yk();Jk();pee()});var mee=Js(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.BLANK_URL=ea.relativeFirstCharacters=ea.whitespaceEscapeCharsRegex=ea.urlSchemeRegex=ea.ctrlCharactersRegex=ea.htmlCtrlEntityRegex=ea.htmlEntitiesRegex=ea.invalidProtocolRegex=void 0;ea.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;ea.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;ea.htmlCtrlEntityRegex=/&(newline|tab);/gi;ea.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;ea.urlSchemeRegex=/^.+(:|:)/gim;ea.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;ea.relativeFirstCharacters=[".","/"];ea.BLANK_URL="about:blank"});var fg=Js(Pw=>{"use strict";Object.defineProperty(Pw,"__esModule",{value:!0});Pw.sanitizeUrl=void 0;var Da=mee();function nze(e){return Da.relativeFirstCharacters.indexOf(e[0])>-1}o(nze,"isRelativeUrlWithoutProtocol");function aze(e){var t=e.replace(Da.ctrlCharactersRegex,"");return t.replace(Da.htmlEntitiesRegex,function(r,i){return String.fromCharCode(i)})}o(aze,"decodeHtmlCharacters");function sze(e){return URL.canParse(e)}o(sze,"isValidUrl");function gee(e){try{return decodeURIComponent(e)}catch{return e}}o(gee,"decodeURI");function oze(e){if(!e)return Da.BLANK_URL;var t,r=gee(e.trim());do r=aze(r).replace(Da.htmlCtrlEntityRegex,"").replace(Da.ctrlCharactersRegex,"").replace(Da.whitespaceEscapeCharsRegex,"").trim(),r=gee(r),t=r.match(Da.ctrlCharactersRegex)||r.match(Da.htmlEntitiesRegex)||r.match(Da.htmlCtrlEntityRegex)||r.match(Da.whitespaceEscapeCharsRegex);while(t&&t.length>0);var i=r;if(!i)return Da.BLANK_URL;if(nze(i))return i;var n=i.trimStart(),a=n.match(Da.urlSchemeRegex);if(!a)return i;var s=a[0].toLowerCase().trim();if(Da.invalidProtocolRegex.test(s))return Da.BLANK_URL;var l=n.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!sze(l))return Da.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(oze,"sanitizeUrl");Pw.sanitizeUrl=oze});var pM,mp,Bw,yee,Fw,$w,fa,wx,zw,gp=z(()=>{"use strict";pM=ys(fg(),1);Rr();Ir();mp=o((e,t)=>{let r=e.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.name&&r.attr("name",t.name),t.rx&&r.attr("rx",t.rx),t.ry&&r.attr("ry",t.ry),t.attrs!==void 0)for(let i in t.attrs)r.attr(i,t.attrs[i]);return t.class&&r.attr("class",t.class),r},"drawRect"),Bw=o((e,t)=>{let r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};mp(e,r).lower()},"drawBackgroundRect"),yee=o((e,t)=>{let r=t.text.replace(Uf," "),i=e.append("text");i.attr("x",t.x),i.attr("y",t.y),i.attr("class","legend"),i.style("text-anchor",t.anchor),t.class&&i.attr("class",t.class);let n=i.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(r),i},"drawText"),Fw=o((e,t,r,i)=>{let n=e.append("image");n.attr("x",t),n.attr("y",r);let a=(0,pM.sanitizeUrl)(i);n.attr("xlink:href",a)},"drawImage"),$w=o((e,t,r,i)=>{let n=e.append("use");n.attr("x",t),n.attr("y",r);let a=(0,pM.sanitizeUrl)(i);n.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),fa=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),wx=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),zw=o(()=>{let e=Je(".mermaidTooltip");return e.empty()&&(e=Je("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),e},"createTooltip")});var vee,mM,xee,lze,cze,uze,hze,dze,fze,pze,mze,gze,yze,vze,Nu,Rl,bee=z(()=>{"use strict";Ir();gp();vee=ys(fg(),1),mM=o(function(e,t){return mp(e,t)},"drawRect"),xee=o(function(e,t,r,i,n,a){let s=e.append("image");s.attr("width",t),s.attr("height",r),s.attr("x",i),s.attr("y",n);let l=a.startsWith("data:image/png;base64")?a:(0,vee.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),lze=o((e,t,r,i)=>{let n=e.append("g"),a=0;for(let s of t){let l=s.textColor?s.textColor:"#444444",u=s.lineColor?s.lineColor:"#444444",h=s.offsetX?parseInt(s.offsetX):0,d=s.offsetY?parseInt(s.offsetY):0,f="";if(a===0){let m=n.append("line");m.attr("x1",s.startPoint.x),m.attr("y1",s.startPoint.y),m.attr("x2",s.endPoint.x),m.attr("y2",s.endPoint.y),m.attr("stroke-width","1"),m.attr("stroke",u),m.style("fill","none"),s.type!=="rel_b"&&m.attr("marker-end","url("+f+"#"+i+"-arrowhead)"),(s.type==="birel"||s.type==="rel_b")&&m.attr("marker-start","url("+f+"#"+i+"-arrowend)"),a=-1}else{let m=n.append("path");m.attr("fill","none").attr("stroke-width","1").attr("stroke",u).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",s.startPoint.x).replaceAll("starty",s.startPoint.y).replaceAll("controlx",s.startPoint.x+(s.endPoint.x-s.startPoint.x)/2-(s.endPoint.x-s.startPoint.x)/4).replaceAll("controly",s.startPoint.y+(s.endPoint.y-s.startPoint.y)/2).replaceAll("stopx",s.endPoint.x).replaceAll("stopy",s.endPoint.y)),s.type!=="rel_b"&&m.attr("marker-end","url("+f+"#"+i+"-arrowhead)"),(s.type==="birel"||s.type==="rel_b")&&m.attr("marker-start","url("+f+"#"+i+"-arrowend)")}let p=r.messageFont();Nu(r)(s.label.text,n,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+h,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+d,s.label.width,s.label.height,{fill:l},p),s.techn&&s.techn.text!==""&&(p=r.messageFont(),Nu(r)("["+s.techn.text+"]",n,Math.min(s.startPoint.x,s.endPoint.x)+Math.abs(s.endPoint.x-s.startPoint.x)/2+h,Math.min(s.startPoint.y,s.endPoint.y)+Math.abs(s.endPoint.y-s.startPoint.y)/2+r.messageFontSize+5+d,Math.max(s.label.width,s.techn.width),s.techn.height,{fill:l,"font-style":"italic"},p))}},"drawRels"),cze=o(function(e,t,r){let i=e.append("g"),n=t.bgColor?t.bgColor:"none",a=t.borderColor?t.borderColor:"#444444",s=t.fontColor?t.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(l={"stroke-width":1});let u={x:t.x,y:t.y,fill:n,stroke:a,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:l};mM(i,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,Nu(r)(t.label.text,i,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},h),t.type&&t.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,Nu(r)(t.type.text,i,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},h)),t.descr&&t.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,Nu(r)(t.descr.text,i,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},h))},"drawBoundary"),uze=o(function(e,t,r){let i=t.bgColor?t.bgColor:r[t.typeC4Shape.text+"_bg_color"],n=t.borderColor?t.borderColor:r[t.typeC4Shape.text+"_border_color"],a=t.fontColor?t.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=e.append("g");l.attr("class","person-man");let u=fa();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=t.x,u.y=t.y,u.fill=i,u.width=t.width,u.height=t.height,u.stroke=n,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},mM(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",i).attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",i).attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let h=vze(r,t.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":xee(l,48,48,t.x+t.width/2-24,t.y+t.image.Y,s);break}let d=r[t.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=a,Nu(r)(t.label.text,l,t.x,t.y+t.label.Y,t.width,t.height,{fill:a},d),d=r[t.typeC4Shape.text+"Font"](),d.fontColor=a,t.techn&&t.techn?.text!==""?Nu(r)(t.techn.text,l,t.x,t.y+t.techn.Y,t.width,t.height,{fill:a,"font-style":"italic"},d):t.type&&t.type.text!==""&&Nu(r)(t.type.text,l,t.x,t.y+t.type.Y,t.width,t.height,{fill:a,"font-style":"italic"},d),t.descr&&t.descr.text!==""&&(d=r.personFont(),d.fontColor=a,Nu(r)(t.descr.text,l,t.x,t.y+t.descr.Y,t.width,t.height,{fill:a},d)),t.height},"drawC4Shape"),hze=o(function(e,t){e.append("defs").append("symbol").attr("id",t+"-database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),dze=o(function(e,t){e.append("defs").append("symbol").attr("id",t+"-computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),fze=o(function(e,t){e.append("defs").append("symbol").attr("id",t+"-clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),pze=o(function(e,t){e.append("defs").append("marker").attr("id",t+"-arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),mze=o(function(e,t){e.append("defs").append("marker").attr("id",t+"-arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),gze=o(function(e,t){e.append("defs").append("marker").attr("id",t+"-filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),yze=o(function(e,t){let i=e.append("defs").append("marker").attr("id",t+"-crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);i.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),i.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),vze=o((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"getC4ShapeFont"),Nu=(function(){function e(n,a,s,l,u,h,d){let f=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(n);i(f,d)}o(e,"byText");function t(n,a,s,l,u,h,d,f){let{fontSize:p,fontFamily:m,fontWeight:g}=f,y=n.split(vt.lineBreakRegex);for(let v=0;v=0}var Cee=z(()=>{"use strict";o(Tee,"isLength")});function Vw(e){return e!=null&&typeof e!="function"&&Tee(e.length)}var gM=z(()=>{"use strict";Cee();o(Vw,"isArrayLike")});function kee(e){return e==="__proto__"}var wee=z(()=>{"use strict";o(kee,"isUnsafeProperty")});function rd(e){return e==null||typeof e!="object"&&typeof e!="function"}var Sx=z(()=>{"use strict";o(rd,"isPrimitive")});function Ww(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}var yM=z(()=>{"use strict";o(Ww,"getSymbols")});function Iu(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var Ex=z(()=>{"use strict";o(Iu,"getTag")});var Ax,id,yp,vp,xp,_x,Dx,Rx,Lx,qw,Mx,pg,Nx,Uw,Hw,Yw,jw,Xw,Kw,Zw,Qw,Jw,e4=z(()=>{"use strict";Ax="[object RegExp]",id="[object String]",yp="[object Number]",vp="[object Boolean]",xp="[object Arguments]",_x="[object Symbol]",Dx="[object Date]",Rx="[object Map]",Lx="[object Set]",qw="[object Array]",Mx="[object ArrayBuffer]",pg="[object Object]",Nx="[object DataView]",Uw="[object Uint8Array]",Hw="[object Uint8ClampedArray]",Yw="[object Uint16Array]",jw="[object Uint32Array]",Xw="[object Int8Array]",Kw="[object Int16Array]",Zw="[object Int32Array]",Qw="[object Float32Array]",Jw="[object Float64Array]"});function mg(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}var t4=z(()=>{"use strict";o(mg,"isTypedArray")});function See(e,t){return gg(e,void 0,e,new Map,t)}function gg(e,t,r,i=new Map,n=void 0){let a=n?.(e,t,r,i);if(a!==void 0)return a;if(rd(e))return e;if(i.has(e))return i.get(e);if(Array.isArray(e)){let s=new Array(e.length);i.set(e,s);for(let l=0;l{"use strict";yM();Ex();e4();Sx();t4();o(See,"cloneDeepWith");o(gg,"cloneDeepWithImpl");o(Po,"copyProperties");o(xze,"isCloneableObject")});function Aee(e,t){return See(e,(r,i,n,a)=>{let s=t?.(r,i,n,a);if(s!==void 0)return s;if(typeof e=="object"){if(Iu(e)===pg&&typeof e.constructor!="function"){let l={};return a.set(e,l),Po(l,e,n,a),l}switch(Object.prototype.toString.call(e)){case yp:case id:case vp:{let l=new e.constructor(e?.valueOf());return Po(l,e),l}case xp:{let l={};return Po(l,e),l.length=e.length,l[Symbol.iterator]=e[Symbol.iterator],l}default:return}}})}var _ee=z(()=>{"use strict";Eee();Ex();e4();o(Aee,"cloneDeepWith")});function vM(e){return Aee(e)}var Dee=z(()=>{"use strict";_ee();o(vM,"cloneDeep")});function Ix(e){return e!==null&&typeof e=="object"&&Iu(e)==="[object Arguments]"}var xM=z(()=>{"use strict";Ex();o(Ix,"isArguments")});function Ox(e){return typeof e=="object"&&e!==null}var bM=z(()=>{"use strict";o(Ox,"isObjectLike")});function Ree(e){return Ox(e)&&Vw(e)}var Lee=z(()=>{"use strict";gM();bM();o(Ree,"isArrayLikeObject")});function Mee(e){return Array.isArray(e)}var Nee=z(()=>{"use strict";o(Mee,"isArray")});function bp(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");let r=o(function(...n){let a=t?t.apply(this,n):n[0],s=r.cache;if(s.has(a))return s.get(a);let l=e.apply(this,n);return r.cache=s.set(a,l)||s,l},"memoized"),i=bp.Cache||Map;return r.cache=new i,r}var Iee=z(()=>{"use strict";o(bp,"memoize");bp.Cache=Map});function Oee(){}var Pee=z(()=>{"use strict";o(Oee,"noop")});function Bee(e){let t=e?.constructor,r=typeof t=="function"?t.prototype:Object.prototype;return e===r}var Fee=z(()=>{"use strict";o(Bee,"isPrototype")});function nd(e){return mg(e)}var r4=z(()=>{"use strict";t4();o(nd,"isTypedArray")});function CM(e){if(rd(e))return e;let t=Iu(e);if(!bze(e))return{};if(Mee(e)){let i=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(i.index=e.index,i.input=e.input),i}if(nd(e)){let i=e,n=i.constructor;return new n(i.buffer,i.byteOffset,i.length)}if(t===Mx)return new ArrayBuffer(e.byteLength);if(t===Nx){let i=e,n=i.buffer,a=i.byteOffset,s=i.byteLength,l=new ArrayBuffer(s),u=new Uint8Array(n,a,s);return new Uint8Array(l).set(u),new DataView(l)}if(t===vp||t===yp||t===id){let i=e.constructor,n=new i(e.valueOf());return t===id?Cze(n,e):TM(n,e),n}if(t===Dx)return new Date(Number(e));if(t===Ax){let i=e,n=new RegExp(i.source,i.flags);return n.lastIndex=i.lastIndex,n}if(t===_x)return Object(Symbol.prototype.valueOf.call(e));if(t===Rx){let i=e,n=new Map;return i.forEach((a,s)=>{n.set(s,a)}),n}if(t===Lx){let i=e,n=new Set;return i.forEach(a=>{n.add(a)}),n}if(t===xp){let i=e,n={};return TM(n,i),n.length=i.length,n[Symbol.iterator]=i[Symbol.iterator],n}let r={};return kze(r,e),TM(r,e),Tze(r,e),r}function bze(e){switch(Iu(e)){case xp:case qw:case Mx:case Nx:case vp:case Dx:case Qw:case Jw:case Xw:case Kw:case Zw:case Rx:case yp:case pg:case Ax:case Lx:case id:case _x:case Uw:case Hw:case Yw:case jw:return!0;default:return!1}}function TM(e,t){for(let r in t)Object.hasOwn(t,r)&&(e[r]=t[r])}function Tze(e,t){let r=Object.getOwnPropertySymbols(t);for(let i=0;i=r)&&(e[i]=t[i])}function kze(e,t){let r=Object.getPrototypeOf(t);r!==null&&typeof t.constructor=="function"&&Object.setPrototypeOf(e,r)}var $ee=z(()=>{"use strict";Sx();Ex();e4();Nee();r4();o(CM,"clone");o(bze,"isCloneableObject");o(TM,"copyOwnProperties");o(Tze,"copySymbolProperties");o(Cze,"cloneStringObjectProperties");o(kze,"copyPrototype")});function i4(e){if(typeof e!="object"||e==null)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!=="[object Object]"){let r=e[Symbol.toStringTag];return r==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${r}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}var zee=z(()=>{"use strict";o(i4,"isPlainObject")});function Gee(e){if(rd(e))return e;if(Array.isArray(e)||mg(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e);if(t==null)return Object.assign(Object.create(t),e);let r=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new r(e);if(e instanceof RegExp){let i=new r(e);return i.lastIndex=e.lastIndex,i}if(e instanceof DataView)return new r(e.buffer.slice(0));if(e instanceof Error){let i;return e instanceof AggregateError?i=new r(e.errors,e.message,{cause:e.cause}):i=new r(e.message,{cause:e.cause}),i.stack=e.stack,Object.assign(i,e),i}if(typeof File<"u"&&e instanceof File)return new r([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e=="object"){let i=Object.create(t);return Object.assign(i,e)}return e}var Vee=z(()=>{"use strict";Sx();t4();o(Gee,"clone")});function Wee(e,...t){let r=t.slice(0,-1),i=t[t.length-1],n=e;for(let a=0;a{"use strict";Dee();wee();Vee();Sx();yM();xM();Lee();bM();zee();r4();o(Wee,"mergeWith");o(n4,"mergeWithDeep")});function kM(e,...t){return Wee(e,...t,Oee)}var Uee=z(()=>{"use strict";qee();Pee();o(kM,"merge")});function a4(e){if(e==null)return!0;if(Vw(e))return typeof e.splice!="function"&&typeof e!="string"&&(typeof Buffer>"u"||!Buffer.isBuffer(e))&&!nd(e)&&!Ix(e)?!1:e.length===0;if(typeof e=="object"){if(e instanceof Map||e instanceof Set)return e.size===0;let t=Object.keys(e);return Bee(e)?t.filter(r=>r!=="constructor").length===0:t.length===0}return!0}var Hee=z(()=>{"use strict";xM();gM();r4();Fee();o(a4,"isEmpty")});var s4=z(()=>{"use strict";Iee();$ee();Uee();Hee()});function EM(e,t){if(!e)return t;let r=`curve${e.charAt(0).toUpperCase()+e.slice(1)}`;return wze[r]??t}function _ze(e,t){let r=e.trim();if(r)return t.securityLevel!=="loose"?(0,Xee.sanitizeUrl)(r):r}function Qee(e,t){return!e||!t?0:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function Rze(e){let t,r=0;e.forEach(n=>{r+=Qee(n,t),t=n});let i=r/2;return AM(e,i)}function Lze(e){return e.length===1?e[0]:Rze(e)}function Nze(e,t,r){let i=structuredClone(r);Z.info("our points",i),t!=="start_left"&&t!=="start_right"&&i.reverse();let n=25+e,a=AM(i,n),s=10+e*.5,l=Math.atan2(i[0].y-a.y,i[0].x-a.x),u={x:0,y:0};return t==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(i[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(i[0].y+a.y)/2):t==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(i[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(i[0].y+a.y)/2-5):t==="end_left"?(u.x=Math.sin(l)*s+(i[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(i[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(i[0].x+a.x)/2,u.y=-Math.cos(l)*s+(i[0].y+a.y)/2),u}function _M(e){let t="",r="";for(let i of e)i!==void 0&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":t=t+i+";");return{style:t,labelStyle:r}}function Ize(e){let t="",r="0123456789abcdef",i=r.length;for(let n=0;nMath.round(parseFloat(a)).toString());return n.includes(r.toString())||n.includes(i.toString())}var Xee,SM,wze,Sze,Eze,Kee,Zee,Aze,Dze,Yee,AM,Mze,jee,DM,RM,Oze,Pze,Tp,Bze,Px,wM,o4,Fze,$ze,Za,Zt,Jee,Qa,bc,Xt=z(()=>{"use strict";Xee=ys(fg(),1);Rr();Ir();MC();St();Xf();Dm();s4();mk();SM="\u200B",wze={curveBasis:Dl,curveBasisClosed:Aw,curveBasisOpen:_w,curveBumpX:hx,curveBumpY:dx,curveBundle:iM,curveCardinalClosed:nM,curveCardinalOpen:sM,curveCardinal:gx,curveCatmullRomClosed:lM,curveCatmullRomOpen:cM,curveCatmullRom:xx,curveLinear:xc,curveLinearClosed:Nw,curveMonotoneX:bx,curveMonotoneY:Tx,curveNatural:hg,curveStep:dg,curveStepAfter:kx,curveStepBefore:Cx},Sze=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Eze=o(function(e,t){let r=Kee(e,/(?:init\b)|(?:initialize\b)/),i={};if(Array.isArray(r)){let s=r.map(l=>l.args);Lm(s),i=Ai(i,[...s])}else i=r.args;if(!i)return;let n=zm(e,t),a="config";return i[a]!==void 0&&(n==="flowchart-v2"&&(n="flowchart"),i[n]=i[a],delete i[a]),i},"detectInit"),Kee=o(function(e,t=null){try{let r=new RegExp(`[%]{2}(?![{]${Sze.source})(?=[}][%]{2}).* +`,"ig");e=e.trim().replace(r,"").replace(/'/gm,'"'),Z.debug(`Detecting diagram directive${t!==null?" type:"+t:""} based on the text:${e}`);let i,n=[];for(;(i=jf.exec(e))!==null;)if(i.index===jf.lastIndex&&jf.lastIndex++,i&&!t||t&&i[1]?.match(t)||t&&i[2]?.match(t)){let a=i[1]?i[1]:i[2],s=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;n.push({type:a,args:s})}return n.length===0?{type:e,args:null}:n.length===1?n[0]:n}catch(r){return Z.error(`ERROR: ${r.message} - Unable to parse directive type: '${t}' based on the text: '${e}'`),{type:void 0,args:null}}},"detectDirective"),Zee=o(function(e){return e.replace(jf,"")},"removeDirectives"),Aze=o(function(e,t){for(let[r,i]of t.entries())if(i.match(e))return r;return-1},"isSubstringInArray");o(EM,"interpolateToCurve");o(_ze,"formatUrl");Dze=o((e,...t)=>{let r=e.split("."),i=r.length-1,n=r[i],a=window;for(let s=0;s{let r=Math.pow(10,t);return Math.round(e*r)/r},"roundNumber"),AM=o((e,t)=>{let r,i=t;for(let n of e){if(r){let a=Qee(n,r);if(a===0)return r;if(a=1)return{x:n.x,y:n.y};if(s>0&&s<1)return{x:Yee((1-s)*r.x+s*n.x,5),y:Yee((1-s)*r.y+s*n.y,5)}}}r=n}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),Mze=o((e,t,r)=>{Z.info(`our points ${JSON.stringify(t)}`),t[0]!==r&&(t=t.reverse());let n=AM(t,25),a=e?10:5,s=Math.atan2(t[0].y-n.y,t[0].x-n.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(t[0].x+n.x)/2,l.y=-Math.cos(s)*a+(t[0].y+n.y)/2,l},"calcCardinalityPosition");o(Nze,"calcTerminalLabelPosition");o(_M,"getStylesFromArray");jee=0,DM=o(()=>(jee++,"id-"+Math.random().toString(36).substr(2,12)+"-"+jee),"generateId");o(Ize,"makeRandomHex");RM=o(e=>Ize(e.length),"random"),Oze=o(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),Pze=o(function(e,t){let r=t.text.replace(vt.lineBreakRegex," "),[,i]=Za(t.fontSize),n=e.append("text");n.attr("x",t.x),n.attr("y",t.y),n.style("text-anchor",t.anchor),n.style("font-family",t.fontFamily),n.style("font-size",i),n.style("font-weight",t.fontWeight),n.attr("fill",t.fill),t.class!==void 0&&n.attr("class",t.class);let a=n.append("tspan");return a.attr("x",t.x+t.textMargin*2),a.attr("fill",t.fill),a.text(r),n},"drawSimpleText"),Tp=bp((e,t,r)=>{if(!e||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r),vt.lineBreakRegex.test(e)))return e;let i=e.split(" ").filter(Boolean),n=[],a="";return i.forEach((s,l)=>{let u=ta(`${s} `,r),h=ta(a,r);if(u>t){let{hyphenatedStrings:p,remainingWord:m}=Bze(s,t,"-",r);n.push(a,...p),a=m}else h+u>=t?(n.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===i.length&&n.push(a)}),n.filter(s=>s!=="").join(r.joinWith)},(e,t,r)=>`${e}${t}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),Bze=bp((e,t,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);let n=[...e],a=[],s="";return n.forEach((l,u)=>{let h=`${s}${l}`;if(ta(h,i)>=t){let f=u+1,p=n.length===f,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(e,t,r="-",i)=>`${e}${t}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);o(l4,"calculateTextHeight");o(ta,"calculateTextWidth");Px=bp((e,t)=>{let{fontSize:r=12,fontFamily:i="Arial",fontWeight:n=400}=t;if(!e)return{width:0,height:0};let[,a]=Za(r),s=["sans-serif",i],l=e.split(vt.lineBreakRegex),u=[],h=Je("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let d=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=Oze();v.text=y||SM;let x=Pze(d,v).style("font-size",a).style("font-weight",n).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}d.remove();let f=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[f]},(e,t)=>`${e}${t.fontSize}${t.fontWeight}${t.fontFamily}`),wM=class{constructor(t=!1,r){this.count=0;this.count=r?r.length:0,this.next=t?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},Fze=o(function(e){return o4=o4||document.createElement("div"),e=escape(e).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),o4.innerHTML=e,unescape(o4.textContent)},"entityDecode");o(LM,"isDetailedError");$ze=o((e,t,r,i)=>{if(!i)return;let n=e.node()?.getBBox();n&&e.append("text").text(i).attr("text-anchor","middle").attr("x",n.x+n.width/2).attr("y",-r).attr("class",t)},"insertTitle"),Za=o(e=>{if(typeof e=="number")return[e,e+"px"];let t=parseInt(e??"",10);return Number.isNaN(t)?[void 0,void 0]:e===String(t)?[t,e+"px"]:[t,e]},"parseFontSize");o(Gr,"cleanAndMerge");Zt={assignWithDepth:Ai,wrapLabel:Tp,calculateTextHeight:l4,calculateTextWidth:ta,calculateTextDimensions:Px,cleanAndMerge:Gr,detectInit:Eze,detectDirective:Kee,isSubstringInArray:Aze,interpolateToCurve:EM,calcLabelPosition:Lze,calcCardinalityPosition:Mze,calcTerminalLabelPosition:Nze,formatUrl:_ze,getStylesFromArray:_M,generateId:DM,random:RM,runFunc:Dze,entityDecode:Fze,insertTitle:$ze,isLabelCoordinateInPath:zze,parseFontSize:Za,InitIDGenerator:wM},Jee=o(function(e){let t=e;return t=t.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),t=t.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),t=t.replace(/#\w+;/g,function(r){let i=r.substring(1,r.length-1);return/^\+?\d+$/.test(i)?"\uFB02\xB0\xB0"+i+"\xB6\xDF":"\uFB02\xB0"+i+"\xB6\xDF"}),t},"encodeEntities"),Qa=o(function(e){return e.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),bc=o((e,t,{counter:r=0,prefix:i,suffix:n},a)=>a||`${i?`${i}_`:""}${e}_${t}_${r}${n?`_${n}`:""}`,"getEdgeId");o(ii,"handleUndefinedAttr");o(zze,"isLabelCoordinateInPath")});function Ll(e,t,r,i,n){if(!t[e].width)if(r)t[e].text=Tp(t[e].text,n,i),t[e].textLines=t[e].text.split(vt.lineBreakRegex).length,t[e].width=n,t[e].height=l4(t[e].text,i);else{let a=t[e].text.split(vt.lineBreakRegex);t[e].textLines=a.length;let s=0;t[e].height=0,t[e].width=0;for(let l of a)t[e].width=Math.max(ta(l,i),t[e].width),s=l4(l,i),t[e].height=t[e].height+s}}function nte(e,t,r,i,n){let a=new d4(n);a.data.widthLimit=r.data.widthLimit/Math.min(MM,i.length);for(let[s,l]of i.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&er.wrap,d=c4(er);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",Ll("label",l,h,d,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=c4(er);Ll("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=c4(er);g.fontSize=g.fontSize-2,Ll("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%MM===0){let g=r.data.startx+er.diagramMarginX,y=r.data.stopy+er.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+er.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let f=n.db.getC4ShapeArray(l.alias),p=n.db.getC4ShapeKeys(l.alias);p.length>0&&ite(a,e,f,p),t=l.alias;let m=n.db.getBoundaries(t);m.length>0&&nte(e,t,a,m,n),l.alias!=="global"&&rte(e,l,a),r.data.stopy=Math.max(a.data.stopy+er.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+er.c4ShapeMargin,r.data.stopx),u4=Math.max(u4,r.data.stopx),h4=Math.max(h4,r.data.stopy)}}var u4,h4,tte,MM,er,d4,NM,Bx,c4,Gze,rte,ite,Ss,ete,Vze,Wze,qze,IM,ate=z(()=>{"use strict";Rr();bee();St();ND();Ir();WD();Ut();Dm();Xt();Di();u4=0,h4=0,tte=4,MM=2;kv.yy=Rv;er={},d4=class{static{o(this,"Bounds")}constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,NM(t.db.getConfig())}setData(t,r,i,n){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=i,this.nextData.stopy=this.data.stopy=n}updateVal(t,r,i,n){t[r]===void 0?t[r]=i:t[r]=n(i,t[r])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+t.margin*2,i=r+t.width,n=this.nextData.starty+t.margin*2,a=n+t.height;(r>=this.data.widthLimit||i>=this.data.widthLimit||this.nextData.cnt>tte)&&(r=this.nextData.startx+t.margin+er.nextLinePaddingX,n=this.nextData.stopy+t.margin*2,this.nextData.stopx=i=r+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=n+t.height,this.nextData.cnt=1),t.x=r,t.y=n,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",n,Math.min),this.updateVal(this.data,"stopx",i,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",n,Math.min),this.updateVal(this.nextData,"stopx",i,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},NM(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},NM=o(function(e){Ai(er,e),e.fontFamily&&(er.personFontFamily=er.systemFontFamily=er.messageFontFamily=e.fontFamily),e.fontSize&&(er.personFontSize=er.systemFontSize=er.messageFontSize=e.fontSize),e.fontWeight&&(er.personFontWeight=er.systemFontWeight=er.messageFontWeight=e.fontWeight)},"setConf"),Bx=o((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"c4ShapeFont"),c4=o(e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),"boundaryFont"),Gze=o(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont");o(Ll,"calcC4ShapeTextWH");rte=o(function(e,t,r){t.x=r.data.startx,t.y=r.data.starty,t.width=r.data.stopx-r.data.startx,t.height=r.data.stopy-r.data.starty,t.label.y=er.c4ShapeMargin-35;let i=t.wrap&&er.wrap,n=c4(er);n.fontSize=n.fontSize+2,n.fontWeight="bold";let a=ta(t.label.text,n);Ll("label",t,i,n,a),Rl.drawBoundary(e,t,er)},"drawBoundary"),ite=o(function(e,t,r,i){let n=0;for(let a of i){n=0;let s=r[a],l=Bx(er,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=ta("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=er.c4ShapePadding,n=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=n,n=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=n,n=s.image.Y+s.image.height);let u=s.wrap&&er.wrap,h=er.width-er.c4ShapePadding*2,d=Bx(er,s.typeC4Shape.text);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",Ll("label",s,u,d,h),s.label.Y=n+8,n=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=Bx(er,s.typeC4Shape.text);Ll("type",s,u,m,h),s.type.Y=n+5,n=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=Bx(er,s.techn.text);Ll("techn",s,u,m,h),s.techn.Y=n+5,n=s.techn.Y+s.techn.height}let f=n,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=Bx(er,s.typeC4Shape.text);Ll("descr",s,u,m,h),s.descr.Y=n+20,n=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),f=n-s.descr.textLines*5}p=p+er.c4ShapePadding,s.width=Math.max(s.width||er.width,p,er.width),s.height=Math.max(s.height||er.height,f,er.height),s.margin=s.margin||er.c4ShapeMargin,e.insert(s),Rl.drawC4Shape(t,s,er)}e.bumpLastMargin(er.c4ShapeMargin)},"drawC4ShapeArray"),Ss=class{static{o(this,"Point")}constructor(t,r){this.x=t,this.y=r}},ete=o(function(e,t){let r=e.x,i=e.y,n=t.x,a=t.y,s=r+e.width/2,l=i+e.height/2,u=Math.abs(r-n),h=Math.abs(i-a),d=h/u,f=e.height/e.width,p=null;return i==a&&rn?p=new Ss(r,l):r==n&&ia&&(p=new Ss(s,i)),r>n&&i=d?p=new Ss(r,l+d*e.width/2):p=new Ss(s-u/h*e.height/2,i+e.height):r=d?p=new Ss(r+e.width,l+d*e.width/2):p=new Ss(s+u/h*e.height/2,i+e.height):ra?f>=d?p=new Ss(r+e.width,l-d*e.width/2):p=new Ss(s+e.height/2*u/h,i):r>n&&i>a&&(f>=d?p=new Ss(r,l-e.width/2*d):p=new Ss(s-e.height/2*u/h,i)),p},"getIntersectPoint"),Vze=o(function(e,t){let r={x:0,y:0};r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=ete(e,r);r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=ete(t,r);return{startPoint:i,endPoint:n}},"getIntersectPoints"),Wze=o(function(e,t,r,i,n){let a=0;for(let s of t){a=a+1;let l=s.wrap&&er.wrap,u=Gze(er);i.db.getC4Type()==="C4Dynamic"&&(s.label.text=a+": "+s.label.text);let d=ta(s.label.text,u);Ll("label",s,l,u,d),s.techn&&s.techn.text!==""&&(d=ta(s.techn.text,u),Ll("techn",s,l,u,d)),s.descr&&s.descr.text!==""&&(d=ta(s.descr.text,u),Ll("descr",s,l,u,d));let f=r(s.from),p=r(s.to),m=Vze(f,p);s.startPoint=m.startPoint,s.endPoint=m.endPoint}Rl.drawRels(e,t,er,n)},"drawRels");o(nte,"drawInsideBoundary");qze=o(function(e,t,r,i){er=ge().c4;let n=ge().securityLevel,a;n==="sandbox"&&(a=Je("#i"+t));let s=n==="sandbox"?Je(a.nodes()[0].contentDocument.body):Je("body"),l=i.db;i.db.setWrap(er.wrap),tte=l.getC4ShapeInRow(),MM=l.getC4BoundaryInRow(),Z.debug(`C:${JSON.stringify(er,null,2)}`);let u=n==="sandbox"?s.select(`[id="${t}"]`):Je(`[id="${t}"]`);Rl.insertComputerIcon(u,t),Rl.insertDatabaseIcon(u,t),Rl.insertClockIcon(u,t);let h=new d4(i);h.setData(er.diagramMarginX,er.diagramMarginX,er.diagramMarginY,er.diagramMarginY),h.data.widthLimit=screen.availWidth,u4=er.diagramMarginX,h4=er.diagramMarginY;let d=i.db.getTitle(),f=i.db.getBoundaries("");nte(u,"",h,f,i),Rl.insertArrowHead(u,t),Rl.insertArrowEnd(u,t),Rl.insertArrowCrossHead(u,t),Rl.insertArrowFilledHead(u,t),Wze(u,i.db.getRels(),i.db.getC4Shape,i,t),h.data.stopx=u4,h.data.stopy=h4;let p=h.data,g=p.stopy-p.starty+2*er.diagramMarginY,v=p.stopx-p.startx+2*er.diagramMarginX;d&&u.append("text").text(d).attr("x",(p.stopx-p.startx)/2-4*er.diagramMarginX).attr("y",p.starty+er.diagramMarginY),Br(u,g,v,er.useMaxWidth);let x=d?60:0;u.attr("viewBox",p.startx-er.diagramMarginX+" -"+(er.diagramMarginY+x)+" "+v+" "+(g+x)),Z.debug("models:",p)},"draw"),IM={drawPersonOrSystemArray:ite,drawBoundary:rte,setConf:NM,draw:qze}});var Uze,ste,ote=z(()=>{"use strict";Uze=o(e=>`.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`,"getStyles"),ste=Uze});var lte={};xr(lte,{diagram:()=>Hze});var Hze,cte=z(()=>{"use strict";ND();WD();ate();ote();Hze={parser:eX,db:Rv,renderer:IM,styles:ste,init:o(({c4:e,wrap:t})=>{IM.setConf(e),Rv.setWrap(t)},"init")}});function Ete(e){return typeof e>"u"||e===null}function Kze(e){return typeof e=="object"&&e!==null}function Zze(e){return Array.isArray(e)?e:Ete(e)?[]:[e]}function Qze(e,t){var r,i,n,a;if(t)for(a=Object.keys(t),r=0,i=a.length;rl&&(a=" ... ",t=i-l+a.length),r-i>l&&(s=" ...",r=i+l-s.length),{str:a+e.slice(t,r).replace(/\t/g,"\u2192")+s,pos:i-t+a.length}}function PM(e,t){return zn.repeat(" ",t-e.length)+e}function oGe(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var r=/\r?\n|\r|\0/g,i=[0],n=[],a,s=-1;a=r.exec(e.buffer);)n.push(a.index),i.push(a.index+a[0].length),e.position<=a.index&&s<0&&(s=i.length-2);s<0&&(s=i.length-1);var l="",u,h,d=Math.min(e.line+t.linesAfter,n.length).toString().length,f=t.maxLength-(t.indent+d+3);for(u=1;u<=t.linesBefore&&!(s-u<0);u++)h=OM(e.buffer,i[s-u],n[s-u],e.position-(i[s]-i[s-u]),f),l=zn.repeat(" ",t.indent)+PM((e.line-u+1).toString(),d)+" | "+h.str+` +`+l;for(h=OM(e.buffer,i[s],n[s],e.position,f),l+=zn.repeat(" ",t.indent)+PM((e.line+1).toString(),d)+" | "+h.str+` +`,l+=zn.repeat("-",t.indent+d+3+h.pos)+`^ +`,u=1;u<=t.linesAfter&&!(s+u>=n.length);u++)h=OM(e.buffer,i[s+u],n[s+u],e.position-(i[s]-i[s+u]),f),l+=zn.repeat(" ",t.indent)+PM((e.line+u+1).toString(),d)+" | "+h.str+` +`;return l.replace(/\n$/,"")}function hGe(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(i){t[String(i)]=r})}),t}function dGe(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(cGe.indexOf(r)===-1)throw new Es('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=hGe(t.styleAliases||null),uGe.indexOf(this.kind)===-1)throw new Es('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}function hte(e,t){var r=[];return e[t].forEach(function(i){var n=r.length;r.forEach(function(a,s){a.tag===i.tag&&a.kind===i.kind&&a.multi===i.multi&&(n=s)}),r[n]=i}),r}function fGe(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,r;function i(n){n.multi?(e.multi[n.kind].push(n),e.multi.fallback.push(n)):e[n.kind][n.tag]=e.fallback[n.tag]=n}for(o(i,"collectType"),t=0,r=arguments.length;t=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:r*parseFloat(t,10)}function FGe(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(zn.isNegativeZero(e))return"-0.0";return r=e.toString(10),BGe.test(r)?r.replace("e",".e"):r}function $Ge(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||zn.isNegativeZero(e))}function VGe(e){return e===null?!1:Dte.exec(e)!==null||Rte.exec(e)!==null}function WGe(e){var t,r,i,n,a,s,l,u=0,h=null,d,f,p;if(t=Dte.exec(e),t===null&&(t=Rte.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],i=+t[2]-1,n=+t[3],!t[4])return new Date(Date.UTC(r,i,n));if(a=+t[4],s=+t[5],l=+t[6],t[7]){for(u=t[7].slice(0,3);u.length<3;)u+="0";u=+u}return t[9]&&(d=+t[10],f=+(t[11]||0),h=(d*60+f)*6e4,t[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,i,n,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}function qGe(e){return e.toISOString()}function HGe(e){return e==="<<"||e===null}function jGe(e){if(e===null)return!1;var t,r,i=0,n=e.length,a=WM;for(r=0;r64)){if(t<0)return!1;i+=6}return i%8===0}function XGe(e){var t,r,i=e.replace(/[\r\n=]/g,""),n=i.length,a=WM,s=0,l=[];for(t=0;t>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(i.charAt(t));return r=n%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}function KGe(e){var t="",r=0,i,n,a=e.length,s=WM;for(i=0;i>18&63],t+=s[r>>12&63],t+=s[r>>6&63],t+=s[r&63]),r=(r<<8)+e[i];return n=a%3,n===0?(t+=s[r>>18&63],t+=s[r>>12&63],t+=s[r>>6&63],t+=s[r&63]):n===2?(t+=s[r>>10&63],t+=s[r>>4&63],t+=s[r<<2&63],t+=s[64]):n===1&&(t+=s[r>>2&63],t+=s[r<<4&63],t+=s[64],t+=s[64]),t}function ZGe(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}function tVe(e){if(e===null)return!0;var t=[],r,i,n,a,s,l=e;for(r=0,i=l.length;r>10)+55296,(e-65536&1023)+56320)}function Pte(e,t,r){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[t]=r}function bVe(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Lte,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function $te(e,t){var r={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return r.snippet=lGe(r),new Es(t,r)}function ar(e,t){throw $te(e,t)}function m4(e,t){e.onWarning&&e.onWarning.call(null,$te(e,t))}function ad(e,t,r,i){var n,a,s,l;if(t1&&(e.result+=zn.repeat(` +`,t-1))}function TVe(e,t,r){var i,n,a,s,l,u,h,d,f=e.kind,p=e.result,m;if(m=e.input.charCodeAt(e.position),As(m)||vg(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(n=e.input.charCodeAt(e.position+1),As(n)||r&&vg(n)))return!1;for(e.kind="scalar",e.result="",a=s=e.position,l=!1;m!==0;){if(m===58){if(n=e.input.charCodeAt(e.position+1),As(n)||r&&vg(n))break}else if(m===35){if(i=e.input.charCodeAt(e.position-1),As(i))break}else{if(e.position===e.lineStart&&v4(e)||r&&vg(m))break;if(Tc(m))if(u=e.line,h=e.lineStart,d=e.lineIndent,En(e,!1,-1),e.lineIndent>=t){l=!0,m=e.input.charCodeAt(e.position);continue}else{e.position=s,e.line=u,e.lineStart=h,e.lineIndent=d;break}}l&&(ad(e,a,s,!1),UM(e,e.line-u),a=s=e.position,l=!1),kp(m)||(s=e.position+1),m=e.input.charCodeAt(++e.position)}return ad(e,a,s,!1),e.result?!0:(e.kind=f,e.result=p,!1)}function CVe(e,t){var r,i,n;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,i=n=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(ad(e,i,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)i=e.position,e.position++,n=e.position;else return!0;else Tc(r)?(ad(e,i,n,!0),UM(e,En(e,!1,t)),i=n=e.position):e.position===e.lineStart&&v4(e)?ar(e,"unexpected end of the document within a single quoted scalar"):(e.position++,n=e.position);ar(e,"unexpected end of the stream within a single quoted scalar")}function kVe(e,t){var r,i,n,a,s,l;if(l=e.input.charCodeAt(e.position),l!==34)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(l=e.input.charCodeAt(e.position))!==0;){if(l===34)return ad(e,r,e.position,!0),e.position++,!0;if(l===92){if(ad(e,r,e.position,!0),l=e.input.charCodeAt(++e.position),Tc(l))En(e,!1,t);else if(l<256&&Bte[l])e.result+=Fte[l],e.position++;else if((s=yVe(l))>0){for(n=s,a=0;n>0;n--)l=e.input.charCodeAt(++e.position),(s=gVe(l))>=0?a=(a<<4)+s:ar(e,"expected hexadecimal character");e.result+=xVe(a),e.position++}else ar(e,"unknown escape sequence");r=i=e.position}else Tc(l)?(ad(e,r,i,!0),UM(e,En(e,!1,t)),r=i=e.position):e.position===e.lineStart&&v4(e)?ar(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}ar(e,"unexpected end of the stream within a double quoted scalar")}function wVe(e,t){var r=!0,i,n,a,s=e.tag,l,u=e.anchor,h,d,f,p,m,g=Object.create(null),y,v,x,b;if(b=e.input.charCodeAt(e.position),b===91)d=93,m=!1,l=[];else if(b===123)d=125,m=!0,l={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=l),b=e.input.charCodeAt(++e.position);b!==0;){if(En(e,!0,t),b=e.input.charCodeAt(e.position),b===d)return e.position++,e.tag=s,e.anchor=u,e.kind=m?"mapping":"sequence",e.result=l,!0;r?b===44&&ar(e,"expected the node content, but found ','"):ar(e,"missed comma between flow collection entries"),v=y=x=null,f=p=!1,b===63&&(h=e.input.charCodeAt(e.position+1),As(h)&&(f=p=!0,e.position++,En(e,!0,t))),i=e.line,n=e.lineStart,a=e.position,bg(e,t,f4,!1,!0),v=e.tag,y=e.result,En(e,!0,t),b=e.input.charCodeAt(e.position),(p||e.line===i)&&b===58&&(f=!0,b=e.input.charCodeAt(++e.position),En(e,!0,t),bg(e,t,f4,!1,!0),x=e.result),m?xg(e,l,g,v,y,x,i,n,a):f?l.push(xg(e,null,g,v,y,x,i,n,a)):l.push(y),En(e,!0,t),b=e.input.charCodeAt(e.position),b===44?(r=!0,b=e.input.charCodeAt(++e.position)):r=!1}ar(e,"unexpected end of the stream within a flow collection")}function SVe(e,t){var r,i,n=BM,a=!1,s=!1,l=t,u=0,h=!1,d,f;if(f=e.input.charCodeAt(e.position),f===124)i=!1;else if(f===62)i=!0;else return!1;for(e.kind="scalar",e.result="";f!==0;)if(f=e.input.charCodeAt(++e.position),f===43||f===45)BM===n?n=f===43?dte:dVe:ar(e,"repeat of a chomping mode identifier");else if((d=vVe(f))>=0)d===0?ar(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?ar(e,"repeat of an indentation width identifier"):(l=t+d-1,s=!0);else break;if(kp(f)){do f=e.input.charCodeAt(++e.position);while(kp(f));if(f===35)do f=e.input.charCodeAt(++e.position);while(!Tc(f)&&f!==0)}for(;f!==0;){for(qM(e),e.lineIndent=0,f=e.input.charCodeAt(e.position);(!s||e.lineIndentl&&(l=e.lineIndent),Tc(f)){u++;continue}if(e.lineIndentt)&&u!==0)ar(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(v&&(s=e.line,l=e.lineStart,u=e.position),bg(e,t,p4,!0,n)&&(v?g=e.result:y=e.result),v||(xg(e,f,p,m,g,y,s,l,u),m=g=y=null),En(e,!0,-1),b=e.input.charCodeAt(e.position)),(e.line===a||e.lineIndent>t)&&b!==0)ar(e,"bad indentation of a mapping entry");else if(e.lineIndentt?u=1:e.lineIndent===t?u=0:e.lineIndentt?u=1:e.lineIndent===t?u=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),f=0,p=e.implicitTypes.length;f"),e.result!==null&&g.kind!==e.kind&&ar(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+g.kind+'", not "'+e.kind+'"'),g.resolve(e.result,e.tag)?(e.result=g.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):ar(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||d}function RVe(e){var t=e.position,r,i,n,a=!1,s;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(s=e.input.charCodeAt(e.position))!==0&&(En(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||s!==37));){for(a=!0,s=e.input.charCodeAt(++e.position),r=e.position;s!==0&&!As(s);)s=e.input.charCodeAt(++e.position);for(i=e.input.slice(r,e.position),n=[],i.length<1&&ar(e,"directive name must not be less than one character in length");s!==0;){for(;kp(s);)s=e.input.charCodeAt(++e.position);if(s===35){do s=e.input.charCodeAt(++e.position);while(s!==0&&!Tc(s));break}if(Tc(s))break;for(r=e.position;s!==0&&!As(s);)s=e.input.charCodeAt(++e.position);n.push(e.input.slice(r,e.position))}s!==0&&qM(e),sd.call(mte,i)?mte[i](e,i,n):m4(e,'unknown document directive "'+i+'"')}if(En(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,En(e,!0,-1)):a&&ar(e,"directives end mark is expected"),bg(e,e.lineIndent-1,p4,!1,!0),En(e,!0,-1),e.checkLineBreaks&&pVe.test(e.input.slice(t,e.position))&&m4(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&v4(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,En(e,!0,-1));return}if(e.position"u"&&(r=t,t=null);var i=zte(e,r);if(typeof t!="function")return i;for(var n=0,a=i.length;n=55296&&r<=56319&&t+1=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function Xte(e){var t=/^\n* /;return t.test(e)}function sWe(e,t,r,i,n,a,s,l){var u,h=0,d=null,f=!1,p=!1,m=i!==-1,g=-1,y=nWe(Fx(e,0))&&aWe(Fx(e,e.length-1));if(t||s)for(u=0;u=65536?u+=2:u++){if(h=Fx(e,u),!Vx(h))return yg;y=y&&bte(h,d,l),d=h}else{for(u=0;u=65536?u+=2:u++){if(h=Fx(e,u),h===zx)f=!0,m&&(p=p||u-g-1>i&&e[g+1]!==" ",g=u);else if(!Vx(h))return yg;y=y&&bte(h,d,l),d=h}p=p||m&&u-g-1>i&&e[g+1]!==" "}return!f&&!p?y&&!s&&!n(e)?Kte:a===Gx?yg:GM:r>9&&Xte(e)?yg:s?a===Gx?yg:GM:p?Qte:Zte}function oWe(e,t,r,i,n){e.dump=(function(){if(t.length===0)return e.quotingType===Gx?'""':"''";if(!e.noCompatMode&&(ZVe.indexOf(t)!==-1||QVe.test(t)))return e.quotingType===Gx?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,r),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),l=i||e.flowLevel>-1&&r>=e.flowLevel;function u(h){return iWe(e,h)}switch(o(u,"testAmbiguity"),sWe(t,l,e.indent,s,u,e.quotingType,e.forceQuotes&&!i,n)){case Kte:return t;case GM:return"'"+t.replace(/'/g,"''")+"'";case Zte:return"|"+Tte(t,e.indent)+Cte(vte(t,a));case Qte:return">"+Tte(t,e.indent)+Cte(vte(lWe(t,s),a));case yg:return'"'+cWe(t)+'"';default:throw new Es("impossible error: invalid scalar style")}})()}function Tte(e,t){var r=Xte(e)?String(t):"",i=e[e.length-1]===` +`,n=i&&(e[e.length-2]===` +`||e===` +`),a=n?"+":i?"":"-";return r+a+` +`}function Cte(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function lWe(e,t){for(var r=/(\n+)([^\n]*)/g,i=(function(){var h=e.indexOf(` +`);return h=h!==-1?h:e.length,r.lastIndex=h,kte(e.slice(0,h),t)})(),n=e[0]===` +`||e[0]===" ",a,s;s=r.exec(e);){var l=s[1],u=s[2];a=u[0]===" ",i+=l+(!n&&!a&&u!==""?` +`:"")+kte(u,t),n=a}return i}function kte(e,t){if(e===""||e[0]===" ")return e;for(var r=/ [^ ]/g,i,n=0,a,s=0,l=0,u="";i=r.exec(e);)l=i.index,l-n>t&&(a=s>n?s:l,u+=` +`+e.slice(n,a),n=a+1),s=l;return u+=` +`,e.length-n>t&&s>n?u+=e.slice(n,s)+` +`+e.slice(s+1):u+=e.slice(n),u.slice(1)}function cWe(e){for(var t="",r=0,i,n=0;n=65536?n+=2:n++)r=Fx(e,n),i=La[r],!i&&Vx(r)?(t+=e[n],r>=65536&&(t+=e[n+1])):t+=i||eWe(r);return t}function uWe(e,t,r){var i="",n=e.tag,a,s,l;for(a=0,s=r.length;a"u"&&Ou(e,t,null,!1,!1))&&(i!==""&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=n,e.dump="["+i+"]"}function wte(e,t,r,i){var n="",a=e.tag,s,l,u;for(s=0,l=r.length;s"u"&&Ou(e,t+1,null,!0,!0,!1,!0))&&((!i||n!=="")&&(n+=zM(e,t)),e.dump&&zx===e.dump.charCodeAt(0)?n+="-":n+="- ",n+=e.dump);e.tag=a,e.dump=n||"[]"}function hWe(e,t,r){var i="",n=e.tag,a=Object.keys(r),s,l,u,h,d;for(s=0,l=a.length;s1024&&(d+="? "),d+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ou(e,t,h,!1,!1)&&(d+=e.dump,i+=d));e.tag=n,e.dump="{"+i+"}"}function dWe(e,t,r,i){var n="",a=e.tag,s=Object.keys(r),l,u,h,d,f,p;if(e.sortKeys===!0)s.sort();else if(typeof e.sortKeys=="function")s.sort(e.sortKeys);else if(e.sortKeys)throw new Es("sortKeys must be a boolean or a function");for(l=0,u=s.length;l1024,f&&(e.dump&&zx===e.dump.charCodeAt(0)?p+="?":p+="? "),p+=e.dump,f&&(p+=zM(e,t)),Ou(e,t+1,d,!0,f)&&(e.dump&&zx===e.dump.charCodeAt(0)?p+=":":p+=": ",p+=e.dump,n+=p));e.tag=a,e.dump=n||"{}"}function Ste(e,t,r){var i,n,a,s,l,u;for(n=r?e.explicitTypes:e.implicitTypes,a=0,s=n.length;a tag resolver accepts not "'+u+'" style');e.dump=i}return!0}return!1}function Ou(e,t,r,i,n,a,s){e.tag=null,e.dump=r,Ste(e,r,!1)||Ste(e,r,!0);var l=Vte.call(e.dump),u=i,h;i&&(i=e.flowLevel<0||e.flowLevel>t);var d=l==="[object Object]"||l==="[object Array]",f,p;if(d&&(f=e.duplicates.indexOf(r),p=f!==-1),(e.tag!==null&&e.tag!=="?"||p||e.indent!==2&&t>0)&&(n=!1),p&&e.usedDuplicates[f])e.dump="*ref_"+f;else{if(d&&p&&!e.usedDuplicates[f]&&(e.usedDuplicates[f]=!0),l==="[object Object]")i&&Object.keys(e.dump).length!==0?(dWe(e,t,e.dump,n),p&&(e.dump="&ref_"+f+e.dump)):(hWe(e,t,e.dump),p&&(e.dump="&ref_"+f+" "+e.dump));else if(l==="[object Array]")i&&e.dump.length!==0?(e.noArrayIndent&&!s&&t>0?wte(e,t-1,e.dump,n):wte(e,t,e.dump,n),p&&(e.dump="&ref_"+f+e.dump)):(uWe(e,t,e.dump),p&&(e.dump="&ref_"+f+" "+e.dump));else if(l==="[object String]")e.tag!=="?"&&oWe(e,e.dump,t,a,u);else{if(l==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new Es("unacceptable kind of an object to dump "+l)}e.tag!==null&&e.tag!=="?"&&(h=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",e.dump=h+" "+e.dump)}return!0}function fWe(e,t){var r=[],i=[],n,a;for(VM(e,r,i),n=0,a=i.length;n{"use strict";o(Ete,"isNothing");o(Kze,"isObject");o(Zze,"toArray");o(Qze,"extend");o(Jze,"repeat");o(eGe,"isNegativeZero");tGe=Ete,rGe=Kze,iGe=Zze,nGe=Jze,aGe=eGe,sGe=Qze,zn={isNothing:tGe,isObject:rGe,toArray:iGe,repeat:nGe,isNegativeZero:aGe,extend:sGe};o(Ate,"formatError");o($x,"YAMLException$1");$x.prototype=Object.create(Error.prototype);$x.prototype.constructor=$x;$x.prototype.toString=o(function(t){return this.name+": "+Ate(this,t)},"toString");Es=$x;o(OM,"getLine");o(PM,"padStart");o(oGe,"makeSnippet");lGe=oGe,cGe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],uGe=["scalar","sequence","mapping"];o(hGe,"compileStyleAliases");o(dGe,"Type$1");Ra=dGe;o(hte,"compileList");o(fGe,"compileMap");o(FM,"Schema$1");FM.prototype.extend=o(function(t){var r=[],i=[];if(t instanceof Ra)i.push(t);else if(Array.isArray(t))i=i.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(r=r.concat(t.implicit)),t.explicit&&(i=i.concat(t.explicit));else throw new Es("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof Ra))throw new Es("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new Es("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new Es("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),i.forEach(function(a){if(!(a instanceof Ra))throw new Es("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var n=Object.create(FM.prototype);return n.implicit=(this.implicit||[]).concat(r),n.explicit=(this.explicit||[]).concat(i),n.compiledImplicit=hte(n,"implicit"),n.compiledExplicit=hte(n,"explicit"),n.compiledTypeMap=fGe(n.compiledImplicit,n.compiledExplicit),n},"extend");pGe=FM,mGe=new Ra("tag:yaml.org,2002:str",{kind:"scalar",construct:o(function(e){return e!==null?e:""},"construct")}),gGe=new Ra("tag:yaml.org,2002:seq",{kind:"sequence",construct:o(function(e){return e!==null?e:[]},"construct")}),yGe=new Ra("tag:yaml.org,2002:map",{kind:"mapping",construct:o(function(e){return e!==null?e:{}},"construct")}),vGe=new pGe({explicit:[mGe,gGe,yGe]});o(xGe,"resolveYamlNull");o(bGe,"constructYamlNull");o(TGe,"isNull");CGe=new Ra("tag:yaml.org,2002:null",{kind:"scalar",resolve:xGe,construct:bGe,predicate:TGe,represent:{canonical:o(function(){return"~"},"canonical"),lowercase:o(function(){return"null"},"lowercase"),uppercase:o(function(){return"NULL"},"uppercase"),camelcase:o(function(){return"Null"},"camelcase"),empty:o(function(){return""},"empty")},defaultStyle:"lowercase"});o(kGe,"resolveYamlBoolean");o(wGe,"constructYamlBoolean");o(SGe,"isBoolean");EGe=new Ra("tag:yaml.org,2002:bool",{kind:"scalar",resolve:kGe,construct:wGe,predicate:SGe,represent:{lowercase:o(function(e){return e?"true":"false"},"lowercase"),uppercase:o(function(e){return e?"TRUE":"FALSE"},"uppercase"),camelcase:o(function(e){return e?"True":"False"},"camelcase")},defaultStyle:"lowercase"});o(AGe,"isHexCode");o(_Ge,"isOctCode");o(DGe,"isDecCode");o(RGe,"resolveYamlInteger");o(LGe,"constructYamlInteger");o(MGe,"isInteger");NGe=new Ra("tag:yaml.org,2002:int",{kind:"scalar",resolve:RGe,construct:LGe,predicate:MGe,represent:{binary:o(function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},"binary"),octal:o(function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},"octal"),decimal:o(function(e){return e.toString(10)},"decimal"),hexadecimal:o(function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),IGe=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");o(OGe,"resolveYamlFloat");o(PGe,"constructYamlFloat");BGe=/^[-+]?[0-9]+e/;o(FGe,"representYamlFloat");o($Ge,"isFloat");zGe=new Ra("tag:yaml.org,2002:float",{kind:"scalar",resolve:OGe,construct:PGe,predicate:$Ge,represent:FGe,defaultStyle:"lowercase"}),_te=vGe.extend({implicit:[CGe,EGe,NGe,zGe]}),GGe=_te,Dte=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Rte=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");o(VGe,"resolveYamlTimestamp");o(WGe,"constructYamlTimestamp");o(qGe,"representYamlTimestamp");UGe=new Ra("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:VGe,construct:WGe,instanceOf:Date,represent:qGe});o(HGe,"resolveYamlMerge");YGe=new Ra("tag:yaml.org,2002:merge",{kind:"scalar",resolve:HGe}),WM=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;o(jGe,"resolveYamlBinary");o(XGe,"constructYamlBinary");o(KGe,"representYamlBinary");o(ZGe,"isBinary");QGe=new Ra("tag:yaml.org,2002:binary",{kind:"scalar",resolve:jGe,construct:XGe,predicate:ZGe,represent:KGe}),JGe=Object.prototype.hasOwnProperty,eVe=Object.prototype.toString;o(tVe,"resolveYamlOmap");o(rVe,"constructYamlOmap");iVe=new Ra("tag:yaml.org,2002:omap",{kind:"sequence",resolve:tVe,construct:rVe}),nVe=Object.prototype.toString;o(aVe,"resolveYamlPairs");o(sVe,"constructYamlPairs");oVe=new Ra("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:aVe,construct:sVe}),lVe=Object.prototype.hasOwnProperty;o(cVe,"resolveYamlSet");o(uVe,"constructYamlSet");hVe=new Ra("tag:yaml.org,2002:set",{kind:"mapping",resolve:cVe,construct:uVe}),Lte=GGe.extend({implicit:[UGe,YGe],explicit:[QGe,iVe,oVe,hVe]}),sd=Object.prototype.hasOwnProperty,f4=1,Mte=2,Nte=3,p4=4,BM=1,dVe=2,dte=3,fVe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,pVe=/[\x85\u2028\u2029]/,mVe=/[,\[\]\{\}]/,Ite=/^(?:!|!!|![a-z\-]+!)$/i,Ote=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;o(fte,"_class");o(Tc,"is_EOL");o(kp,"is_WHITE_SPACE");o(As,"is_WS_OR_EOL");o(vg,"is_FLOW_INDICATOR");o(gVe,"fromHexCode");o(yVe,"escapedHexLen");o(vVe,"fromDecimalCode");o(pte,"simpleEscapeSequence");o(xVe,"charFromCodepoint");o(Pte,"setProperty");Bte=new Array(256),Fte=new Array(256);for(Cp=0;Cp<256;Cp++)Bte[Cp]=pte(Cp)?1:0,Fte[Cp]=pte(Cp);o(bVe,"State$1");o($te,"generateError");o(ar,"throwError");o(m4,"throwWarning");mte={YAML:o(function(t,r,i){var n,a,s;t.version!==null&&ar(t,"duplication of %YAML directive"),i.length!==1&&ar(t,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ar(t,"ill-formed argument of the YAML directive"),a=parseInt(n[1],10),s=parseInt(n[2],10),a!==1&&ar(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=s<2,s!==1&&s!==2&&m4(t,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(t,r,i){var n,a;i.length!==2&&ar(t,"TAG directive accepts exactly two arguments"),n=i[0],a=i[1],Ite.test(n)||ar(t,"ill-formed tag handle (first argument) of the TAG directive"),sd.call(t.tagMap,n)&&ar(t,'there is a previously declared suffix for "'+n+'" tag handle'),Ote.test(a)||ar(t,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{ar(t,"tag prefix is malformed: "+a)}t.tagMap[n]=a},"handleTagDirective")};o(ad,"captureSegment");o(gte,"mergeMappings");o(xg,"storeMappingPair");o(qM,"readLineBreak");o(En,"skipSeparationSpace");o(v4,"testDocumentSeparator");o(UM,"writeFoldedLines");o(TVe,"readPlainScalar");o(CVe,"readSingleQuotedScalar");o(kVe,"readDoubleQuotedScalar");o(wVe,"readFlowCollection");o(SVe,"readBlockScalar");o(yte,"readBlockSequence");o(EVe,"readBlockMapping");o(AVe,"readTagProperty");o(_Ve,"readAnchorProperty");o(DVe,"readAlias");o(bg,"composeNode");o(RVe,"readDocument");o(zte,"loadDocuments");o(LVe,"loadAll$1");o(MVe,"load$1");NVe=LVe,IVe=MVe,Gte={loadAll:NVe,load:IVe},Vte=Object.prototype.toString,Wte=Object.prototype.hasOwnProperty,HM=65279,OVe=9,zx=10,PVe=13,BVe=32,FVe=33,$Ve=34,$M=35,zVe=37,GVe=38,VVe=39,WVe=42,qte=44,qVe=45,g4=58,UVe=61,HVe=62,YVe=63,jVe=64,Ute=91,Hte=93,XVe=96,Yte=123,KVe=124,jte=125,La={};La[0]="\\0";La[7]="\\a";La[8]="\\b";La[9]="\\t";La[10]="\\n";La[11]="\\v";La[12]="\\f";La[13]="\\r";La[27]="\\e";La[34]='\\"';La[92]="\\\\";La[133]="\\N";La[160]="\\_";La[8232]="\\L";La[8233]="\\P";ZVe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],QVe=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;o(JVe,"compileStyleMap");o(eWe,"encodeHex");tWe=1,Gx=2;o(rWe,"State");o(vte,"indentString");o(zM,"generateNextLine");o(iWe,"testImplicitResolving");o(y4,"isWhitespace");o(Vx,"isPrintable");o(xte,"isNsCharOrWhitespace");o(bte,"isPlainSafe");o(nWe,"isPlainSafeFirst");o(aWe,"isPlainSafeLast");o(Fx,"codePointAt");o(Xte,"needIndentIndicator");Kte=1,GM=2,Zte=3,Qte=4,yg=5;o(sWe,"chooseScalarStyle");o(oWe,"writeScalar");o(Tte,"blockHeader");o(Cte,"dropEndingNewline");o(lWe,"foldString");o(kte,"foldLine");o(cWe,"escapeString");o(uWe,"writeFlowSequence");o(wte,"writeBlockSequence");o(hWe,"writeFlowMapping");o(dWe,"writeBlockMapping");o(Ste,"detectType");o(Ou,"writeNode");o(fWe,"getDuplicateReferences");o(VM,"inspectNode");o(pWe,"dump$1");mWe=pWe,gWe={dump:mWe};o(YM,"renamed");od=_te,ld=Gte.load,yYt=Gte.loadAll,vYt=gWe.dump,xYt=YM("safeLoad","load"),bYt=YM("safeLoadAll","loadAll"),TYt=YM("safeDump","dump")});function ZM(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function nre(e){Sp=e}function li(e,t=""){let r=typeof e=="string"?e:e.source,i={replace:o((n,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(Ja.caret,"$1"),r=r.replace(n,s),i},"replace"),getRegex:o(()=>new RegExp(r,t),"getRegex")};return i}function Cc(e,t){if(t){if(Ja.escapeTest.test(e))return e.replace(Ja.escapeReplace,ere)}else if(Ja.escapeTestNoEncode.test(e))return e.replace(Ja.escapeReplaceNoEncode,ere);return e}function tre(e){try{e=encodeURI(e).replace(Ja.percentDecode,"%")}catch{return null}return e}function rre(e,t){let r=e.replace(Ja.findPipe,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),i=r.split(Ja.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length0?-2:-1}function ire(e,t,r,i,n){let a=t.href,s=t.title||null,l=e[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let u={type:e[0].charAt(0)==="!"?"image":"link",raw:r,href:a,title:s,text:l,tokens:i.inlineTokens(l)};return i.state.inLink=!1,u}function ZWe(e,t,r){let i=e.match(r.other.indentCodeCompensation);if(i===null)return t;let n=i[1];return t.split(` +`).map(a=>{let s=a.match(r.other.beginningSpace);if(s===null)return a;let[l]=s;return l.length>=n.length?a.slice(n.length):a}).join(` +`)}function ni(e,t){return wp.parse(e,t)}var Sp,Yx,Ja,yWe,vWe,xWe,jx,bWe,QM,are,sre,TWe,JM,CWe,eN,kWe,wWe,w4,tN,SWe,ore,EWe,rN,Jte,AWe,_We,DWe,RWe,lre,LWe,S4,iN,cre,MWe,ure,NWe,IWe,OWe,hre,PWe,BWe,dre,FWe,$We,zWe,GWe,VWe,WWe,qWe,T4,UWe,fre,pre,HWe,nN,YWe,jM,jWe,b4,qx,XWe,ere,C4,Pu,k4,aN,Bu,Hx,QWe,wp,kYt,wYt,SYt,EYt,AYt,_Yt,DYt,mre=z(()=>{"use strict";o(ZM,"L");Sp=ZM();o(nre,"G");Yx={exec:o(()=>null,"exec")};o(li,"h");Ja={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:o(e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),"listItemRegex"),nextBulletRegex:o(e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),"nextBulletRegex"),hrRegex:o(e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),"hrRegex"),fencesBeginRegex:o(e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),"fencesBeginRegex"),headingBeginRegex:o(e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),"headingBeginRegex"),htmlBeginRegex:o(e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),"htmlBeginRegex")},yWe=/^(?:[ \t]*(?:\n|$))+/,vWe=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,xWe=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,jx=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,bWe=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,QM=/(?:[*+-]|\d{1,9}[.)])/,are=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,sre=li(are).replace(/bull/g,QM).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),TWe=li(are).replace(/bull/g,QM).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),JM=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,CWe=/^[^\n]+/,eN=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,kWe=li(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",eN).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),wWe=li(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,QM).getRegex(),w4="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",tN=/|$))/,SWe=li("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",tN).replace("tag",w4).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ore=li(JM).replace("hr",jx).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w4).getRegex(),EWe=li(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ore).getRegex(),rN={blockquote:EWe,code:vWe,def:kWe,fences:xWe,heading:bWe,hr:jx,html:SWe,lheading:sre,list:wWe,newline:yWe,paragraph:ore,table:Yx,text:CWe},Jte=li("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",jx).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w4).getRegex(),AWe={...rN,lheading:TWe,table:Jte,paragraph:li(JM).replace("hr",jx).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Jte).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w4).getRegex()},_We={...rN,html:li(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",tN).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Yx,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:li(JM).replace("hr",jx).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",sre).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},DWe=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,RWe=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,lre=/^( {2,}|\\)\n(?!\s*$)/,LWe=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,hre=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,PWe=li(hre,"u").replace(/punct/g,S4).getRegex(),BWe=li(hre,"u").replace(/punct/g,ure).getRegex(),dre="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",FWe=li(dre,"gu").replace(/notPunctSpace/g,cre).replace(/punctSpace/g,iN).replace(/punct/g,S4).getRegex(),$We=li(dre,"gu").replace(/notPunctSpace/g,IWe).replace(/punctSpace/g,NWe).replace(/punct/g,ure).getRegex(),zWe=li("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,cre).replace(/punctSpace/g,iN).replace(/punct/g,S4).getRegex(),GWe=li(/\\(punct)/,"gu").replace(/punct/g,S4).getRegex(),VWe=li(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),WWe=li(tN).replace("(?:-->|$)","-->").getRegex(),qWe=li("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",WWe).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),T4=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,UWe=li(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",T4).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),fre=li(/^!?\[(label)\]\[(ref)\]/).replace("label",T4).replace("ref",eN).getRegex(),pre=li(/^!?\[(ref)\](?:\[\])?/).replace("ref",eN).getRegex(),HWe=li("reflink|nolink(?!\\()","g").replace("reflink",fre).replace("nolink",pre).getRegex(),nN={_backpedal:Yx,anyPunctuation:GWe,autolink:VWe,blockSkip:OWe,br:lre,code:RWe,del:Yx,emStrongLDelim:PWe,emStrongRDelimAst:FWe,emStrongRDelimUnd:zWe,escape:DWe,link:UWe,nolink:pre,punctuation:MWe,reflink:fre,reflinkSearch:HWe,tag:qWe,text:LWe,url:Yx},YWe={...nN,link:li(/^!?\[(label)\]\((.*?)\)/).replace("label",T4).getRegex(),reflink:li(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",T4).getRegex()},jM={...nN,emStrongRDelimAst:$We,emStrongLDelim:BWe,url:li(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ere=o(e=>XWe[e],"ke");o(Cc,"w");o(tre,"J");o(rre,"V");o(Ux,"z");o(KWe,"ge");o(ire,"fe");o(ZWe,"Je");C4=class{static{o(this,"y")}options;rules;lexer;constructor(e){this.options=e||Sp}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let r=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?r:Ux(r,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let r=t[0],i=ZWe(r,t[3]||"",this.rules);return{type:"code",raw:r,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:i}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let r=t[2].trim();if(this.rules.other.endingHash.test(r)){let i=Ux(r,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(r=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:Ux(t[0],` +`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let r=Ux(t[0],` +`).split(` +`),i="",n="",a=[];for(;r.length>0;){let s=!1,l=[],u;for(u=0;u1,n={type:"list",raw:"",ordered:i,start:i?+r.slice(0,-1):"",loose:!1,items:[]};r=i?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=i?r:"[*+-]");let a=this.rules.other.listItemRegex(r),s=!1;for(;e;){let u=!1,h="",d="";if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;h=t[0],e=e.substring(h.length);let f=t[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,x=>" ".repeat(3*x.length)),p=e.split(` +`,1)[0],m=!f.trim(),g=0;if(this.options.pedantic?(g=2,d=f.trimStart()):m?g=t[1].length+1:(g=t[2].search(this.rules.other.nonSpaceChar),g=g>4?1:g,d=f.slice(g),g+=t[1].length),m&&this.rules.other.blankLine.test(p)&&(h+=p+` +`,e=e.substring(p.length+1),u=!0),!u){let x=this.rules.other.nextBulletRegex(g),b=this.rules.other.hrRegex(g),T=this.rules.other.fencesBeginRegex(g),w=this.rules.other.headingBeginRegex(g),C=this.rules.other.htmlBeginRegex(g);for(;e;){let k=e.split(` +`,1)[0],E;if(p=k,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),E=p):E=p.replace(this.rules.other.tabCharGlobal," "),T.test(p)||w.test(p)||C.test(p)||x.test(p)||b.test(p))break;if(E.search(this.rules.other.nonSpaceChar)>=g||!p.trim())d+=` +`+E.slice(g);else{if(m||f.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||T.test(f)||w.test(f)||b.test(f))break;d+=` +`+p}!m&&!p.trim()&&(m=!0),h+=k+` +`,e=e.substring(k.length+1),f=E.slice(g)}}n.loose||(s?n.loose=!0:this.rules.other.doubleBlankLine.test(h)&&(s=!0));let y=null,v;this.options.gfm&&(y=this.rules.other.listIsTask.exec(d),y&&(v=y[0]!=="[ ] ",d=d.replace(this.rules.other.listReplaceTask,""))),n.items.push({type:"list_item",raw:h,task:!!y,checked:v,loose:!1,text:d,tokens:[]}),n.raw+=h}let l=n.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let u=0;uf.type==="space"),d=h.length>0&&h.some(f=>this.rules.other.anyLine.test(f.raw));n.loose=d}if(n.loose)for(let u=0;u({text:l,tokens:this.lexer.inline(l),header:!1,align:a.align[u]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let r=t[1].charAt(t[1].length-1)===` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:r,tokens:this.lexer.inline(r)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let r=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let a=Ux(r.slice(0,-1),"\\");if((r.length-a.length)%2===0)return}else{let a=KWe(t[2],"()");if(a===-2)return;if(a>-1){let s=(t[0].indexOf("!")===0?5:4)+t[1].length+a;t[2]=t[2].substring(0,a),t[0]=t[0].substring(0,s).trim(),t[3]=""}}let i=t[2],n="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(i);a&&(i=a[1],n=a[3])}else n=t[3]?t[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?i=i.slice(1):i=i.slice(1,-1)),ire(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let i=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=t[i.toLowerCase()];if(!n){let a=r[0].charAt(0);return{type:"text",raw:a,text:a}}return ire(r,n,r[0],this.lexer,this.rules)}}emStrong(e,t,r=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!(!i||i[3]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(i[1]||i[2])||!r||this.rules.inline.punctuation.exec(r))){let n=[...i[0]].length-1,a,s,l=n,u=0,h=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,t=t.slice(-1*e.length+n);(i=h.exec(t))!=null;){if(a=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!a)continue;if(s=[...a].length,i[3]||i[4]){l+=s;continue}else if((i[5]||i[6])&&n%3&&!((n+s)%3)){u+=s;continue}if(l-=s,l>0)continue;s=Math.min(s,s+l+u);let d=[...i[0]][0].length,f=e.slice(0,n+i.index+d+s);if(Math.min(n,s)%2){let m=f.slice(1,-1);return{type:"em",raw:f,text:m,tokens:this.lexer.inlineTokens(m)}}let p=f.slice(2,-2);return{type:"strong",raw:f,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let r=t[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(r),n=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return i&&n&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:t[0],text:r}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let r,i;return t[2]==="@"?(r=t[1],i="mailto:"+r):(r=t[1],i=r),{type:"link",raw:t[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let r,i;if(t[2]==="@")r=t[0],i="mailto:"+r;else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0]);r=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let r=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:r}}}},Pu=class XM{static{o(this,"l")}tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Sp,this.options.tokenizer=this.options.tokenizer||new C4,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:Ja,block:b4.normal,inline:qx.normal};this.options.pedantic?(r.block=b4.pedantic,r.inline=qx.pedantic):this.options.gfm&&(r.block=b4.gfm,this.options.breaks?r.inline=qx.breaks:r.inline=qx.gfm),this.tokenizer.rules=r}static get rules(){return{block:b4,inline:qx}}static lex(t,r){return new XM(r).lex(t)}static lexInline(t,r){return new XM(r).inlineTokens(t)}lex(t){t=t.replace(Ja.carriageReturn,` +`),this.blockTokens(t,this.tokens);for(let r=0;r(n=s.call({lexer:this},t,r))?(t=t.substring(n.raw.length),r.push(n),!0):!1))continue;if(n=this.tokenizer.space(t)){t=t.substring(n.raw.length);let s=r.at(-1);n.raw.length===1&&s!==void 0?s.raw+=` +`:r.push(n);continue}if(n=this.tokenizer.code(t)){t=t.substring(n.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+n.raw,s.text+=` +`+n.text,this.inlineQueue.at(-1).src=s.text):r.push(n);continue}if(n=this.tokenizer.fences(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.heading(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.hr(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.blockquote(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.list(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.html(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.def(t)){t=t.substring(n.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+n.raw,s.text+=` +`+n.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},r.push(n));continue}if(n=this.tokenizer.table(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.lheading(t)){t=t.substring(n.raw.length),r.push(n);continue}let a=t;if(this.options.extensions?.startBlock){let s=1/0,l=t.slice(1),u;this.options.extensions.startBlock.forEach(h=>{u=h.call({lexer:this},l),typeof u=="number"&&u>=0&&(s=Math.min(s,u))}),s<1/0&&s>=0&&(a=t.substring(0,s+1))}if(this.state.top&&(n=this.tokenizer.paragraph(a))){let s=r.at(-1);i&&s?.type==="paragraph"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+n.raw,s.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(n),i=a.length!==t.length,t=t.substring(n.raw.length);continue}if(n=this.tokenizer.text(t)){t=t.substring(n.raw.length);let s=r.at(-1);s?.type==="text"?(s.raw+=(s.raw.endsWith(` +`)?"":` +`)+n.raw,s.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(n);continue}if(t){let s="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,r}inline(t,r=[]){return this.inlineQueue.push({src:t,tokens:r}),r}inlineTokens(t,r=[]){let i=t,n=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)l.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,n.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(n=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);i=this.options.hooks?.emStrongMask?.call({lexer:this},i)??i;let a=!1,s="";for(;t;){a||(s=""),a=!1;let l;if(this.options.extensions?.inline?.some(h=>(l=h.call({lexer:this},t,r))?(t=t.substring(l.raw.length),r.push(l),!0):!1))continue;if(l=this.tokenizer.escape(t)){t=t.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.tag(t)){t=t.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.link(t)){t=t.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(l.raw.length);let h=r.at(-1);l.type==="text"&&h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(l=this.tokenizer.emStrong(t,i,s)){t=t.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.codespan(t)){t=t.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.br(t)){t=t.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.del(t)){t=t.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.autolink(t)){t=t.substring(l.raw.length),r.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(t))){t=t.substring(l.raw.length),r.push(l);continue}let u=t;if(this.options.extensions?.startInline){let h=1/0,d=t.slice(1),f;this.options.extensions.startInline.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(h=Math.min(h,f))}),h<1/0&&h>=0&&(u=t.substring(0,h+1))}if(l=this.tokenizer.inlineText(u)){t=t.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(s=l.raw.slice(-1)),a=!0;let h=r.at(-1);h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(t){let h="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return r}},k4=class{static{o(this,"P")}options;parser;constructor(e){this.options=e||Sp}space(e){return""}code({text:e,lang:t,escaped:r}){let i=(t||"").match(Ja.notSpaceStart)?.[0],n=e.replace(Ja.endingNewline,"")+` +`;return i?'
'+(r?n:Cc(n,!0))+`
+`:"
"+(r?n:Cc(n,!0))+`
+`}blockquote({tokens:e}){return`
+${this.parser.parse(e)}
+`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} +`}hr(e){return`
+`}list(e){let t=e.ordered,r=e.start,i="";for(let s=0;s +`+i+" +`}listitem(e){let t="";if(e.task){let r=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type==="paragraph"?(e.tokens[0].text=r+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=r+" "+Cc(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:r+" ",text:r+" ",escaped:!0}):t+=r+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`
  • ${t}
  • +`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    +`}table(e){let t="",r="";for(let n=0;n${i}`),` + +`+t+` +`+i+`
    +`}tablerow({text:e}){return` +${e} +`}tablecell(e){let t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+t+` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${Cc(e,!0)}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:r}){let i=this.parser.parseInline(r),n=tre(e);if(n===null)return i;e=n;let a='
    ",a}image({href:e,title:t,text:r,tokens:i}){i&&(r=this.parser.parseInline(i,this.parser.textRenderer));let n=tre(e);if(n===null)return Cc(r);e=n;let a=`${r}{let s=n[a].flat(1/0);r=r.concat(this.walkTokens(s,t))}):n.tokens&&(r=r.concat(this.walkTokens(n.tokens,t)))}}return r}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(r=>{let i={...r};if(i.async=this.defaults.async||i.async||!1,r.extensions&&(r.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let a=t.renderers[n.name];a?t.renderers[n.name]=function(...s){let l=n.renderer.apply(this,s);return l===!1&&(l=a.apply(this,s)),l}:t.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=t[n.level];a?a.unshift(n.tokenizer):t[n.level]=[n.tokenizer],n.start&&(n.level==="block"?t.startBlock?t.startBlock.push(n.start):t.startBlock=[n.start]:n.level==="inline"&&(t.startInline?t.startInline.push(n.start):t.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(t.childTokens[n.name]=n.childTokens)}),i.extensions=t),r.renderer){let n=this.defaults.renderer||new k4(this.defaults);for(let a in r.renderer){if(!(a in n))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let s=a,l=r.renderer[s],u=n[s];n[s]=(...h)=>{let d=l.apply(n,h);return d===!1&&(d=u.apply(n,h)),d||""}}i.renderer=n}if(r.tokenizer){let n=this.defaults.tokenizer||new C4(this.defaults);for(let a in r.tokenizer){if(!(a in n))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let s=a,l=r.tokenizer[s],u=n[s];n[s]=(...h)=>{let d=l.apply(n,h);return d===!1&&(d=u.apply(n,h)),d}}i.tokenizer=n}if(r.hooks){let n=this.defaults.hooks||new Hx;for(let a in r.hooks){if(!(a in n))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let s=a,l=r.hooks[s],u=n[s];Hx.passThroughHooks.has(a)?n[s]=h=>{if(this.defaults.async&&Hx.passThroughHooksRespectAsync.has(a))return Promise.resolve(l.call(n,h)).then(f=>u.call(n,f));let d=l.call(n,h);return u.call(n,d)}:n[s]=(...h)=>{let d=l.apply(n,h);return d===!1&&(d=u.apply(n,h)),d}}i.hooks=n}if(r.walkTokens){let n=this.defaults.walkTokens,a=r.walkTokens;i.walkTokens=function(s){let l=[];return l.push(a.call(this,s)),n&&(l=l.concat(n.call(this,s))),l}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Pu.lex(e,t??this.defaults)}parser(e,t){return Bu.parse(e,t??this.defaults)}parseMarkdown(e){return(t,r)=>{let i={...r},n={...this.defaults,...i},a=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));n.hooks&&(n.hooks.options=n,n.hooks.block=e);let s=n.hooks?n.hooks.provideLexer():e?Pu.lex:Pu.lexInline,l=n.hooks?n.hooks.provideParser():e?Bu.parse:Bu.parseInline;if(n.async)return Promise.resolve(n.hooks?n.hooks.preprocess(t):t).then(u=>s(u,n)).then(u=>n.hooks?n.hooks.processAllTokens(u):u).then(u=>n.walkTokens?Promise.all(this.walkTokens(u,n.walkTokens)).then(()=>u):u).then(u=>l(u,n)).then(u=>n.hooks?n.hooks.postprocess(u):u).catch(a);try{n.hooks&&(t=n.hooks.preprocess(t));let u=s(t,n);n.hooks&&(u=n.hooks.processAllTokens(u)),n.walkTokens&&this.walkTokens(u,n.walkTokens);let h=l(u,n);return n.hooks&&(h=n.hooks.postprocess(h)),h}catch(u){return a(u)}}}onError(e,t){return r=>{if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let i="

    An error occurred:

    "+Cc(r.message+"",!0)+"
    ";return t?Promise.resolve(i):i}if(t)return Promise.reject(r);throw r}}},wp=new QWe;o(ni,"d");ni.options=ni.setOptions=function(e){return wp.setOptions(e),ni.defaults=wp.defaults,nre(ni.defaults),ni};ni.getDefaults=ZM;ni.defaults=Sp;ni.use=function(...e){return wp.use(...e),ni.defaults=wp.defaults,nre(ni.defaults),ni};ni.walkTokens=function(e,t){return wp.walkTokens(e,t)};ni.parseInline=wp.parseInline;ni.Parser=Bu;ni.parser=Bu.parse;ni.Renderer=k4;ni.TextRenderer=aN;ni.Lexer=Pu;ni.lexer=Pu.lex;ni.Tokenizer=C4;ni.Hooks=Hx;ni.parse=ni;kYt=ni.options,wYt=ni.setOptions,SYt=ni.use,EYt=ni.walkTokens,AYt=ni.parseInline,_Yt=Bu.parse,DYt=Pu.lex});function JWe(e,{markdownAutoWrap:t}){let i=e.replace(//g,` +`).replace(/\n{2,}/g,` +`);return fk(i)}function gre(e){return e.split(/\\n|\n|/gi).map(t=>t.trim().match(/<[^>]+>|[^\s<>]+/g)?.map(r=>({content:r,type:"normal"}))??[])}function yre(e,t={}){let r=JWe(e,t),i=ni.lexer(r),n=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(` +`).forEach((d,f)=>{f!==0&&(a++,n.push([])),d.split(" ").forEach(p=>{p=p.replace(/'/g,"'"),p&&n[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&n[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),i.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"?n[a].push({content:l.text,type:"normal"}):n[a].push({content:l.raw,type:"normal"})}),n}function vre(e){return e?`

    ${e.replace(/\\n|\n/g,"
    ")}

    `:""}function xre(e,{markdownAutoWrap:t}={}){let r=ni.lexer(e);function i(n){return n.type==="text"?t===!1?n.text.replace(/\n */g,"
    ").replace(/ /g," "):n.text.replace(/\n */g,"
    "):n.type==="strong"?`${n.tokens?.map(i).join("")}`:n.type==="em"?`${n.tokens?.map(i).join("")}`:n.type==="paragraph"?`

    ${n.tokens?.map(i).join("")}

    `:n.type==="space"?"":n.type==="html"?`${n.text}`:n.type==="escape"?n.text:(Z.warn(`Unsupported markdown: ${n.type}`),n.raw)}return o(i,"output"),r.map(i).join("")}var bre=z(()=>{"use strict";mre();RD();St();o(JWe,"preprocessMarkdown");o(gre,"nonMarkdownToLines");o(yre,"markdownToLines");o(vre,"nonMarkdownToHTML");o(xre,"markdownToHTML")});function eqe(e){return Intl.Segmenter?[...new Intl.Segmenter().segment(e)].map(t=>t.segment):[...e]}function tqe(e,t){let r=eqe(t.content);return Tre(e,[],r,t.type)}function Tre(e,t,r,i){if(r.length===0)return[{content:t.join(""),type:i},{content:"",type:i}];let[n,...a]=r,s=[...t,n];return e([{content:s.join(""),type:i}])?Tre(e,s,a,i):(t.length===0&&n&&(t.push(n),r.shift()),[{content:t.join(""),type:i},{content:r.join(""),type:i}])}function Cre(e,t){if(e.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return sN(e,t)}function sN(e,t,r=[],i=[]){if(e.length===0)return i.length>0&&r.push(i),r.length>0?r:[];let n="";e[0].content===" "&&(n=" ",e.shift());let a=e.shift()??{content:" ",type:"normal"},s=[...i];if(n!==""&&s.push({content:n,type:"normal"}),s.push(a),t(s))return sN(e,t,r,s);if(i.length>0)r.push(i),e.unshift(a);else if(a.content){let[l,u]=tqe(t,a);r.push([l]),u.content&&e.unshift(u)}return sN(e,t,r)}var kre=z(()=>{"use strict";o(eqe,"splitTextToChars");o(tqe,"splitWordToFitWidth");o(Tre,"splitWordToFitWidthRecursion");o(Cre,"splitLineToFitWidth");o(sN,"splitLineToFitWidthRecursion")});function wre(e,t){t&&e.attr("style",t)}async function rqe(e,t,r,i,n=!1,a=Nt()){let s=e.append("foreignObject");s.attr("width",`${Math.min(10*r,Sre)}px`),s.attr("height",`${Math.min(10*r,Sre)}px`);let l=s.append("xhtml:div"),u=Bi(t.label)?await Fm(t.label.replace(vt.lineBreakRegex,` +`),a):fr(t.label,a),h=t.isNode?"nodeLabel":"edgeLabel",d=l.append("span");d.html(u),wre(d,t.labelStyle),d.attr("class",`${h} ${i}`),wre(l,t.labelStyle),l.style("display","table-cell"),l.style("white-space","nowrap"),l.style("line-height","1.5"),r!==Number.POSITIVE_INFINITY&&(l.style("max-width",r+"px"),l.style("text-align","center")),l.attr("xmlns","http://www.w3.org/1999/xhtml"),n&&l.attr("class","labelBkg");let f=l.node().getBoundingClientRect();return f.width===r&&(l.style("display","table"),l.style("white-space","break-spaces"),l.style("width",r+"px"),f=l.node().getBoundingClientRect()),s.node()}function oN(e,t,r,i=!1){let n=e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",t*r-.1+"em").attr("dy",r+"em");return i&&n.attr("text-anchor","middle"),n}function iqe(e,t,r){let i=e.append("text"),n=oN(i,1,t);lN(n,r);let a=n.node().getComputedTextLength();return i.remove(),a}function Are(e,t,r){let i=e.append("text"),n=oN(i,1,t);lN(n,[{content:r,type:"normal"}]);let a=n.node()?.getBoundingClientRect();return a&&i.remove(),a}function nqe(e,t,r,i=!1,n=!1){let s=t.append("g"),l=s.insert("rect").attr("class","background").attr("style","stroke: none"),u=s.append("text").attr("y","-10.1");n&&u.attr("text-anchor","middle");let h=0;for(let d of r){let f=o(m=>iqe(s,1.1,m)<=e,"checkWidth"),p=f(d)?[d]:Cre(d,f);for(let m of p){let g=oN(u,h,1.1,n);lN(g,m),h++}}if(i){let d=u.node().getBBox(),f=2;return l.attr("x",d.x-f).attr("y",d.y-f).attr("width",d.width+2*f).attr("height",d.height+2*f),s.node()}else return u.node()}function Ere(e){let t=/&(amp|lt|gt);/g;return e.replace(t,(r,i)=>{switch(i){case"amp":return"&";case"lt":return"<";case"gt":return">";default:return r}})}function lN(e,t){e.text(""),t.forEach((r,i)=>{let n=e.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");i===0?n.text(Ere(r.content)):n.text(" "+Ere(r.content))})}async function aqe(e,t={}){let r=[];e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(n,a,s)=>(r.push((async()=>{let l=`${a}:${s}`;return await Zj(l)?await ks(l,void 0,{class:"label-icon"}):``})()),n));let i=await Promise.all(r);return e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>i.shift()??"")}var Sre,wi,_s=z(()=>{"use strict";Rr();Ir();St();bre();Xt();uc();kre();br();o(wre,"applyStyle");Sre=16384;o(rqe,"addHtmlSpan");o(oN,"createTspan");o(iqe,"computeWidthOfText");o(Are,"computeDimensionOfText");o(nqe,"createFormattedText");o(Ere,"decodeHTMLEntities");o(lN,"updateTextContentAndStyles");o(aqe,"replaceIconSubstring");wi=o(async(e,t="",{style:r="",isTitle:i=!1,classes:n="",useHtmlLabels:a=!0,markdown:s=!0,isNode:l=!0,width:u=200,addSvgBackground:h=!1}={},d)=>{if(Z.debug("XYZ createText",t,r,i,n,a,l,"addSvgBackground: ",h),a){let f=s?xre(t,d):vre(t),p=await aqe(Qa(f),d),m=t.replace(/\\\\/g,"\\"),g={isNode:l,label:Bi(t)?m:p,labelStyle:r.replace("fill:","color:")};return await rqe(e,g,u,n,h,d)}else{let f=Qa(t.replace(//g,"
    ")),p=s?yre(f.replace("
    ","
    "),d):gre(f),m=nqe(u,e,p,t?h:!1,!l);if(l){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");Je(m).attr("style",g)}else{let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");Je(m).select("rect").attr("style",g.replace(/background:/g,"fill:"));let y=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");Je(m).select("text").attr("style",y)}return i?Je(m).selectAll("tspan.text-outer-tspan").classed("title-row",!0):Je(m).selectAll("tspan.text-outer-tspan").classed("row",!0),m}},"createText")});async function E4(e,t){let r=e.getElementsByTagName("img");if(!r||r.length===0)return;let i=t.replace(/]*>/g,"").trim()==="";await Promise.all([...r].map(n=>new Promise(a=>{function s(){if(n.style.display="flex",n.style.flexDirection="column",i){let l=ge().fontSize?ge().fontSize:window.getComputedStyle(document.body).fontSize,u=5,[h=or.fontSize]=Za(l),d=h*u+"px";n.style.minWidth=d,n.style.maxWidth=d}else n.style.width="100%";a(n)}o(s,"setupImage"),setTimeout(()=>{n.complete&&s()}),n.addEventListener("error",s),n.addEventListener("load",s)})))}var cN=z(()=>{"use strict";Ut();Bn();Xt();o(E4,"configureLabelImages")});function tr(e){let t=e.map((r,i)=>`${i===0?"M":"L"}${r.x},${r.y}`);return t.push("Z"),t.join(" ")}function Bo(e,t,r,i,n,a){let s=[],u=r-e,h=i-t,d=u/a,f=2*Math.PI/d,p=t+h/2;for(let m=0;m<=50;m++){let g=m/50,y=e+g*u,v=p+n*Math.sin(f*(y-e));s.push({x:y,y:v})}return s}function Ep(e,t,r,i,n,a){let s=[],l=n*Math.PI/180,d=(a*Math.PI/180-l)/(i-1);for(let f=0;fu.tagName==="path"),r=document.createElementNS("http://www.w3.org/2000/svg","path"),i=t.map(u=>u.getAttribute("d")).filter(u=>u!==null).join(" ");r.setAttribute("d",i);let n=t.find(u=>u.getAttribute("fill")!=="none"),a=t.find(u=>u.getAttribute("stroke")!=="none"),s=o((u,h)=>u?.getAttribute(h)??void 0,"getAttr");if(n){let u={fill:s(n,"fill"),"fill-opacity":s(n,"fill-opacity")??"1"};Object.entries(u).forEach(([h,d])=>{d&&r.setAttribute(h,d)})}if(a){let u={stroke:s(a,"stroke"),"stroke-width":s(a,"stroke-width")??"1","stroke-opacity":s(a,"stroke-opacity")??"1"};Object.entries(u).forEach(([h,d])=>{d&&r.setAttribute(h,d)})}let l=document.createElementNS("http://www.w3.org/2000/svg","g");return l.appendChild(r),l}var At,A4,ft,Ct,Wt=z(()=>{"use strict";_s();Ut();br();Rr();Ir();Xt();cN();At=o(async(e,t,r)=>{let i,n=t.useHtmlLabels||Aa(ge()?.htmlLabels);r?i=r:i="node default";let a=e.insert("g").attr("class",i).attr("id",t.domId||t.id),s=a.insert("g").attr("class","label").attr("style",ii(t.labelStyle)),l;t.label===void 0?l="":l=typeof t.label=="string"?t.label:t.label[0];let u=!!t.icon||!!t.img,h=t.labelType==="markdown",d=await wi(s,fr(Qa(l),ge()),{useHtmlLabels:n,width:t.width||ge().flowchart?.wrappingWidth,classes:h?"markdown-node-label":"",style:t.labelStyle,addSvgBackground:u,markdown:h},ge()),f=d.getBBox(),p=(t?.padding??0)/2;if(n){let m=d.children[0],g=Je(d);await E4(m,l),f=m.getBoundingClientRect(),g.attr("width",f.width),g.attr("height",f.height)}return n?s.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):s.attr("transform","translate(0, "+-f.height/2+")"),t.centerLabel&&s.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:f,halfPadding:p,label:s}},"labelHelper"),A4=o(async(e,t,r)=>{let i=r.useHtmlLabels??Mr(ge()),n=e.insert("g").attr("class","label").attr("style",r.labelStyle||""),a=await wi(n,fr(Qa(t),ge()),{useHtmlLabels:i,width:r.width||ge()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),s=a.getBBox(),l=r.padding/2;if(Mr(ge())){let u=a.children[0],h=Je(a);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}return i?n.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"):n.attr("transform","translate(0, "+-s.height/2+")"),r.centerLabel&&n.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),n.insert("rect",":first-child"),{shapeSvg:e,bbox:s,halfPadding:l,label:n}},"insertLabel"),ft=o((e,t)=>{let r=t.node().getBBox();e.width=r.width,e.height=r.height},"updateNodeBounds"),Ct=o((e,t)=>(e.look==="handDrawn"?"rough-node":"node")+" "+e.cssClasses+" "+(t||""),"getNodeClasses");o(tr,"createPathFromPoints");o(Bo,"generateFullSineWavePoints");o(Ep,"generateCirclePoints");o(uN,"mergePaths")});function sqe(e,t){return e.intersect(t)}var _re,Dre=z(()=>{"use strict";o(sqe,"intersectNode");_re=sqe});function oqe(e,t,r,i){var n=e.x,a=e.y,s=n-i.x,l=a-i.y,u=Math.sqrt(t*t*l*l+r*r*s*s),h=Math.abs(t*r*s/u);i.x{"use strict";o(oqe,"intersectEllipse");_4=oqe});function lqe(e,t,r){return _4(e,t,t,r)}var Rre,Lre=z(()=>{"use strict";hN();o(lqe,"intersectCircle");Rre=lqe});function cqe(e,t,r,i){{let n=t.y-e.y,a=e.x-t.x,s=t.x*e.y-e.x*t.y,l=n*r.x+a*r.y+s,u=n*i.x+a*i.y+s,h=1e-6;if(l!==0&&u!==0&&Mre(l,u))return;let d=i.y-r.y,f=r.x-i.x,p=i.x*r.y-r.x*i.y,m=d*e.x+f*e.y+p,g=d*t.x+f*t.y+p;if(Math.abs(m)0}var Nre,Ire=z(()=>{"use strict";o(cqe,"intersectLine");o(Mre,"sameSign");Nre=cqe});function uqe(e,t,r){let i=e.x,n=e.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(d){s=Math.min(s,d.x),l=Math.min(l,d.y)}):(s=Math.min(s,t.x),l=Math.min(l,t.y));let u=i-e.width/2-s,h=n-e.height/2-l;for(let d=0;d1&&a.sort(function(d,f){let p=d.x-r.x,m=d.y-r.y,g=Math.sqrt(p*p+m*m),y=f.x-r.x,v=f.y-r.y,x=Math.sqrt(y*y+v*v);return g{"use strict";Ire();o(uqe,"intersectPolygon");Ore=uqe});var hqe,cd,dN=z(()=>{"use strict";hqe=o((e,t)=>{var r=e.x,i=e.y,n=t.x-r,a=t.y-i,s=e.width/2,l=e.height/2,u,h;return Math.abs(a)*s>Math.abs(n)*l?(a<0&&(l=-l),u=a===0?0:l*n/a,h=l):(n<0&&(s=-s),u=s,h=n===0?0:s*a/n),{x:r+u,y:i+h}},"intersectRect"),cd=hqe});var lt,Kt=z(()=>{"use strict";Dre();Lre();hN();Pre();dN();lt={node:_re,circle:Rre,ellipse:_4,polygon:Ore,rect:cd}});var Bre,kc,dqe,Xx,ct,mt,fqe,Ht=z(()=>{"use strict";Ut();Bre=o(e=>{let{handDrawnSeed:t}=ge();return{fill:e,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:e,seed:t}},"solidStateFill"),kc=o(e=>{let t=dqe([...e.cssCompiledStyles||[],...e.cssStyles||[],...e.labelStyle||[]]);return{stylesMap:t,stylesArray:[...t]}},"compileStyles"),dqe=o(e=>{let t=new Map;return e.forEach(r=>{let[i,n]=r.split(":");t.set(i.trim(),n?.trim())}),t},"styles2Map"),Xx=o(e=>e==="color"||e==="font-size"||e==="font-family"||e==="font-weight"||e==="font-style"||e==="text-decoration"||e==="text-align"||e==="text-transform"||e==="line-height"||e==="letter-spacing"||e==="word-spacing"||e==="text-shadow"||e==="text-overflow"||e==="white-space"||e==="word-wrap"||e==="word-break"||e==="overflow-wrap"||e==="hyphens","isLabelStyle"),ct=o(e=>{let{stylesArray:t}=kc(e),r=[],i=[],n=[],a=[];return t.forEach(s=>{let l=s[0];Xx(l)?r.push(s.join(":")+" !important"):(i.push(s.join(":")+" !important"),l.includes("stroke")&&n.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:i.join(";"),stylesArray:t,borderStyles:n,backgroundStyles:a}},"styles2String"),mt=o((e,t)=>{let{themeVariables:r,handDrawnSeed:i}=ge(),{nodeBorder:n,mainBkg:a}=r,{stylesMap:s}=kc(e);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||n,seed:i,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:fqe(s.get("stroke-dasharray"))},t)},"userNodeOverrides"),fqe=o(e=>{if(!e)return[0,0];let t=e.trim().split(/\s+/).map(Number);if(t.length===1){let n=isNaN(t[0])?0:t[0];return[n,n]}let r=isNaN(t[0])?0:t[0],i=isNaN(t[1])?0:t[1];return[r,i]},"getStrokeDashArray")});function fN(e,t,r){if(e&&e.length){let[i,n]=t,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of e){let[h,d]=u;u[0]=(h-i)*s-(d-n)*l+i,u[1]=(h-i)*l+(d-n)*s+n}}}function pqe(e,t){return e[0]===t[0]&&e[1]===t[1]}function mqe(e,t,r,i=1){let n=r,a=Math.max(t,.1),s=e[0]&&e[0][0]&&typeof e[0][0]=="number"?[e]:e,l=[0,0];if(n)for(let h of s)fN(h,l,n);let u=(function(h,d,f){let p=[];for(let b of h){let T=[...b];pqe(T[0],T[T.length-1])||T.push([T[0][0],T[0][1]]),T.length>2&&p.push(T)}let m=[];d=Math.max(d,.1);let g=[];for(let b of p)for(let T=0;Tb.yminT.ymin?1:b.xT.x?1:b.ymax===T.ymax?0:(b.ymax-T.ymax)/Math.abs(b.ymax-T.ymax))),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let T=0;Tv);T++)b=T;g.splice(0,b+1).forEach((T=>{y.push({s:v,edge:T})}))}if(y=y.filter((b=>!(b.edge.ymax<=v))),y.sort(((b,T)=>b.edge.x===T.edge.x?0:(b.edge.x-T.edge.x)/Math.abs(b.edge.x-T.edge.x))),(f!==1||x%d==0)&&y.length>1)for(let b=0;b=y.length)break;let w=y[b].edge,C=y[T].edge;m.push([[Math.round(w.x),v],[Math.round(C.x),v]])}v+=f,y.forEach((b=>{b.edge.x=b.edge.x+f*b.edge.islope})),x++}return m})(s,a,i);if(n){for(let h of s)fN(h,l,-n);(function(h,d,f){let p=[];h.forEach((m=>p.push(...m))),fN(p,d,f)})(u,l,-n)}return u}function Jx(e,t){var r;let i=t.hachureAngle+90,n=t.hachureGap;n<0&&(n=4*t.strokeWidth),n=Math.round(Math.max(n,.1));let a=1;return t.roughness>=1&&(((r=t.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=n),mqe(e,n,i,a||1)}function B4(e){let t=e[0],r=e[1];return Math.sqrt(Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2))}function mN(e,t){return e.type===t}function DN(e){let t=[],r=(function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:gqe,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:pN,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:Fre,text:""},l})(e),i="BOD",n=0,a=r[n];for(;!mN(a,Fre);){let s=0,l=[];if(i==="BOD"){if(a.text!=="M"&&a.text!=="m")return DN("M0,0"+e);n++,s=D4[a.text],i=a.text}else mN(a,pN)?s=D4[i]:(n++,s=D4[a.text],i=a.text);if(!(n+sd%2?h+r:h+t));a.push({key:"C",data:u}),t=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),t=l[2],r=l[3];break;case"q":{let u=l.map(((h,d)=>d%2?h+r:h+t));a.push({key:"Q",data:u}),t=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),t=l[5],r=l[6];break;case"a":t+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],t,r]});break;case"H":a.push({key:"H",data:[...l]}),t=l[0];break;case"h":t+=l[0],a.push({key:"H",data:[t]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),t=l[2],r=l[3];break;case"s":{let u=l.map(((h,d)=>d%2?h+r:h+t));a.push({key:"S",data:u}),t=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),t=l[0],r=l[1];break;case"t":t+=l[0],r+=l[1],a.push({key:"T",data:[t,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),t=i,r=n}return a}function Yre(e){let t=[],r="",i=0,n=0,a=0,s=0,l=0,u=0;for(let{key:h,data:d}of e){switch(h){case"M":t.push({key:"M",data:[...d]}),[i,n]=d,[a,s]=d;break;case"C":t.push({key:"C",data:[...d]}),i=d[4],n=d[5],l=d[2],u=d[3];break;case"L":t.push({key:"L",data:[...d]}),[i,n]=d;break;case"H":i=d[0],t.push({key:"L",data:[i,n]});break;case"V":n=d[0],t.push({key:"L",data:[i,n]});break;case"S":{let f=0,p=0;r==="C"||r==="S"?(f=i+(i-l),p=n+(n-u)):(f=i,p=n),t.push({key:"C",data:[f,p,...d]}),l=d[0],u=d[1],i=d[2],n=d[3];break}case"T":{let[f,p]=d,m=0,g=0;r==="Q"||r==="T"?(m=i+(i-l),g=n+(n-u)):(m=i,g=n);let y=i+2*(m-i)/3,v=n+2*(g-n)/3,x=f+2*(m-f)/3,b=p+2*(g-p)/3;t.push({key:"C",data:[y,v,x,b,f,p]}),l=m,u=g,i=f,n=p;break}case"Q":{let[f,p,m,g]=d,y=i+2*(f-i)/3,v=n+2*(p-n)/3,x=m+2*(f-m)/3,b=g+2*(p-g)/3;t.push({key:"C",data:[y,v,x,b,m,g]}),l=f,u=p,i=m,n=g;break}case"A":{let f=Math.abs(d[0]),p=Math.abs(d[1]),m=d[2],g=d[3],y=d[4],v=d[5],x=d[6];f===0||p===0?(t.push({key:"C",data:[i,n,v,x,v,x]}),i=v,n=x):(i!==v||n!==x)&&(jre(i,n,v,x,f,p,m,g,y).forEach((function(b){t.push({key:"C",data:b})})),i=v,n=x);break}case"Z":t.push({key:"Z",data:[]}),i=a,n=s}r=h}return t}function Kx(e,t,r){return[e*Math.cos(r)-t*Math.sin(r),e*Math.sin(r)+t*Math.cos(r)]}function jre(e,t,r,i,n,a,s,l,u,h){let d=(f=s,Math.PI*f/180);var f;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[e,t]=Kx(e,t,-d),[r,i]=Kx(r,i,-d);let _=(e-r)/2,R=(t-i)/2,M=_*_/(n*n)+R*R/(a*a);M>1&&(M=Math.sqrt(M),n*=M,a*=M);let L=n*n,B=a*a,O=L*B-L*R*R-B*_*_,$=L*R*R+B*_*_,G=(l===u?-1:1)*Math.sqrt(Math.abs(O/$));y=G*n*R/a+(e+r)/2,v=G*-a*_/n+(t+i)/2,m=Math.asin(parseFloat(((t-v)/a).toFixed(9))),g=Math.asin(parseFloat(((i-v)/a).toFixed(9))),eg&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let _=g,R=r,M=i;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=jre(r=y+n*Math.cos(g),i=v+a*Math.sin(g),R,M,n,a,s,0,u,[g,_,y,v])}x=g-m;let b=Math.cos(m),T=Math.sin(m),w=Math.cos(g),C=Math.sin(g),k=Math.tan(x/4),E=4/3*n*k,A=4/3*a*k,N=[e,t],P=[e+E*T,t-A*b],I=[r+E*C,i-A*w],D=[r,i];if(P[0]=2*N[0]-P[0],P[1]=2*N[1]-P[1],h)return[P,I,D].concat(p);{p=[P,I,D].concat(p);let _=[];for(let R=0;R2){let n=[];for(let a=0;a2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=qre(v,h,d,f,p,m,g,1,u);if(!u.disableMultiStroke){let b=qre(v,h,d,f,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...ud(h,d,h+f*Math.cos(m),d+p*Math.sin(m),u),...ud(h,d,h+f*Math.cos(g),d+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,d]},{op:"lineTo",data:[h+f*Math.cos(m),d+p*Math.sin(m)]})),{type:"path",ops:x}}function Gre(e,t){let r=Yre(Hre(DN(e))),i=[],n=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],n=[l[0],l[1]];break;case"L":i.push(...ud(a[0],a[1],l[0],l[1],t)),a=[l[0],l[1]];break;case"C":{let[u,h,d,f,p,m]=l;i.push(...xqe(u,h,d,f,p,m,a,t)),a=[p,m];break}case"Z":i.push(...ud(a[0],a[1],n[0],n[1],t)),a=[n[0],n[1]]}return{type:"path",ops:i}}function gN(e,t){let r=[];for(let i of e)if(i.length){let n=t.maxRandomnessOffset||0,a=i.length;if(a>2){r.push({op:"move",data:[i[0][0]+pr(n,t),i[0][1]+pr(n,t)]});for(let s=1;s500?.4:-.0016668*u+1.233334;let d=n.maxRandomnessOffset||0;d*d*100>l&&(d=u/10);let f=d/2,p=.2+.2*Zre(n),m=n.bowing*n.maxRandomnessOffset*(i-t)/200,g=n.bowing*n.maxRandomnessOffset*(e-r)/200;m=pr(m,n,h),g=pr(g,n,h);let y=[],v=o(()=>pr(f,n,h),"M"),x=o(()=>pr(d,n,h),"k"),b=n.preserveVertices;return a&&(s?y.push({op:"move",data:[e+(b?0:v()),t+(b?0:v())]}):y.push({op:"move",data:[e+(b?0:pr(d,n,h)),t+(b?0:pr(d,n,h))]})),s?y.push({op:"bcurveTo",data:[m+e+(r-e)*p+v(),g+t+(i-t)*p+v(),m+e+2*(r-e)*p+v(),g+t+2*(i-t)*p+v(),r+(b?0:v()),i+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+e+(r-e)*p+x(),g+t+(i-t)*p+x(),m+e+2*(r-e)*p+x(),g+t+2*(i-t)*p+x(),r+(b?0:x()),i+(b?0:x())]}),y}function R4(e,t,r){if(!e.length)return[];let i=[];i.push([e[0][0]+pr(t,r),e[0][1]+pr(t,r)]),i.push([e[0][0]+pr(t,r),e[0][1]+pr(t,r)]);for(let n=1;n3){let a=[],s=1-r.curveTightness;n.push({op:"move",data:[e[1][0],e[1][1]]});for(let l=1;l+21&&n.push(l)):n.push(l),n.push(e[t+3])}else{let u=e[t+0],h=e[t+1],d=e[t+2],f=e[t+3],p=Ap(u,h,.5),m=Ap(h,d,.5),g=Ap(d,f,.5),y=Ap(p,m,.5),v=Ap(m,g,.5),x=Ap(y,v,.5);EN([u,p,y,x],0,r,n),EN([x,v,g,f],0,r,n)}var a,s;return n}function Tqe(e,t){return P4(e,0,e.length,t)}function P4(e,t,r,i,n){let a=n||[],s=e[t],l=e[r-1],u=0,h=1;for(let d=t+1;du&&(u=f,h=d)}return Math.sqrt(u)>i?(P4(e,t,h+1,i,a),P4(e,h,r,i,a)):(a.length||a.push(s),a.push(l)),a}function yN(e,t=.15,r){let i=[],n=(e.length-1)/3;for(let a=0;a0?P4(i,0,i.length,r):i}var Qx,vN,xN,bN,TN,CN,Ds,kN,gqe,pN,Fre,D4,yqe,so,Cg,AN,L4,_N,ut,jt=z(()=>{"use strict";o(fN,"t");o(pqe,"e");o(mqe,"s");o(Jx,"n");Qx=class{static{o(this,"o")}constructor(t){this.helper=t}fillPolygons(t,r){return this._fillPolygons(t,r)}_fillPolygons(t,r){let i=Jx(t,r);return{type:"fillSketch",ops:this.renderLines(i,r)}}renderLines(t,r){let i=[];for(let n of t)i.push(...this.helper.doubleLineOps(n[0][0],n[0][1],n[1][0],n[1][1],r));return i}};o(B4,"a");vN=class extends Qx{static{o(this,"h")}fillPolygons(t,r){let i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let n=Jx(t,Object.assign({},r,{hachureGap:i})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*i*Math.cos(a),u=.5*i*Math.sin(a);for(let[h,d]of n)B4([h,d])&&s.push([[h[0]-l,h[1]+u],[...d]],[[h[0]+l,h[1]-u],[...d]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},xN=class extends Qx{static{o(this,"r")}fillPolygons(t,r){let i=this._fillPolygons(t,r),n=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(t,n);return i.ops=i.ops.concat(a.ops),i}},bN=class{static{o(this,"i")}constructor(t){this.helper=t}fillPolygons(t,r){let i=Jx(t,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(i,r)}dotsOnLines(t,r){let i=[],n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=n/4;for(let l of t){let u=B4(l),h=u/n,d=Math.ceil(h)-1,f=u-d*n,p=(l[0][0]+l[1][0])/2-n/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g{let l=B4(s),u=Math.floor(l/(i+n)),h=(l+n-u*(i+n))/2,d=s[0],f=s[1];d[0]>f[0]&&(d=s[1],f=s[0]);let p=Math.atan((f[1]-d[1])/(f[0]-d[0]));for(let m=0;m{let s=B4(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let d=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let f=0;f2*Math.PI&&(E=0,A=2*Math.PI);let N=(A-E)/b.curveStepCount,P=[];for(let I=E;I<=A;I+=N)P.push([T+C*Math.cos(I),w+k*Math.sin(I)]);return P.push([T+C*Math.cos(A),w+k*Math.sin(A)]),P.push([T,w]),Tg([P],b)})(t,r,i,n,a,s,h));return h.stroke!==so&&d.push(f),this._d("arc",d,h)}curve(t,r){let i=this._o(r),n=[],a=$re(t,i);if(i.fill&&i.fill!==so)if(i.fillStyle==="solid"){let s=$re(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));n.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=t;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...yN(Ure([h[0],h[0],h[1],h[2]]),10,(1+i.roughness)/2)):s.push(...yN(Ure(h),10,(1+i.roughness)/2))}s.length&&n.push(Tg([s],i))}return i.stroke!==so&&n.push(a),this._d("curve",n,i)}polygon(t,r){let i=this._o(r),n=[],a=M4(t,!0,i);return i.fill&&(i.fillStyle==="solid"?n.push(gN([t],i)):n.push(Tg([t],i))),i.stroke!==so&&n.push(a),this._d("polygon",n,i)}path(t,r){let i=this._o(r),n=[];if(!t)return this._d("path",n,i);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=i.fill&&i.fill!=="transparent"&&i.fill!==so,s=i.stroke!==so,l=!!(i.simplification&&i.simplification<1),u=(function(d,f,p){let m=Yre(Hre(DN(d))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...yN(x,f)),x=[]},"i"),T=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:C,data:k}of m)switch(C){case"M":T(),v=[k[0],k[1]],y.push(v);break;case"L":b(),y.push([k[0],k[1]]);break;case"C":if(!x.length){let E=y.length?y[y.length-1]:v;x.push([E[0],E[1]])}x.push([k[0],k[1]]),x.push([k[2],k[3]]),x.push([k[4],k[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(T(),!p)return g;let w=[];for(let C of g){let k=Tqe(C,p);k.length&&w.push(k)}return w})(t,1,l?4-4*(i.simplification||1):(1+i.roughness)/2),h=Gre(t,i);if(a)if(i.fillStyle==="solid")if(u.length===1){let d=Gre(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));n.push({type:"fillPath",ops:this._mergedShape(d.ops)})}else n.push(gN(u,i));else n.push(Tg(u,i));return s&&(l?u.forEach((d=>{n.push(M4(d,!1,i))})):n.push(h)),this._d("path",n,i)}opsToPath(t,r){let i="";for(let n of t.ops){let a=typeof r=="number"&&r>=0?n.data.map((s=>+s.toFixed(r))):n.data;switch(n.op){case"move":i+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":i+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":i+=`L${a[0]} ${a[1]} `}}return i.trim()}toPaths(t){let r=t.sets||[],i=t.options||this.defaultOptions,n=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:i.stroke,strokeWidth:i.strokeWidth,fill:so};break;case"fillPath":s={d:this.opsToPath(a),stroke:so,strokeWidth:0,fill:i.fill||so};break;case"fillSketch":s=this.fillSketch(a,i)}s&&n.push(s)}return n}fillSketch(t,r){let i=r.fillWeight;return i<0&&(i=r.strokeWidth/2),{d:this.opsToPath(t),stroke:r.fill||so,strokeWidth:i,fill:so}}_mergedShape(t){return t.filter(((r,i)=>i===0||r.op!=="move"))}},AN=class{static{o(this,"st")}constructor(t,r){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new Cg(r)}draw(t){let r=t.sets||[],i=t.options||this.getDefaultOptions(),n=this.ctx,a=t.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":n.save(),n.strokeStyle=i.stroke==="none"?"transparent":i.stroke,n.lineWidth=i.strokeWidth,i.strokeLineDash&&n.setLineDash(i.strokeLineDash),i.strokeLineDashOffset&&(n.lineDashOffset=i.strokeLineDashOffset),this._drawToContext(n,s,a),n.restore();break;case"fillPath":{n.save(),n.fillStyle=i.fill||"";let l=t.shape==="curve"||t.shape==="polygon"||t.shape==="path"?"evenodd":"nonzero";this._drawToContext(n,s,a,l),n.restore();break}case"fillSketch":this.fillSketch(n,s,i)}}fillSketch(t,r,i){let n=i.fillWeight;n<0&&(n=i.strokeWidth/2),t.save(),i.fillLineDash&&t.setLineDash(i.fillLineDash),i.fillLineDashOffset&&(t.lineDashOffset=i.fillLineDashOffset),t.strokeStyle=i.fill||"",t.lineWidth=n,this._drawToContext(t,r,i.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,r,i,n="nonzero"){t.beginPath();for(let a of r.ops){let s=typeof i=="number"&&i>=0?a.data.map((l=>+l.toFixed(i))):a.data;switch(a.op){case"move":t.moveTo(s[0],s[1]);break;case"bcurveTo":t.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":t.lineTo(s[0],s[1])}}r.type==="fillPath"?t.fill(n):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,r,i,n,a){let s=this.gen.line(t,r,i,n,a);return this.draw(s),s}rectangle(t,r,i,n,a){let s=this.gen.rectangle(t,r,i,n,a);return this.draw(s),s}ellipse(t,r,i,n,a){let s=this.gen.ellipse(t,r,i,n,a);return this.draw(s),s}circle(t,r,i,n){let a=this.gen.circle(t,r,i,n);return this.draw(a),a}linearPath(t,r){let i=this.gen.linearPath(t,r);return this.draw(i),i}polygon(t,r){let i=this.gen.polygon(t,r);return this.draw(i),i}arc(t,r,i,n,a,s,l=!1,u){let h=this.gen.arc(t,r,i,n,a,s,l,u);return this.draw(h),h}curve(t,r){let i=this.gen.curve(t,r);return this.draw(i),i}path(t,r){let i=this.gen.path(t,r);return this.draw(i),i}},L4="http://www.w3.org/2000/svg",_N=class{static{o(this,"ot")}constructor(t,r){this.svg=t,this.gen=new Cg(r)}draw(t){let r=t.sets||[],i=t.options||this.getDefaultOptions(),n=this.svg.ownerDocument||window.document,a=n.createElementNS(L4,"g"),s=t.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=n.createElementNS(L4,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",i.stroke),u.setAttribute("stroke-width",i.strokeWidth+""),u.setAttribute("fill","none"),i.strokeLineDash&&u.setAttribute("stroke-dasharray",i.strokeLineDash.join(" ").trim()),i.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${i.strokeLineDashOffset}`);break;case"fillPath":u=n.createElementNS(L4,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",i.fill||""),t.shape!=="curve"&&t.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(n,l,i)}u&&a.appendChild(u)}return a}fillSketch(t,r,i){let n=i.fillWeight;n<0&&(n=i.strokeWidth/2);let a=t.createElementNS(L4,"path");return a.setAttribute("d",this.opsToPath(r,i.fixedDecimalPlaceDigits)),a.setAttribute("stroke",i.fill||""),a.setAttribute("stroke-width",n+""),a.setAttribute("fill","none"),i.fillLineDash&&a.setAttribute("stroke-dasharray",i.fillLineDash.join(" ").trim()),i.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${i.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,r){return this.gen.opsToPath(t,r)}line(t,r,i,n,a){let s=this.gen.line(t,r,i,n,a);return this.draw(s)}rectangle(t,r,i,n,a){let s=this.gen.rectangle(t,r,i,n,a);return this.draw(s)}ellipse(t,r,i,n,a){let s=this.gen.ellipse(t,r,i,n,a);return this.draw(s)}circle(t,r,i,n){let a=this.gen.circle(t,r,i,n);return this.draw(a)}linearPath(t,r){let i=this.gen.linearPath(t,r);return this.draw(i)}polygon(t,r){let i=this.gen.polygon(t,r);return this.draw(i)}arc(t,r,i,n,a,s,l=!1,u){let h=this.gen.arc(t,r,i,n,a,s,l,u);return this.draw(h)}curve(t,r){let i=this.gen.curve(t,r);return this.draw(i)}path(t,r){let i=this.gen.path(t,r);return this.draw(i)}},ut={canvas:o((e,t)=>new AN(e,t),"canvas"),svg:o((e,t)=>new _N(e,t),"svg"),generator:o(e=>new Cg(e),"generator"),newSeed:o(()=>Cg.newSeed(),"newSeed")}});function Qre(e,t){let{labelStyles:r}=ct(t);t.labelStyle=r;let i=Ct(t),n=i;i||(n="anchor");let a=e.insert("g").attr("class",n).attr("id",t.domId||t.id),s=1,{cssStyles:l}=t,u=ut.svg(a),h=mt(t,{fill:"black",stroke:"none",fillStyle:"solid"});t.look!=="handDrawn"&&(h.roughness=0);let d=u.circle(0,0,s*2,h),f=a.insert(()=>d,":first-child");return f.attr("class","anchor").attr("style",ii(l)),ft(t,f),t.intersect=function(p){return Z.info("Circle intersect",t,s,p),lt.circle(t,s,p)},a}var Jre=z(()=>{"use strict";St();Wt();Kt();Ht();jt();Xt();o(Qre,"anchor")});function eie(e,t,r,i,n,a,s){let u=(e+r)/2,h=(t+i)/2,d=Math.atan2(i-t,r-e),f=(r-e)/2,p=(i-t)/2,m=f/n,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(d)*(s?-1:1),b=h-v*n*Math.cos(d)*(s?-1:1),T=Math.atan2((t-b)/a,(e-x)/n),C=Math.atan2((i-b)/a,(r-x)/n)-T;s&&C<0&&(C+=2*Math.PI),!s&&C>0&&(C-=2*Math.PI);let k=[];for(let E=0;E<20;E++){let A=E/19,N=T+A*C,P=x+n*Math.cos(N),I=b+a*Math.sin(N);k.push({x:P,y:I})}return k}function Cqe(e,t,r){let[i,n]=[t,r].sort((a,s)=>s-a);return n*(1-Math.sqrt(1-(e/i/2)**2))}async function tie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?12:n,l=o(N=>N+s,"calcTotalHeight"),u=o(N=>{let P=N/2;return[P/(2.5+N/50),P]},"calcEllipseRadius"),{shapeSvg:h,bbox:d}=await At(e,t,Ct(t)),f=l(t?.height?t?.height:d.height),[p,m]=u(f),g=Cqe(f,p,m),v=(t?.width?t?.width:d.width)+a*2+g-g,x=f,{cssStyles:b}=t,T=[{x:v/2,y:-x/2},{x:-v/2,y:-x/2},...eie(-v/2,-x/2,-v/2,x/2,p,m,!1),{x:v/2,y:x/2},...eie(v/2,x/2,v/2,-x/2,p,m,!0)],w=ut.svg(h),C=mt(t,{});t.look!=="handDrawn"&&(C.roughness=0,C.fillStyle="solid");let k=tr(T),E=w.path(k,C),A=h.insert(()=>E,":first-child");return A.attr("class","basic label-container outer-path"),b&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",b),i&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",i),A.attr("transform",`translate(${p/2}, 0)`),ft(t,A),t.intersect=function(N){return lt.polygon(t,T,N)},h}var rie=z(()=>{"use strict";Wt();Kt();Ht();jt();o(eie,"generateArcPoints");o(Cqe,"calculateArcSagitta");o(tie,"bowTieRect")});function Ma(e,t,r,i){return e.insert("polygon",":first-child").attr("points",i.map(function(n){return n.x+","+n.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}var Fu=z(()=>{"use strict";o(Ma,"insertPolygonShape")});async function iie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?28:n,s=t.look==="neo"?24:n,{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=(t?.width??u.width)+(t.look==="neo"?a*2:a+F4),d=(t?.height??u.height)+(t.look==="neo"?s*2:s),f=0,p=h,m=-d,g=0,y=[{x:f+F4,y:m},{x:p,y:m},{x:p,y:g},{x:f,y:g},{x:f,y:m+F4},{x:f+F4,y:m}],v,{cssStyles:x}=t;if(t.look==="handDrawn"){let b=ut.svg(l),T=mt(t,{}),w=tr(y),C=b.path(w,T);v=l.insert(()=>C,":first-child").attr("transform",`translate(${-h/2}, ${d/2})`),x&&v.attr("style",x)}else v=Ma(l,h,d,y);return i&&v.attr("style",i),ft(t,v),t.intersect=function(b){return lt.polygon(t,y,b)},l}var F4,nie=z(()=>{"use strict";Wt();Kt();Ht();jt();Fu();Wt();F4=12;o(iie,"card")});function aie(e,t){let{nodeStyles:r}=ct(t);t.label="";let i=e.insert("g").attr("class",Ct(t)).attr("id",t.domId??t.id),{cssStyles:n}=t,a=Math.max(28,t.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],l=ut.svg(i),u=mt(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=tr(s),d=l.path(h,u),f=i.insert(()=>d,":first-child");return n&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",n),r&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",r),t.width=28,t.height=28,t.intersect=function(p){return lt.polygon(t,s,p)},i}var sie=z(()=>{"use strict";Kt();jt();Ht();Wt();o(aie,"choice")});async function $4(e,t,r){let{labelStyles:i,nodeStyles:n}=ct(t);t.labelStyle=i;let{shapeSvg:a,bbox:s,halfPadding:l}=await At(e,t,Ct(t)),u=16,h=r?.padding??l,d=t.look==="neo"?s.width/2+u*2:s.width/2+h,f,{cssStyles:p}=t;if(t.look==="handDrawn"){let m=ut.svg(a),g=mt(t,{}),y=m.circle(0,0,d*2,g);f=a.insert(()=>y,":first-child"),f.attr("class","basic label-container").attr("style",ii(p))}else f=a.insert("circle",":first-child").attr("class","basic label-container").attr("style",n).attr("r",d).attr("cx",0).attr("cy",0);return ft(t,f),t.calcIntersect=function(m,g){let y=m.width/2;return lt.circle(m,y,g)},t.intersect=function(m){return Z.info("Circle intersect",t,d,m),lt.circle(t,d,m)},a}var RN=z(()=>{"use strict";jt();St();Xt();Kt();Ht();Wt();o($4,"circle")});function kqe(e){let t=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),i=e*2,n={x:i/2*t,y:i/2*r},a={x:-(i/2)*t,y:i/2*r},s={x:-(i/2)*t,y:-(i/2)*r},l={x:i/2*t,y:-(i/2)*r};return`M ${a.x},${a.y} L ${l.x},${l.y} + M ${n.x},${n.y} L ${s.x},${s.y}`}function oie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r,t.label="";let n=e.insert("g").attr("class",Ct(t)).attr("id",t.domId??t.id),a=Math.max(30,t?.width??0),{cssStyles:s}=t,l=ut.svg(n),u=mt(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=l.circle(0,0,a*2,u),d=kqe(a),f=l.path(d,u),p=n.insert(()=>h,":first-child");return p.insert(()=>f),p.attr("class","outer-path"),s&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",s),i&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",i),ft(t,p),t.intersect=function(m){return Z.info("crossedCircle intersect",t,{radius:a,point:m}),lt.circle(t,a,m)},n}var lie=z(()=>{"use strict";St();Wt();Ht();jt();Kt();o(kqe,"createLine");o(oie,"crossedCircle")});function hd(e,t,r,i=100,n=0,a=180){let s=[],l=n*Math.PI/180,d=(a*Math.PI/180-l)/(i-1);for(let f=0;fC,":first-child").attr("stroke-opacity",0),k.insert(()=>T,":first-child"),k.attr("class","text"),p&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",p),i&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",i),k.attr("transform",`translate(${f}, 0)`),s.attr("transform",`translate(${-h/2+f-(a.x-(a.left??0))},${-d/2+(t.padding??0)/2-(a.y-(a.top??0))})`),ft(t,k),t.intersect=function(E){return lt.polygon(t,g,E)},n}var uie=z(()=>{"use strict";Wt();Kt();Ht();jt();o(hd,"generateCirclePoints");o(cie,"curlyBraceLeft")});function dd(e,t,r,i=100,n=0,a=180){let s=[],l=n*Math.PI/180,d=(a*Math.PI/180-l)/(i-1);for(let f=0;fC,":first-child").attr("stroke-opacity",0),k.insert(()=>T,":first-child"),k.attr("class","text"),p&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",p),i&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",i),k.attr("transform",`translate(${-f}, 0)`),s.attr("transform",`translate(${-h/2+(t.padding??0)/2-(a.x-(a.left??0))},${-d/2+(t.padding??0)/2-(a.y-(a.top??0))})`),ft(t,k),t.intersect=function(E){return lt.polygon(t,g,E)},n}var die=z(()=>{"use strict";Wt();Kt();Ht();jt();o(dd,"generateCirclePoints");o(hie,"curlyBraceRight")});function Na(e,t,r,i=100,n=0,a=180){let s=[],l=n*Math.PI/180,d=(a*Math.PI/180-l)/(i-1);for(let f=0;fN,":first-child").attr("stroke-opacity",0),P.insert(()=>w,":first-child"),P.insert(()=>E,":first-child"),P.attr("class","text"),p&&t.look!=="handDrawn"&&P.selectAll("path").attr("style",p),i&&t.look!=="handDrawn"&&P.selectAll("path").attr("style",i),P.attr("transform",`translate(${f-f/4}, 0)`),s.attr("transform",`translate(${-h/2+(t.padding??0)/2-(a.x-(a.left??0))},${-d/2+(t.padding??0)/2-(a.y-(a.top??0))})`),ft(t,P),t.intersect=function(I){return lt.polygon(t,y,I)},n}var pie=z(()=>{"use strict";Wt();Kt();Ht();jt();o(Na,"generateCirclePoints");o(fie,"curlyBraces")});async function mie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?12:n,l=20,u=5,{shapeSvg:h,bbox:d}=await At(e,t,Ct(t)),f=Math.max(l,(d.width+a*2)*1.25,t?.width??0),p=Math.max(u,d.height+s*2,t?.height??0),m=p/2,{cssStyles:g}=t,y=ut.svg(h),v=mt(t,{});t.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=f,b=p,T=x-m,w=b/4,C=[{x:T,y:0},{x:w,y:0},{x:0,y:b/2},{x:w,y:b},{x:T,y:b},...Ep(-T,-b/2,m,50,270,90)],k=tr(C),E=y.path(k,v),A=h.insert(()=>E,":first-child");return A.attr("class","basic label-container outer-path"),g&&t.look!=="handDrawn"&&A.selectChildren("path").attr("style",g),i&&t.look!=="handDrawn"&&A.selectChildren("path").attr("style",i),A.attr("transform",`translate(${-f/2}, ${-p/2})`),ft(t,A),t.intersect=function(N){return lt.polygon(t,C,N)},h}var gie=z(()=>{"use strict";Wt();Kt();Ht();jt();o(mie,"curvedTrapezoid")});async function xie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?24:n,s=t.look==="neo"?24:n;if(t.width||t.height){let v=t.width??0;t.width=(t.width??0)-s,t.widthC,":first-child"),g=l.insert(()=>w,":first-child"),g.attr("class","basic label-container"),y&&g.attr("style",y)}else{let v=wqe(0,0,d,m,f,p);g=l.insert("path",":first-child").attr("d",v).attr("class","basic label-container outer-path").attr("style",ii(y)).attr("style",i)}return g.attr("label-offset-y",p),g.attr("transform",`translate(${-d/2}, ${-(m/2+p)})`),ft(t,g),h.attr("transform",`translate(${-(u.width/2)-(u.x-(u.left??0))}, ${-(u.height/2)+(t.padding??0)/1.5-(u.y-(u.top??0))})`),t.intersect=function(v){let x=lt.rect(t,v),b=x.x-(t.x??0);if(f!=0&&(Math.abs(b)<(t.width??0)/2||Math.abs(b)==(t.width??0)/2&&Math.abs(x.y-(t.y??0))>(t.height??0)/2-p)){let T=p*p*(1-b*b/(f*f));T>0&&(T=Math.sqrt(T)),T=p-T,v.y-(t.y??0)>0&&(T=-T),x.y+=T}return x},l}var wqe,Sqe,Eqe,yie,vie,bie=z(()=>{"use strict";Wt();Kt();Ht();jt();Xt();wqe=o((e,t,r,i,n,a)=>[`M${e},${t+a}`,`a${n},${a} 0,0,0 ${r},0`,`a${n},${a} 0,0,0 ${-r},0`,`l0,${i}`,`a${n},${a} 0,0,0 ${r},0`,`l0,${-i}`].join(" "),"createCylinderPathD"),Sqe=o((e,t,r,i,n,a)=>[`M${e},${t+a}`,`M${e+r},${t+a}`,`a${n},${a} 0,0,0 ${-r},0`,`l0,${i}`,`a${n},${a} 0,0,0 ${r},0`,`l0,${-i}`].join(" "),"createOuterCylinderPathD"),Eqe=o((e,t,r,i,n,a)=>[`M${e-r/2},${-i/2}`,`a${n},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),yie=8,vie=8;o(xie,"cylinder")});var Rs,_p=z(()=>{"use strict";Rs=o((e,t,r,i,n)=>["M",e+n,t,"H",e+r-n,"A",n,n,0,0,1,e+r,t+n,"V",t+i-n,"A",n,n,0,0,1,e+r-n,t+i,"H",e+n,"A",n,n,0,0,1,e,t+i-n,"V",t+n,"A",n,n,0,0,1,e+n,t,"Z"].join(" "),"createRoundedRectPathD")});async function Ml(e,t,r){let{labelStyles:i,nodeStyles:n}=ct(t);t.labelStyle=i;let{shapeSvg:a,bbox:s}=await At(e,t,Ct(t)),l=Math.max(s.width+r.labelPaddingX*2,t?.width||0),u=Math.max(s.height+r.labelPaddingY*2,t?.height||0),h=-l/2,d=-u/2,f,{rx:p,ry:m}=t,{cssStyles:g}=t;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),t.look==="handDrawn"){let y=ut.svg(a),v=mt(t,{}),x=p||m?y.path(Rs(h,d,l,u,p||0),v):y.rectangle(h,d,l,u,v);f=a.insert(()=>x,":first-child"),f.attr("class","basic label-container").attr("style",ii(g))}else f=a.insert("rect",":first-child"),f.attr("class","basic label-container").attr("style",n).attr("rx",ii(p)).attr("ry",ii(m)).attr("x",h).attr("y",d).attr("width",l).attr("height",u);return ft(t,f),t.calcIntersect=function(y,v){return lt.rect(y,v)},t.intersect=function(y){return lt.rect(t,y)},a}var Dp=z(()=>{"use strict";Wt();Kt();_p();Ht();jt();Xt();o(Ml,"drawRect")});async function Tie(e,t){let{cssClasses:r,labelPaddingX:i,labelPaddingY:n,padding:a,width:s,height:l}=t,u={rx:0,ry:0,classes:r??"",labelPaddingX:i??(a??0)*2,labelPaddingY:n??a??0},h=await Ml(e,t,u);if(t.look==="handDrawn"){let m=ut.svg(h),g=mt(t,{}),y=h.select(".basic.label-container > path:nth-child(2)"),v=y.node();if(!v)return h;let x=null;if(v instanceof SVGGraphicsElement)x=v.getBBox();else return h;return h.insert(()=>m.line(x.x,x.y,x.x+x.width,x.y,g),".basic.label-container g.label"),h.insert(()=>m.line(x.x,x.y+x.height,x.x+x.width,x.y+x.height,g),".basic.label-container g.label"),y.remove(),h}let d=h.select(".basic.label-container"),f=(Number(d.attr("width"))||s)??0,p=(Number(d.attr("height"))||l)??0;return f>0&&p>0&&d.attr("stroke-dasharray",`${f} ${p}`),h}var Cie=z(()=>{"use strict";Dp();Ht();jt();o(Tie,"datastore")});async function kie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.look==="neo"?16:t.padding??0,a=t.look==="neo"?16:t.padding??0,{shapeSvg:s,bbox:l,label:u}=await At(e,t,Ct(t)),h=l.width+n,d=l.height+a,f=d*.2,p=-h/2,m=-d/2-f/2,{cssStyles:g}=t,y=ut.svg(s),v=mt(t,{});t.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:p,y:m+f},{x:-p,y:m+f},{x:-p,y:-m},{x:p,y:-m},{x:p,y:m},{x:-p,y:m},{x:-p,y:m+f}],b=y.polygon(x.map(w=>[w.x,w.y]),v),T=s.insert(()=>b,":first-child");return T.attr("class","basic label-container outer-path"),g&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",g),i&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",i),u.attr("transform",`translate(${p+(t.padding??0)/2-(l.x-(l.left??0))}, ${m+f+(t.padding??0)/2-(l.y-(l.top??0))})`),ft(t,T),t.intersect=function(w){return lt.rect(t,w)},s}var wie=z(()=>{"use strict";Wt();Kt();Ht();jt();o(kie,"dividedRectangle")});async function Sie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t),n=t.look==="neo"?12:5;t.labelStyle=r;let a=t.padding??0,s=t.look==="neo"?16:a,{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=(t?.width?t?.width/2:u.width/2)+(s??0),d=h-n,f,{cssStyles:p}=t;if(t.look==="handDrawn"){let m=ut.svg(l),g=mt(t,{roughness:.2,strokeWidth:2.5}),y=mt(t,{roughness:.2,strokeWidth:1.5}),v=m.circle(0,0,h*2,g),x=m.circle(0,0,d*2,y);f=l.insert("g",":first-child"),f.attr("class",ii(t.cssClasses)).attr("style",ii(p)),f.node()?.appendChild(v),f.node()?.appendChild(x)}else{f=l.insert("g",":first-child");let m=f.insert("circle",":first-child"),g=f.insert("circle");f.attr("class","basic label-container").attr("style",i),m.attr("class","outer-circle").attr("style",i).attr("r",h).attr("cx",0).attr("cy",0),g.attr("class","inner-circle").attr("style",i).attr("r",d).attr("cx",0).attr("cy",0)}return ft(t,f),t.intersect=function(m){return Z.info("DoubleCircle intersect",t,h,m),lt.circle(t,h,m)},l}var Eie=z(()=>{"use strict";St();Wt();Kt();Ht();jt();Xt();o(Sie,"doublecircle")});function Aie(e,t,{config:{themeVariables:r}}){let{labelStyles:i,nodeStyles:n}=ct(t);t.label="",t.labelStyle=i;let a=e.insert("g").attr("class",Ct(t)).attr("id",t.domId??t.id),s=7,{cssStyles:l}=t,u=ut.svg(a),{nodeBorder:h}=r,d=mt(t,{fillStyle:"solid"});t.look!=="handDrawn"&&(d.roughness=0);let f=u.circle(0,0,s*2,d),p=a.insert(()=>f,":first-child");return p.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",l),n&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",n),ft(t,p),t.intersect=function(m){return Z.info("filledCircle intersect",t,{radius:s,point:m}),lt.circle(t,s,m)},a}var _ie=z(()=>{"use strict";jt();St();Kt();Ht();Wt();o(Aie,"filledCircle")});async function Lie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?n*2:n;(t.width||t.height)&&(t.height=t?.height??0,t.heightx,":first-child").attr("transform",`translate(${-d/2}, ${d/2})`).attr("class","outer-path");return m&&t.look!=="handDrawn"&&b.selectChildren("path").attr("style",m),i&&t.look!=="handDrawn"&&b.selectChildren("path").attr("style",i),t.width=h,t.height=d,ft(t,b),u.attr("transform",`translate(${-l.width/2-(l.x-(l.left??0))}, ${-d/2+(t.padding??0)/2+(l.y-(l.top??0))})`),t.intersect=function(T){return Z.info("Triangle intersect",t,p,T),lt.polygon(t,p,T)},s}var Die,Rie,Mie=z(()=>{"use strict";St();Wt();Kt();Ht();jt();Wt();Die=10,Rie=10;o(Lie,"flippedTriangle")});function Nie(e,t,{dir:r,config:{state:i,themeVariables:n}}){let{nodeStyles:a}=ct(t);t.label="";let s=e.insert("g").attr("class",Ct(t)).attr("id",t.domId??t.id),{cssStyles:l}=t,u=Math.max(70,t?.width??0),h=Math.max(10,t?.height??0);r==="LR"&&(u=Math.max(10,t?.width??0),h=Math.max(70,t?.height??0));let d=-1*u/2,f=-1*h/2,p=ut.svg(s),m=mt(t,{stroke:n.lineColor,fill:n.lineColor});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=p.rectangle(d,f,u,h,m),y=s.insert(()=>g,":first-child");l&&t.look!=="handDrawn"&&y.selectAll("path").attr("style",l),a&&t.look!=="handDrawn"&&y.selectAll("path").attr("style",a),ft(t,y);let v=i?.padding??0;return t.width&&t.height&&(t.width+=v/2||0,t.height+=v/2||0),t.intersect=function(x){return lt.rect(t,x)},s}var Iie=z(()=>{"use strict";jt();Kt();Ht();Wt();o(Nie,"forkJoin")});async function Oie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=15,a=10,s=t.look==="neo"?16:t.padding??0,l=t.look==="neo"?12:t.padding??0;(t.width||t.height)&&(t.height=(t?.height??0)-l*2,t.heightb,":first-child");return T.attr("class","basic label-container outer-path"),m&&t.look!=="handDrawn"&&T.selectChildren("path").attr("style",m),i&&t.look!=="handDrawn"&&T.selectChildren("path").attr("style",i),ft(t,T),t.intersect=function(w){return Z.info("Pill intersect",t,{radius:p,point:w}),lt.polygon(t,v,w)},u}var Pie=z(()=>{"use strict";St();Wt();Kt();Ht();jt();o(Oie,"halfRoundedRectangle")});async function Bie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t),n=t.look==="neo"?3.5:4;t.labelStyle=r;let a=t.padding??0,s=70,l=32,u=t.look==="neo"?s:a,h=t.look==="neo"?l:a;if(t.width||t.height){let T=(t.height??0)/n;t.width=(t?.width??0)-2*T-h,t.height=(t.height??0)-u}let{shapeSvg:d,bbox:f}=await At(e,t,Ct(t)),p=(t?.height?t?.height:f.height)+u,m=p/n,g=(t?.width?t?.width:f.width)+2*m+h,y=[{x:m,y:0},{x:g-m,y:0},{x:g,y:-p/2},{x:g-m,y:-p},{x:m,y:-p},{x:0,y:-p/2}],v,{cssStyles:x}=t;if(t.look==="handDrawn"){let b=ut.svg(d),T=mt(t,{}),w=Aqe(0,0,g,p,m),C=b.path(w,T);v=d.insert(()=>C,":first-child").attr("transform",`translate(${-g/2}, ${p/2})`),x&&v.attr("style",x)}else v=Ma(d,g,p,y);return i&&v.attr("style",i),t.width=g,t.height=p,ft(t,v),t.intersect=function(b){return lt.polygon(t,y,b)},d}var Aqe,Fie=z(()=>{"use strict";Wt();Kt();Ht();jt();Fu();Aqe=o((e,t,r,i,n)=>[`M${e+n},${t}`,`L${e+r-n},${t}`,`L${e+r},${t-i/2}`,`L${e+r-n},${t-i}`,`L${e+n},${t-i}`,`L${e},${t-i/2}`,"Z"].join(" "),"createHexagonPathD");o(Bie,"hexagon")});async function $ie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.label="",t.labelStyle=r;let{shapeSvg:n}=await At(e,t,Ct(t)),a=Math.max(30,t?.width??0),s=Math.max(30,t?.height??0),{cssStyles:l}=t,u=ut.svg(n),h=mt(t,{});t.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let d=[{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s}],f=tr(d),p=u.path(f,h),m=n.insert(()=>p,":first-child");return m.attr("class","basic label-container outer-path"),l&&t.look!=="handDrawn"&&m.selectChildren("path").attr("style",l),i&&t.look!=="handDrawn"&&m.selectChildren("path").attr("style",i),m.attr("transform",`translate(${-a/2}, ${-s/2})`),ft(t,m),t.intersect=function(g){return Z.info("Pill intersect",t,{points:d}),lt.polygon(t,d,g)},n}var zie=z(()=>{"use strict";St();Wt();Kt();Ht();jt();o($ie,"hourglass")});async function Gie(e,t,{config:{themeVariables:r,flowchart:i}}){let{labelStyles:n}=ct(t);t.labelStyle=n;let a=t.assetHeight??48,s=t.assetWidth??48,l=Math.max(a,s),u=i?.wrappingWidth;t.width=Math.max(l,u??0);let{shapeSvg:h,bbox:d,label:f}=await At(e,t,"icon-shape default"),p=t.pos==="t",m=l,g=l,{nodeBorder:y}=r,{stylesMap:v}=kc(t),x=-g/2,b=-m/2,T=t.label?8:0,w=ut.svg(h),C=mt(t,{stroke:"none",fill:"none"});t.look!=="handDrawn"&&(C.roughness=0,C.fillStyle="solid");let k=w.rectangle(x,b,g,m,C),E=Math.max(g,d.width),A=m+d.height+T,N=w.rectangle(-E/2,-A/2,E,A,{...C,fill:"transparent",stroke:"none"}),P=h.insert(()=>k,":first-child"),I=h.insert(()=>N);if(t.icon){let D=h.append("g");D.html(`${await ks(t.icon,{height:l,width:l,fallbackPrefix:""})}`);let _=D.node().getBBox(),R=_.width,M=_.height,L=_.x,B=_.y;D.attr("transform",`translate(${-R/2-L},${p?d.height/2+T/2-M/2-B:-d.height/2-T/2-M/2-B})`),D.attr("style",`color: ${v.get("stroke")??y};`)}return f.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))},${p?-A/2:A/2-d.height})`),P.attr("transform",`translate(0,${p?d.height/2+T/2:-d.height/2-T/2})`),ft(t,I),t.intersect=function(D){if(Z.info("iconSquare intersect",t,D),!t.label)return lt.rect(t,D);let _=t.x??0,R=t.y??0,M=t.height??0,L=[];return p?L=[{x:_-d.width/2,y:R-M/2},{x:_+d.width/2,y:R-M/2},{x:_+d.width/2,y:R-M/2+d.height+T},{x:_+g/2,y:R-M/2+d.height+T},{x:_+g/2,y:R+M/2},{x:_-g/2,y:R+M/2},{x:_-g/2,y:R-M/2+d.height+T},{x:_-d.width/2,y:R-M/2+d.height+T}]:L=[{x:_-g/2,y:R-M/2},{x:_+g/2,y:R-M/2},{x:_+g/2,y:R-M/2+m},{x:_+d.width/2,y:R-M/2+m},{x:_+d.width/2/2,y:R+M/2},{x:_-d.width/2,y:R+M/2},{x:_-d.width/2,y:R-M/2+m},{x:_-g/2,y:R-M/2+m}],lt.polygon(t,L,D)},h}var Vie=z(()=>{"use strict";jt();St();uc();Kt();Ht();Wt();o(Gie,"icon")});async function Wie(e,t,{config:{themeVariables:r,flowchart:i}}){let{labelStyles:n}=ct(t);t.labelStyle=n;let a=t.assetHeight??48,s=t.assetWidth??48,l=Math.max(a,s),u=i?.wrappingWidth;t.width=Math.max(l,u??0);let{shapeSvg:h,bbox:d,label:f}=await At(e,t,"icon-shape default"),p=20,m=t.label?8:0,g=t.pos==="t",{nodeBorder:y,mainBkg:v}=r,{stylesMap:x}=kc(t),b=ut.svg(h),T=mt(t,{});t.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let w=x.get("fill");T.stroke=w??v;let C=h.append("g");t.icon&&C.html(`${await ks(t.icon,{height:l,width:l,fallbackPrefix:""})}`);let k=C.node().getBBox(),E=k.width,A=k.height,N=k.x,P=k.y,I=Math.max(E,A)*Math.SQRT2+p*2,D=b.circle(0,0,I,T),_=Math.max(I,d.width),R=I+d.height+m,M=b.rectangle(-_/2,-R/2,_,R,{...T,fill:"transparent",stroke:"none"}),L=h.insert(()=>D,":first-child"),B=h.insert(()=>M);return C.attr("transform",`translate(${-E/2-N},${g?d.height/2+m/2-A/2-P:-d.height/2-m/2-A/2-P})`),C.attr("style",`color: ${x.get("stroke")??y};`),f.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))},${g?-R/2:R/2-d.height})`),L.attr("transform",`translate(0,${g?d.height/2+m/2:-d.height/2-m/2})`),ft(t,B),t.intersect=function(O){return Z.info("iconSquare intersect",t,O),lt.rect(t,O)},h}var qie=z(()=>{"use strict";jt();St();uc();Kt();Ht();Wt();o(Wie,"iconCircle")});async function Uie(e,t,{config:{themeVariables:r,flowchart:i}}){let{labelStyles:n}=ct(t);t.labelStyle=n;let a=t.assetHeight??48,s=t.assetWidth??48,l=Math.max(a,s),u=i?.wrappingWidth;t.width=Math.max(l,u??0);let{shapeSvg:h,bbox:d,halfPadding:f,label:p}=await At(e,t,"icon-shape default"),m=t.pos==="t",g=l+f*2,y=l+f*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=kc(t),T=-y/2,w=-g/2,C=t.label?8:0,k=ut.svg(h),E=mt(t,{});t.look!=="handDrawn"&&(E.roughness=0,E.fillStyle="solid");let A=b.get("fill");E.stroke=A??x;let N=k.path(Rs(T,w,y,g,5),E),P=Math.max(y,d.width),I=g+d.height+C,D=k.rectangle(-P/2,-I/2,P,I,{...E,fill:"transparent",stroke:"none"}),_=h.insert(()=>N,":first-child").attr("class","icon-shape2"),R=h.insert(()=>D);if(t.icon){let M=h.append("g");M.html(`${await ks(t.icon,{height:l,width:l,fallbackPrefix:""})}`);let L=M.node().getBBox(),B=L.width,O=L.height,$=L.x,G=L.y;M.attr("transform",`translate(${-B/2-$},${m?d.height/2+C/2-O/2-G:-d.height/2-C/2-O/2-G})`),M.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))},${m?-I/2:I/2-d.height})`),_.attr("transform",`translate(0,${m?d.height/2+C/2:-d.height/2-C/2})`),ft(t,R),t.intersect=function(M){if(Z.info("iconSquare intersect",t,M),!t.label)return lt.rect(t,M);let L=t.x??0,B=t.y??0,O=t.height??0,$=[];return m?$=[{x:L-d.width/2,y:B-O/2},{x:L+d.width/2,y:B-O/2},{x:L+d.width/2,y:B-O/2+d.height+C},{x:L+y/2,y:B-O/2+d.height+C},{x:L+y/2,y:B+O/2},{x:L-y/2,y:B+O/2},{x:L-y/2,y:B-O/2+d.height+C},{x:L-d.width/2,y:B-O/2+d.height+C}]:$=[{x:L-y/2,y:B-O/2},{x:L+y/2,y:B-O/2},{x:L+y/2,y:B-O/2+g},{x:L+d.width/2,y:B-O/2+g},{x:L+d.width/2/2,y:B+O/2},{x:L-d.width/2,y:B+O/2},{x:L-d.width/2,y:B-O/2+g},{x:L-y/2,y:B-O/2+g}],lt.polygon(t,$,M)},h}var Hie=z(()=>{"use strict";jt();St();uc();Kt();Ht();_p();Wt();o(Uie,"iconRounded")});async function Yie(e,t,{config:{themeVariables:r,flowchart:i}}){let{labelStyles:n}=ct(t);t.labelStyle=n;let a=t.assetHeight??48,s=t.assetWidth??48,l=Math.max(a,s),u=i?.wrappingWidth;t.width=Math.max(l,u??0);let{shapeSvg:h,bbox:d,halfPadding:f,label:p}=await At(e,t,"icon-shape default"),m=t.pos==="t",g=l+f*2,y=l+f*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=kc(t),T=-y/2,w=-g/2,C=t.label?8:0,k=ut.svg(h),E=mt(t,{});t.look!=="handDrawn"&&(E.roughness=0,E.fillStyle="solid");let A=b.get("fill");E.stroke=A??x;let N=k.path(Rs(T,w,y,g,.1),E),P=Math.max(y,d.width),I=g+d.height+C,D=k.rectangle(-P/2,-I/2,P,I,{...E,fill:"transparent",stroke:"none"}),_=h.insert(()=>N,":first-child"),R=h.insert(()=>D);if(t.icon){let M=h.append("g");M.html(`${await ks(t.icon,{height:l,width:l,fallbackPrefix:""})}`);let L=M.node().getBBox(),B=L.width,O=L.height,$=L.x,G=L.y;M.attr("transform",`translate(${-B/2-$},${m?d.height/2+C/2-O/2-G:-d.height/2-C/2-O/2-G})`),M.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))},${m?-I/2:I/2-d.height})`),_.attr("transform",`translate(0,${m?d.height/2+C/2:-d.height/2-C/2})`),ft(t,R),t.intersect=function(M){if(Z.info("iconSquare intersect",t,M),!t.label)return lt.rect(t,M);let L=t.x??0,B=t.y??0,O=t.height??0,$=[];return m?$=[{x:L-d.width/2,y:B-O/2},{x:L+d.width/2,y:B-O/2},{x:L+d.width/2,y:B-O/2+d.height+C},{x:L+y/2,y:B-O/2+d.height+C},{x:L+y/2,y:B+O/2},{x:L-y/2,y:B+O/2},{x:L-y/2,y:B-O/2+d.height+C},{x:L-d.width/2,y:B-O/2+d.height+C}]:$=[{x:L-y/2,y:B-O/2},{x:L+y/2,y:B-O/2},{x:L+y/2,y:B-O/2+g},{x:L+d.width/2,y:B-O/2+g},{x:L+d.width/2/2,y:B+O/2},{x:L-d.width/2,y:B+O/2},{x:L-d.width/2,y:B-O/2+g},{x:L-y/2,y:B-O/2+g}],lt.polygon(t,$,M)},h}var jie=z(()=>{"use strict";jt();St();uc();Kt();_p();Ht();Wt();o(Yie,"iconSquare")});async function Xie(e,t,{config:{flowchart:r}}){let i=new Image;i.src=t?.img??"",await i.decode();let n=Number(i.naturalWidth.toString().replace("px","")),a=Number(i.naturalHeight.toString().replace("px",""));t.imageAspectRatio=n/a;let{labelStyles:s}=ct(t);t.labelStyle=s;let l=r?.wrappingWidth;t.defaultWidth=r?.wrappingWidth;let u=Math.max(t.label?l??0:0,t?.assetWidth??n),h=t.constraint==="on"&&t?.assetHeight?t.assetHeight*t.imageAspectRatio:u,d=t.constraint==="on"?h/t.imageAspectRatio:t?.assetHeight??a;t.width=Math.max(h,l??0);let{shapeSvg:f,bbox:p,label:m}=await At(e,t,"image-shape default"),g=t.pos==="t",y=-h/2,v=-d/2,x=t.label?8:0,b=ut.svg(f),T=mt(t,{});t.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let w=b.rectangle(y,v,h,d,T),C=Math.max(h,p.width),k=d+p.height+x,E=b.rectangle(-C/2,-k/2,C,k,{...T,fill:"none",stroke:"none"}),A=f.insert(()=>w,":first-child"),N=f.insert(()=>E);if(t.img){let P=f.append("image");P.attr("href",t.img),P.attr("width",h),P.attr("height",d),P.attr("preserveAspectRatio","none"),P.attr("transform",`translate(${-h/2},${g?k/2-d:-k/2})`)}return m.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${g?-d/2-p.height/2-x/2:d/2-p.height/2+x/2})`),A.attr("transform",`translate(0,${g?p.height/2+x/2:-p.height/2-x/2})`),ft(t,N),t.intersect=function(P){if(Z.info("iconSquare intersect",t,P),!t.label)return lt.rect(t,P);let I=t.x??0,D=t.y??0,_=t.height??0,R=[];return g?R=[{x:I-p.width/2,y:D-_/2},{x:I+p.width/2,y:D-_/2},{x:I+p.width/2,y:D-_/2+p.height+x},{x:I+h/2,y:D-_/2+p.height+x},{x:I+h/2,y:D+_/2},{x:I-h/2,y:D+_/2},{x:I-h/2,y:D-_/2+p.height+x},{x:I-p.width/2,y:D-_/2+p.height+x}]:R=[{x:I-h/2,y:D-_/2},{x:I+h/2,y:D-_/2},{x:I+h/2,y:D-_/2+d},{x:I+p.width/2,y:D-_/2+d},{x:I+p.width/2/2,y:D+_/2},{x:I-p.width/2,y:D+_/2},{x:I-p.width/2,y:D-_/2+d},{x:I-h/2,y:D-_/2+d}],lt.polygon(t,R,P)},f}var Kie=z(()=>{"use strict";jt();St();Kt();Ht();Wt();o(Xie,"imageSquare")});async function Zie(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=n,s=t.look==="neo"?n*2:n,{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=Math.max(u.width+(s??0)*2,t?.width??0),d=Math.max(u.height+(a??0)*2,t?.height??0),f=[{x:0,y:0},{x:h,y:0},{x:h+3*d/6,y:-d},{x:-3*d/6,y:-d}],p,{cssStyles:m}=t;if(t.look==="handDrawn"){let g=ut.svg(l),y=mt(t,{}),v=tr(f),x=g.path(v,y);p=l.insert(()=>x,":first-child").attr("transform",`translate(${-h/2}, ${d/2})`),m&&p.attr("style",m)}else p=Ma(l,h,d,f);return i&&p.attr("style",i),t.width=h,t.height=d,ft(t,p),t.intersect=function(g){return lt.polygon(t,f,g)},l}var Qie=z(()=>{"use strict";Wt();Kt();Ht();jt();Fu();o(Zie,"inv_trapezoid")});async function Jie(e,t){let{shapeSvg:r,bbox:i,label:n}=await At(e,t,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),n.attr("transform",`translate(${-(i.width/2)-(i.x-(i.left??0))}, ${-(i.height/2)-(i.y-(i.top??0))})`),ft(t,a),t.intersect=function(u){return lt.rect(t,u)},r}var ene=z(()=>{"use strict";Dp();Wt();Kt();o(Jie,"labelRect")});async function tne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=n,s=t.look==="neo"?n*2:n,{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=(t?.height??u.height)+a,d=(t?.width??u.width)+s,f=[{x:0,y:0},{x:d+3*h/6,y:0},{x:d,y:-h},{x:-(3*h)/6,y:-h}],p,{cssStyles:m}=t;if(t.look==="handDrawn"){let g=ut.svg(l),y=mt(t,{}),v=tr(f),x=g.path(v,y);p=l.insert(()=>x,":first-child").attr("transform",`translate(${-d/2}, ${h/2})`),m&&p.attr("style",m)}else p=Ma(l,d,h,f);return i&&p.attr("style",i),t.width=d,t.height=h,ft(t,p),t.intersect=function(g){return lt.polygon(t,f,g)},l}var rne=z(()=>{"use strict";Wt();Kt();Ht();jt();Fu();o(tne,"lean_left")});async function ine(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=n,s=t.look==="neo"?n*2:n,{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=(t?.height??u.height)+a,d=(t?.width??u.width)+s,f=[{x:-3*h/6,y:0},{x:d,y:0},{x:d+3*h/6,y:-h},{x:0,y:-h}],p,{cssStyles:m}=t;if(t.look==="handDrawn"){let g=ut.svg(l),y=mt(t,{}),v=tr(f),x=g.path(v,y);p=l.insert(()=>x,":first-child").attr("transform",`translate(${-d/2}, ${h/2})`),m&&p.attr("style",m)}else p=Ma(l,d,h,f);return i&&p.attr("style",i),t.width=d,t.height=h,ft(t,p),t.intersect=function(g){return lt.polygon(t,f,g)},l}var nne=z(()=>{"use strict";Wt();Kt();Ht();jt();Fu();o(ine,"lean_right")});function ane(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.label="",t.labelStyle=r;let n=e.insert("g").attr("class",Ct(t)).attr("id",t.domId??t.id),{cssStyles:a}=t,s=Math.max(35,t?.width??0),l=Math.max(35,t?.height??0),u=7,h=[{x:s,y:0},{x:0,y:l+u/2},{x:s-2*u,y:l+u/2},{x:0,y:2*l},{x:s,y:l-u/2},{x:2*u,y:l-u/2}],d=ut.svg(n),f=mt(t,{});t.look!=="handDrawn"&&(f.roughness=0,f.fillStyle="solid");let p=tr(h),m=d.path(p,f),g=n.insert(()=>m,":first-child");return g.attr("class","outer-path"),a&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",a),i&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",i),g.attr("transform",`translate(-${s/2},${-l})`),ft(t,g),t.intersect=function(y){return Z.info("lightningBolt intersect",t,y),lt.polygon(t,h,y)},n}var sne=z(()=>{"use strict";St();Wt();Ht();jt();Kt();Wt();o(ane,"lightningBolt")});async function cne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?24:n;if(t.width||t.height){let x=t.width??0;t.width=(t.width??0)-a,t.widthk,":first-child").attr("class","line"),y=l.insert(()=>C,":first-child"),y.attr("class","basic label-container"),v&&y.attr("style",v)}else{let x=_qe(0,0,d,m,f,p,g);y=l.insert("path",":first-child").attr("d",x).attr("class","basic label-container outer-path").attr("style",ii(v)).attr("style",i)}return y.attr("label-offset-y",p),y.attr("transform",`translate(${-d/2}, ${-(m/2+p)})`),ft(t,y),h.attr("transform",`translate(${-(u.width/2)-(u.x-(u.left??0))}, ${-(u.height/2)+p-(u.y-(u.top??0))})`),t.intersect=function(x){let b=lt.rect(t,x),T=b.x-(t.x??0);if(f!=0&&(Math.abs(T)<(t.width??0)/2||Math.abs(T)==(t.width??0)/2&&Math.abs(b.y-(t.y??0))>(t.height??0)/2-p)){let w=p*p*(1-T*T/(f*f));w>0&&(w=Math.sqrt(w)),w=p-w,x.y-(t.y??0)>0&&(w=-w),b.y+=w}return b},l}var _qe,Dqe,Rqe,one,lne,une=z(()=>{"use strict";Wt();Kt();Ht();jt();Xt();_qe=o((e,t,r,i,n,a,s)=>[`M${e},${t+a}`,`a${n},${a} 0,0,0 ${r},0`,`a${n},${a} 0,0,0 ${-r},0`,`l0,${i}`,`a${n},${a} 0,0,0 ${r},0`,`l0,${-i}`,`M${e},${t+a+s}`,`a${n},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),Dqe=o((e,t,r,i,n,a,s)=>[`M${e},${t+a}`,`M${e+r},${t+a}`,`a${n},${a} 0,0,0 ${-r},0`,`l0,${i}`,`a${n},${a} 0,0,0 ${r},0`,`l0,${-i}`,`M${e},${t+a+s}`,`a${n},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),Rqe=o((e,t,r,i,n,a)=>[`M${e-r/2},${-i/2}`,`a${n},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),one=10,lne=10;o(cne,"linedCylinder")});async function hne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?12:n;if(t.width||t.height){let w=t.width;t.width=(w??0)*10/11-a*2,t.width<10&&(t.width=10),t.height=(t?.height??0)-s*2,t.height<10&&(t.height=10)}let{shapeSvg:l,bbox:u,label:h}=await At(e,t,Ct(t)),d=(t?.width?t?.width:u.width)+(a??0)*2,f=(t?.height?t?.height:u.height)+(s??0)*2,p=t.look==="neo"?f/4:f/8,m=f+p,{cssStyles:g}=t,y=ut.svg(l),v=mt(t,{});t.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:-d/2-d/2*.1,y:-m/2},{x:-d/2-d/2*.1,y:m/2},...Bo(-d/2-d/2*.1,m/2,d/2+d/2*.1,m/2,p,.8),{x:d/2+d/2*.1,y:-m/2},{x:-d/2-d/2*.1,y:-m/2},{x:-d/2,y:-m/2},{x:-d/2,y:m/2*1.1},{x:-d/2,y:-m/2}],b=y.polygon(x.map(w=>[w.x,w.y]),v),T=l.insert(()=>b,":first-child");return T.attr("class","basic label-container outer-path"),g&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",g),i&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",i),T.attr("transform",`translate(0,${-p/2})`),h.attr("transform",`translate(${-d/2+(t.padding??0)+d/2*.1/2-(u.x-(u.left??0))},${-f/2+(t.padding??0)-p/2-(u.y-(u.top??0))})`),ft(t,T),t.intersect=function(w){return lt.polygon(t,x,w)},l}var dne=z(()=>{"use strict";Wt();Kt();jt();Ht();o(hne,"linedWaveEdgedRect")});async function fne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?12:n,l=t.look==="neo"?10:5;(t.width||t.height)&&(t.width=Math.max((t?.width??0)-a*2-2*l,10),t.height=Math.max((t?.height??0)-s*2-2*l,10));let{shapeSvg:u,bbox:h,label:d}=await At(e,t,Ct(t)),f=(t?.width?t?.width:h.width)+a*2+2*l,p=(t?.height?t?.height:h.height)+s*2+2*l,m=f-2*l,g=p-2*l,y=-m/2,v=-g/2,{cssStyles:x}=t,b=ut.svg(u),T=mt(t,{}),w=[{x:y-l,y:v+l},{x:y-l,y:v+g+l},{x:y+m-l,y:v+g+l},{x:y+m-l,y:v+g},{x:y+m,y:v+g},{x:y+m,y:v+g-l},{x:y+m+l,y:v+g-l},{x:y+m+l,y:v-l},{x:y+l,y:v-l},{x:y+l,y:v},{x:y,y:v},{x:y,y:v+l}],C=[{x:y,y:v+l},{x:y+m-l,y:v+l},{x:y+m-l,y:v+g},{x:y+m,y:v+g},{x:y+m,y:v},{x:y,y:v}];t.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let k=tr(w),E=b.path(k,T),A=tr(C),N=b.path(A,T);t.look!=="handDrawn"&&(E=uN(E),N=uN(N));let P=u.insert("g",":first-child");return P.insert(()=>E),P.insert(()=>N),P.attr("class","basic label-container outer-path"),x&&t.look!=="handDrawn"&&P.selectAll("path").attr("style",x),i&&t.look!=="handDrawn"&&P.selectAll("path").attr("style",i),d.attr("transform",`translate(${-(h.width/2)-l-(h.x-(h.left??0))}, ${-(h.height/2)+l-(h.y-(h.top??0))})`),ft(t,P),t.intersect=function(I){return lt.polygon(t,w,I)},u}var pne=z(()=>{"use strict";Wt();Ht();jt();Kt();o(fne,"multiRect")});async function mne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let{shapeSvg:n,bbox:a,label:s}=await At(e,t,Ct(t)),l=t.padding??0,u=t.look==="neo"?16:l,h=t.look==="neo"?12:l,d=!0;(t.width||t.height)&&(d=!1,t.width=(t?.width??0)-u*2,t.height=(t?.height??0)-h*3);let f=Math.max(a.width,t?.width??0)+u*2,p=Math.max(a.height,t?.height??0)+h*3,m=t.look==="neo"?p/4:p/8,g=p+(d?m/2:-m/2),y=-f/2,v=-g/2,x=10,{cssStyles:b}=t,T=Bo(y-x,v+g+x,y+f-x,v+g+x,m,.8),w=T?.[T.length-1],C=[{x:y-x,y:v+x},{x:y-x,y:v+g+x},...T,{x:y+f-x,y:w.y-x},{x:y+f,y:w.y-x},{x:y+f,y:w.y-2*x},{x:y+f+x,y:w.y-2*x},{x:y+f+x,y:v-x},{x:y+x,y:v-x},{x:y+x,y:v},{x:y,y:v},{x:y,y:v+x}],k=[{x:y,y:v+x},{x:y+f-x,y:v+x},{x:y+f-x,y:w.y-x},{x:y+f,y:w.y-x},{x:y+f,y:v},{x:y,y:v}],E=ut.svg(n),A=mt(t,{});t.look!=="handDrawn"&&(A.roughness=0,A.fillStyle="solid");let N=tr(C),P=E.path(N,A),I=tr(k),D=E.path(I,A),_=n.insert(()=>P,":first-child");return _.insert(()=>D),_.attr("class","basic label-container outer-path"),b&&t.look!=="handDrawn"&&_.selectAll("path").attr("style",b),i&&t.look!=="handDrawn"&&_.selectAll("path").attr("style",i),_.attr("transform",`translate(0,${-m/2})`),s.attr("transform",`translate(${-(a.width/2)-x-(a.x-(a.left??0))}, ${-(a.height/2)+x-m/2-(a.y-(a.top??0))})`),ft(t,_),t.intersect=function(R){return lt.polygon(t,C,R)},n}var gne=z(()=>{"use strict";Wt();Kt();jt();Ht();o(mne,"multiWaveEdgedRectangle")});async function yne(e,t,{config:{themeVariables:r}}){let{labelStyles:i,nodeStyles:n}=ct(t);t.labelStyle=i,t.useHtmlLabels||Mr(Nt())||(t.centerLabel=!0);let{shapeSvg:s,bbox:l,label:u}=await At(e,t,Ct(t)),h=Math.max(l.width+(t.padding??0)*2,t?.width??0),d=Math.max(l.height+(t.padding??0)*2,t?.height??0),f=-h/2,p=-d/2,{cssStyles:m}=t,g=ut.svg(s),y=mt(t,{fill:r.noteBkgColor,stroke:r.noteBorderColor});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=g.rectangle(f,p,h,d,y),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container outer-path"),u.attr("class","label noteLabel"),m&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",m),n&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",n),u.attr("transform",`translate(${-l.width/2-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),ft(t,x),t.intersect=function(b){return lt.rect(t,b)},s}var vne=z(()=>{"use strict";jt();Kt();Ht();Wt();br();br();o(yne,"note")});async function xne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let{shapeSvg:n,bbox:a}=await At(e,t,Ct(t)),s=a.width+(t.padding??0),l=a.height+(t.padding??0),u=s+l,h=.5,d=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],f,{cssStyles:p}=t;if(t.look==="handDrawn"){let m=ut.svg(n),g=mt(t,{}),y=Lqe(0,0,u),v=m.path(y,g);f=n.insert(()=>v,":first-child").attr("transform",`translate(${-u/2+h}, ${u/2})`),p&&f.attr("style",p)}else f=Ma(n,u,u,d),f.attr("transform",`translate(${-u/2+h}, ${u/2})`);return i&&f.attr("style",i),ft(t,f),t.calcIntersect=function(m,g){let y=m.width,v=[{x:y/2,y:0},{x:y,y:-y/2},{x:y/2,y:-y},{x:0,y:-y/2}],x=lt.polygon(m,v,g);return{x:x.x-.5,y:x.y-.5}},t.intersect=function(m){return this.calcIntersect(t,m)},n}var Lqe,bne=z(()=>{"use strict";Wt();Kt();Ht();jt();Fu();Lqe=o((e,t,r)=>[`M${e+r/2},${t}`,`L${e+r},${t-r/2}`,`L${e+r/2},${t-r}`,`L${e},${t-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");o(xne,"question")});async function Tne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?21:n??0,s=t.look==="neo"?12:n??0,{shapeSvg:l,bbox:u,label:h}=await At(e,t,Ct(t)),d=(t?.width??u.width)+(t.look==="neo"?a*2:a),f=(t?.height??u.height)+(t.look==="neo"?s*2:s),p=-d/2,m=-f/2,g=m/2,y=[{x:p+g,y:m},{x:p,y:0},{x:p+g,y:-m},{x:-p,y:-m},{x:-p,y:m}],{cssStyles:v}=t,x=ut.svg(l),b=mt(t,{});t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");let T=tr(y),w=x.path(T,b),C=l.insert(()=>w,":first-child");return C.attr("class","basic label-container outer-path"),v&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",v),i&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",i),C.attr("transform",`translate(${-g/2},0)`),h.attr("transform",`translate(${-g/2-u.width/2-(u.x-(u.left??0))}, ${-(u.height/2)-(u.y-(u.top??0))})`),ft(t,C),t.intersect=function(k){return lt.polygon(t,y,k)},l}var Cne=z(()=>{"use strict";Wt();Kt();Ht();jt();o(Tne,"rect_left_inv_arrow")});var Mqe,Nl,z4=z(()=>{"use strict";br();Ut();_s();Mqe=o(async(e,t,r,i=!1,n=!1)=>{let a=t||"";typeof a=="object"&&(a=a[0]);let s=ge(),l=Mr(s);return await wi(e,a,{style:r,isTitle:i,useHtmlLabels:l,markdown:!1,isNode:n,width:Number.POSITIVE_INFINITY},s)},"createLabel"),Nl=Mqe});async function kne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n;t.cssClasses?n="node "+t.cssClasses:n="node default";let a=e.insert("g").attr("class",n).attr("id",t.domId||t.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",i),u=t.description,h=t.label,d=await Nl(l,h,t.labelStyle,!0,!0),f={width:0,height:0};if(Mr(ge())){let A=d.children[0],N=Je(d);f=A.getBoundingClientRect(),N.attr("width",f.width),N.attr("height",f.height)}Z.info("Text 2",u);let p=u||[],m=d.getBBox(),g=await Nl(l,Array.isArray(p)?p.join("
    "):p,t.labelStyle,!0,!0),y=g.children[0],v=Je(g);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height);let x=(t.padding||0)/2;Je(g).attr("transform","translate( "+(f.width>m.width?0:(m.width-f.width)/2)+", "+(m.height+x+5)+")"),Je(d).attr("transform","translate( "+(f.width(Z.debug("Rough node insert CXC",P),I),":first-child"),k=a.insert(()=>(Z.debug("Rough node insert CXC",P),P),":first-child")}else k=s.insert("rect",":first-child"),E=s.insert("line"),k.attr("class","outer title-state").attr("style",i).attr("x",-f.width/2-x).attr("y",-f.height/2-x).attr("width",f.width+(t.padding||0)).attr("height",f.height+(t.padding||0)),E.attr("class","divider").attr("x1",-f.width/2-x).attr("x2",f.width/2+x).attr("y1",-f.height/2-x+m.height+x).attr("y2",-f.height/2-x+m.height+x);return ft(t,k),t.intersect=function(A){return lt.rect(t,A)},a}var wne=z(()=>{"use strict";Rr();Wt();z4();Kt();Ht();jt();Ut();_p();St();br();o(kne,"rectWithTitle")});async function Sne(e,t,{config:{themeVariables:r}}){let i=r?.radius??5,n={rx:i,ry:i,classes:"",labelPaddingX:(t?.padding??0)*1,labelPaddingY:(t?.padding??0)*1};return Ml(e,t,n)}var Ene=z(()=>{"use strict";Dp();o(Sne,"roundedRect")});async function Ane(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.look==="neo"?16:t.padding??0,a=t.look==="neo"?12:t.padding??0,{shapeSvg:s,bbox:l,label:u}=await At(e,t,Ct(t)),h=(t?.width??l.width)+n*2+(t.look==="neo"?Rp:Rp*2),d=(t?.height??l.height)+a*2,f=h-Rp,p=d,m=Rp-h/2,g=-d/2,{cssStyles:y}=t,v=ut.svg(s),x=mt(t,{});t.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let b=[{x:m,y:g},{x:m+f,y:g},{x:m+f,y:g+p},{x:m-Rp,y:g+p},{x:m-Rp,y:g},{x:m,y:g},{x:m,y:g+p}],T=v.polygon(b.map(C=>[C.x,C.y]),x),w=s.insert(()=>T,":first-child");return w.attr("class","basic label-container outer-path").attr("style",ii(y)),i&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",i),y&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",i),u.attr("transform",`translate(${Rp/2-l.width/2-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),ft(t,w),t.intersect=function(C){return lt.rect(t,C)},s}var Rp,_ne=z(()=>{"use strict";Wt();Kt();Ht();jt();Xt();Rp=8;o(Ane,"shadedProcess")});async function Dne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?12:n;(t.width||t.height)&&(t.width=Math.max((t?.width??0)-a*2,10),t.height=Math.max((t?.height??0)/1.5-s*2,10));let{shapeSvg:l,bbox:u,label:h}=await At(e,t,Ct(t)),d=(t?.width?t?.width:u.width)+a*2,f=((t?.height?t?.height:u.height)+s*2)*1.5,p=d,m=f/1.5,g=-p/2,y=-m/2,{cssStyles:v}=t,x=ut.svg(l),b=mt(t,{});t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");let T=[{x:g,y},{x:g,y:y+m},{x:g+p,y:y+m},{x:g+p,y:y-m/2}],w=tr(T),C=x.path(w,b),k=l.insert(()=>C,":first-child");return k.attr("class","basic label-container outer-path"),v&&t.look!=="handDrawn"&&k.selectChildren("path").attr("style",v),i&&t.look!=="handDrawn"&&k.selectChildren("path").attr("style",i),k.attr("transform",`translate(0, ${m/4})`),h.attr("transform",`translate(${-p/2+(t.padding??0)-(u.x-(u.left??0))}, ${-m/4+(t.padding??0)-(u.y-(u.top??0))})`),ft(t,k),t.intersect=function(E){return lt.polygon(t,T,E)},l}var Rne=z(()=>{"use strict";Wt();Kt();Ht();jt();o(Dne,"slopedRect")});async function Lne(e,t){let r=t.padding??0,i=t.look==="neo"?16:r*2,n=t.look==="neo"?12:r,a={rx:0,ry:0,classes:"",labelPaddingX:t.labelPaddingX??i,labelPaddingY:n};return Ml(e,t,a)}var Mne=z(()=>{"use strict";Dp();o(Lne,"squareRect")});async function Nne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?20:n,s=t.look==="neo"?12:n,{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=u.height+(t.look==="neo"?s*2:s),d=u.width+h/4+(t.look==="neo"?a*2:a),f=h/2,{cssStyles:p}=t,m=ut.svg(l),g=mt(t,{});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:-d/2+f,y:-h/2},{x:d/2-f,y:-h/2},...Ep(-d/2+f,0,f,50,90,270),{x:d/2-f,y:h/2},...Ep(d/2-f,0,f,50,270,450)],v=tr(y),x=m.path(v,g),b=l.insert(()=>x,":first-child");return b.attr("class","basic label-container outer-path"),p&&t.look!=="handDrawn"&&b.selectChildren("path").attr("style",p),i&&t.look!=="handDrawn"&&b.selectChildren("path").attr("style",i),ft(t,b),t.intersect=function(T){return lt.polygon(t,y,T)},l}var Ine=z(()=>{"use strict";Wt();Kt();Ht();jt();o(Nne,"stadium")});async function One(e,t){let r={rx:t.look==="neo"?3:5,ry:t.look==="neo"?3:5,classes:"flowchart-node"};return Ml(e,t,r)}var Pne=z(()=>{"use strict";Dp();o(One,"state")});function Bne(e,t,{config:{themeVariables:r}}){let{labelStyles:i,nodeStyles:n}=ct(t);t.labelStyle=i;let{cssStyles:a}=t,{lineColor:s,stateBorder:l,nodeBorder:u,nodeShadow:h}=r;(t.width||t.height)&&((t.width??0)<14&&(t.width=14),(t.height??0)<14&&(t.height=14)),t.width||(t.width=14),t.height||(t.height=14);let d=e.insert("g").attr("class","node default").attr("id",t.domId??t.id),f=ut.svg(d),p=mt(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let m=f.circle(0,0,t.width,{...p,stroke:s,strokeWidth:2}),g=l??u,y=(t.width??0)*5/14,v=f.circle(0,0,y,{...p,fill:g,stroke:g,strokeWidth:2,fillStyle:"solid"}),x=d.insert(()=>m,":first-child");if(x.insert(()=>v),t.look!=="handDrawn"&&x.attr("class","outer-path"),a&&x.selectAll("path").attr("style",a),n&&x.selectAll("path").attr("style",n),t.width<25&&h&&t.look!=="handDrawn"){let b=e.node()?.ownerSVGElement?.id??"",T=b?`${b}-drop-shadow-small`:"drop-shadow-small";x.attr("style",`filter:url(#${T})`)}return ft(t,x),t.intersect=function(b){return lt.circle(t,(t.width??0)/2,b)},d}var Fne=z(()=>{"use strict";jt();Kt();Ht();Wt();o(Bne,"stateEnd")});function $ne(e,t,{config:{themeVariables:r}}){let{lineColor:i,nodeShadow:n}=r;(t.width||t.height)&&((t.width??0)<14&&(t.width=14),(t.height??0)<14&&(t.height=14)),t.width||(t.width=14),t.height||(t.height=14);let a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),s;if(t.look==="handDrawn"){let u=ut.svg(a).circle(0,0,t.width,Bre(i));s=a.insert(()=>u),s.attr("class","state-start").attr("r",(t.width??7)/2).attr("width",t.width??14).attr("height",t.height??14)}else s=a.insert("circle",":first-child"),s.attr("class","state-start").attr("r",(t.width??7)/2).attr("width",t.width??14).attr("height",t.height??14);if(t.width<25&&n&&t.look!=="handDrawn"){let l=e.node()?.ownerSVGElement?.id??"",u=l?`${l}-drop-shadow-small`:"drop-shadow-small";s.attr("style",`filter:url(#${u})`)}return ft(t,s),t.intersect=function(l){return lt.circle(t,(t.width??7)/2,l)},a}var zne=z(()=>{"use strict";jt();Kt();Ht();Wt();o($ne,"stateStart")});async function Gne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t?.padding??8,a=t.look==="neo"?28:n,s=t.look==="neo"?12:n,{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=(t?.width??u.width)+2*kg+a,d=(t?.height??u.height)+s,f=h-2*kg,p=d,m=-h/2,g=-d/2,y=[{x:0,y:0},{x:f,y:0},{x:f,y:-p},{x:0,y:-p},{x:0,y:0},{x:-8,y:0},{x:f+8,y:0},{x:f+8,y:-p},{x:-8,y:-p},{x:-8,y:0}];if(t.look==="handDrawn"){let v=ut.svg(l),x=mt(t,{}),b=v.rectangle(m,g,f+16,p,x),T=v.line(m+kg,g,m+kg,g+p,x),w=v.line(m+kg+f,g,m+kg+f,g+p,x);l.insert(()=>T,":first-child"),l.insert(()=>w,":first-child");let C=l.insert(()=>b,":first-child"),{cssStyles:k}=t;C.attr("class","basic label-container").attr("style",ii(k)),ft(t,C)}else{let v=Ma(l,f,p,y);i&&v.attr("style",i),ft(t,v)}return t.intersect=function(v){return lt.polygon(t,y,v)},l}var kg,Vne=z(()=>{"use strict";Wt();Kt();Ht();jt();Fu();Xt();kg=8;o(Gne,"subroutine")});async function Wne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?12:n;(t.width||t.height)&&(t.height=Math.max((t?.height??0)-s*2,10),t.width=Math.max((t?.width??0)-a*2-LN*(t.height+s*2),10));let{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=(t?.height?t?.height:u.height)+s*2,d=LN*h,f=LN*h,m=(t?.width?t?.width:u.width)+a*2+d-d,g=h,y=-m/2,v=-g/2,{cssStyles:x}=t,b=ut.svg(l),T=mt(t,{}),w=[{x:y-d/2,y:v},{x:y+m+d/2,y:v},{x:y+m+d/2,y:v+g},{x:y-d/2,y:v+g}],C=[{x:y+m-d/2,y:v+g},{x:y+m+d/2,y:v+g},{x:y+m+d/2,y:v+g-f}];t.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let k=tr(w),E=b.path(k,T),A=tr(C),N=b.path(A,{...T,fillStyle:"solid"}),P=l.insert(()=>N,":first-child");return P.insert(()=>E,":first-child"),P.attr("class","basic label-container outer-path"),x&&t.look!=="handDrawn"&&P.selectAll("path").attr("style",x),i&&t.look!=="handDrawn"&&P.selectAll("path").attr("style",i),ft(t,P),t.intersect=function(I){return lt.polygon(t,w,I)},l}var LN,qne=z(()=>{"use strict";Wt();Ht();jt();Kt();LN=.2;o(Wne,"taggedRect")});async function Une(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let{shapeSvg:n,bbox:a,label:s}=await At(e,t,Ct(t)),l=Math.max(a.width+(t.padding??0)*2,t?.width??0),u=Math.max(a.height+(t.padding??0)*2,t?.height??0),h=u/8,d=.2*l,f=.2*u,p=u+h,{cssStyles:m}=t,g=ut.svg(n),y=mt(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-l/2-l/2*.1,y:p/2},...Bo(-l/2-l/2*.1,p/2,l/2+l/2*.1,p/2,h,.8),{x:l/2+l/2*.1,y:-p/2},{x:-l/2-l/2*.1,y:-p/2}],x=-l/2+l/2*.1,b=-p/2-f*.4,T=[{x:x+l-d,y:(b+u)*1.3},{x:x+l,y:b+u-f},{x:x+l,y:(b+u)*.9},...Bo(x+l,(b+u)*1.25,x+l-d,(b+u)*1.3,-u*.02,.5)],w=tr(v),C=g.path(w,y),k=tr(T),E=g.path(k,{...y,fillStyle:"solid"}),A=n.insert(()=>E,":first-child");return A.insert(()=>C,":first-child"),A.attr("class","basic label-container outer-path"),m&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",m),i&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",i),A.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(t.padding??0)-(a.x-(a.left??0))},${-u/2+(t.padding??0)-h/2-(a.y-(a.top??0))})`),ft(t,A),t.intersect=function(N){return lt.polygon(t,v,N)},n}var Hne=z(()=>{"use strict";Wt();Kt();jt();Ht();o(Une,"taggedWaveEdgedRectangle")});async function Yne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let{shapeSvg:n,bbox:a}=await At(e,t,Ct(t)),s=Math.max(a.width+(t.padding??0),t?.width||0),l=Math.max(a.height+(t.padding??0),t?.height||0),u=-s/2,h=-l/2,d=n.insert("rect",":first-child");return d.attr("class","text").attr("style",i).attr("rx",0).attr("ry",0).attr("x",u).attr("y",h).attr("width",s).attr("height",l),ft(t,d),t.intersect=function(f){return lt.rect(t,f)},n}var jne=z(()=>{"use strict";Wt();Kt();Ht();o(Yne,"text")});async function Zne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?12:n/2;if(t.width||t.height){let y=t.height??0;t.height=(t.height??0)-a,t.heightT,":first-child"),g=s.insert(()=>b,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{let y=Nqe(0,0,p,h,f,d);g=s.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",ii(m)).attr("style",i),g.attr("class","basic label-container outer-path"),m&&g.selectAll("path").attr("style",m),i&&g.selectAll("path").attr("style",i)}return g.attr("label-offset-x",f),g.attr("transform",`translate(${-p/2}, ${h/2} )`),u.attr("transform",`translate(${-(l.width/2)-f-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),ft(t,g),t.intersect=function(y){let v=lt.rect(t,y),x=v.y-(t.y??0);if(d!=0&&(Math.abs(x)<(t.height??0)/2||Math.abs(x)==(t.height??0)/2&&Math.abs(v.x-(t.x??0))>(t.width??0)/2-f)){let b=f*f*(1-x*x/(d*d));b!=0&&(b=Math.sqrt(Math.abs(b))),b=f-b,y.x-(t.x??0)>0&&(b=-b),v.x+=b}return v},s}var Nqe,Iqe,Oqe,Xne,Kne,Qne=z(()=>{"use strict";Wt();Ht();jt();Kt();Xt();Nqe=o((e,t,r,i,n,a)=>`M${e},${t} + a${n},${a} 0,0,1 0,${-i} + l${r},0 + a${n},${a} 0,0,1 0,${i} + M${r},${-i} + a${n},${a} 0,0,0 0,${i} + l${-r},0`,"createCylinderPathD"),Iqe=o((e,t,r,i,n,a)=>[`M${e},${t}`,`M${e+r},${t}`,`a${n},${a} 0,0,0 0,${-i}`,`l${-r},0`,`a${n},${a} 0,0,0 0,${i}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),Oqe=o((e,t,r,i,n,a)=>[`M${e+r/2},${-i/2}`,`a${n},${a} 0,0,0 0,${i}`].join(" "),"createInnerCylinderPathD"),Xne=5,Kne=10;o(Zne,"tiltedCylinder")});async function Jne(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=(t.look==="neo",n),s=t.look==="neo"?n*2:n,{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=(t?.height??u.height)+a,d=(t?.width??u.width)+s,f=[{x:-3*h/6,y:0},{x:d+3*h/6,y:0},{x:d,y:-h},{x:0,y:-h}],p,{cssStyles:m}=t;if(t.look==="handDrawn"){let g=ut.svg(l),y=mt(t,{}),v=tr(f),x=g.path(v,y);p=l.insert(()=>x,":first-child").attr("transform",`translate(${-d/2}, ${h/2})`),m&&p.attr("style",m)}else p=Ma(l,d,h,f);return i&&p.attr("style",i),t.width=d,t.height=h,ft(t,p),t.intersect=function(g){return lt.polygon(t,f,g)},l}var eae=z(()=>{"use strict";Wt();Kt();Ht();jt();Fu();o(Jne,"trapezoid")});async function tae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?12:n,l=15,u=5;(t.width||t.height)&&(t.height=(t.height??0)-s*2,t.heightb,":first-child");return T.attr("class","basic label-container outer-path"),m&&t.look!=="handDrawn"&&T.selectChildren("path").attr("style",m),i&&t.look!=="handDrawn"&&T.selectChildren("path").attr("style",i),ft(t,T),t.intersect=function(w){return lt.polygon(t,v,w)},h}var rae=z(()=>{"use strict";Wt();Kt();Ht();jt();o(tae,"trapezoidalPentagon")});async function aae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?n*2:n;(t.width||t.height)&&(t.width=((t?.width??0)-a)/2,t.widthb,":first-child").attr("transform",`translate(${-f/2}, ${f/2})`).attr("class","outer-path");return g&&t.look!=="handDrawn"&&T.selectChildren("path").attr("style",g),i&&t.look!=="handDrawn"&&T.selectChildren("path").attr("style",i),t.width=d,t.height=f,ft(t,T),u.attr("transform",`translate(${-l.width/2-(l.x-(l.left??0))}, ${f/2-(l.height+(t.padding??0)/(h?2:1)-(l.y-(l.top??0)))})`),t.intersect=function(w){return Z.info("Triangle intersect",t,m,w),lt.polygon(t,m,w)},s}var iae,nae,sae=z(()=>{"use strict";St();Wt();Kt();Ht();jt();Wt();Ir();Ut();iae=10,nae=10;o(aae,"triangle")});async function oae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?12:n,l=!0;(t.width||t.height)&&(l=!1,t.width=(t?.width??0)-a*2,t.width<10&&(t.width=10),t.height=(t?.height??0)-s*2,t.height<10&&(t.height=10));let{shapeSvg:u,bbox:h,label:d}=await At(e,t,Ct(t)),f=(t?.width?t?.width:h.width)+(a??0)*2,p=(t?.height?t?.height:h.height)+(s??0)*2,m=t.look==="neo"?p/4:p/8,g=p+(l?m:-m),{cssStyles:y}=t,x=14-f,b=x>0?x/2:0,T=ut.svg(u),w=mt(t,{});t.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let C=[{x:-f/2-b,y:g/2},...Bo(-f/2-b,g/2,f/2+b,g/2,m,.8),{x:f/2+b,y:-g/2},{x:-f/2-b,y:-g/2}],k=tr(C),E=T.path(k,w),A=u.insert(()=>E,":first-child");return A.attr("class","basic label-container outer-path"),y&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",y),i&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",i),A.attr("transform",`translate(0,${-m/2})`),d.attr("transform",`translate(${-f/2+(t.padding??0)-(h.x-(h.left??0))},${-p/2+(t.padding??0)-m-(h.y-(h.top??0))})`),ft(t,A),t.intersect=function(N){return lt.polygon(t,C,N)},u}var lae=z(()=>{"use strict";Wt();Kt();jt();Ht();o(oae,"waveEdgedRectangle")});async function cae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.padding??0,a=t.look==="neo"?16:n,s=t.look==="neo"?20:n;if(t.width||t.height){t.width=t?.width??0,t.width<20&&(t.width=20),t.height=t?.height??0,t.height<10&&(t.height=10);let w=Math.min(t.height*.2,t.height/4);t.height=Math.ceil(t.height-s-w*(20/9)),t.width=t.width-a*2}let{shapeSvg:l,bbox:u}=await At(e,t,Ct(t)),h=(t?.width?t?.width:u.width)+a*2,d=(t?.height?t?.height:u.height)+s,f=d/8,p=d+f*2,{cssStyles:m}=t,g=ut.svg(l),y=mt(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-h/2,y:p/2},...Bo(-h/2,p/2,h/2,p/2,f,1),{x:h/2,y:-p/2},...Bo(h/2,-p/2,-h/2,-p/2,f,-1)],x=tr(v),b=g.path(x,y),T=l.insert(()=>b,":first-child");return T.attr("class","basic label-container"),m&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",m),i&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",i),ft(t,T),t.intersect=function(w){return lt.polygon(t,v,w)},l}var uae=z(()=>{"use strict";Wt();Kt();Ht();jt();o(cae,"waveRectangle")});async function hae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t.look==="neo"?16:t.padding??0,a=t.look==="neo"?12:t.padding??0;(t.width||t.height)&&(t.width=Math.max((t?.width??0)-n*2-on,10),t.height=Math.max((t?.height??0)-a*2-on,10));let{shapeSvg:s,bbox:l,label:u}=await At(e,t,Ct(t)),h=(t?.width?t?.width:l.width)+n*2+on,d=(t?.height?t?.height:l.height)+a*2+on,f=h-on,p=d-on,m=-f/2,g=-p/2,{cssStyles:y}=t,v=ut.svg(s),x=mt(t,{}),b=[{x:m-on,y:g-on},{x:m-on,y:g+p},{x:m+f,y:g+p},{x:m+f,y:g-on}],T=`M${m-on},${g-on} L${m+f},${g-on} L${m+f},${g+p} L${m-on},${g+p} L${m-on},${g-on} + M${m-on},${g} L${m+f},${g} + M${m},${g-on} L${m},${g+p}`;t.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let w=v.path(T,x),C=s.insert(()=>w,":first-child");return C.attr("transform",`translate(${on/2}, ${on/2})`),C.attr("class","basic label-container outer-path"),y&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",y),i&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",i),u.attr("transform",`translate(${-(l.width/2)+on/2-(l.x-(l.left??0))}, ${-(l.height/2)+on/2-(l.y-(l.top??0))})`),ft(t,C),t.intersect=function(k){return lt.polygon(t,b,k)},s}var on,dae=z(()=>{"use strict";Wt();Ht();jt();Kt();on=10;o(hae,"windowPane")});async function MN(e,t){let r=t;r.alias&&(t.label=r.alias);let{theme:i,themeVariables:n}=Nt(),{rowEven:a,rowOdd:s,nodeBorder:l,borderColorArray:u}=n;if(t.look==="handDrawn"){let{themeVariables:Q}=Nt(),{background:Y}=Q,ae={...t,id:t.id+"-background",domId:(t.domId||t.id)+"-background",look:"default",cssStyles:["stroke: none",`fill: ${Y}`]};await MN(e,ae)}let h=Nt();t.useHtmlLabels=h.htmlLabels;let d=h.er?.diagramPadding??10,f=h.er?.entityPadding??6,{cssStyles:p}=t,{labelStyles:m,nodeStyles:g}=ct(t);if(r.attributes.length===0&&t.label){let Q={rx:0,ry:0,labelPaddingX:d,labelPaddingY:d*1.5,classes:""};ta(t.label,h)+Q.labelPaddingX*20){let Q=x.width+d*2-(C+k+E+A);C+=Q/I,k+=Q/I,E>0&&(E+=Q/I),A>0&&(A+=Q/I)}let _=C+k+E+A,R=ut.svg(v),M=mt(t,{});t.look!=="handDrawn"&&(M.roughness=0,M.fillStyle="solid");let L=0;w.length>0&&(L=w.reduce((Q,Y)=>Q+(Y?.rowHeight??0),0));let B=Math.max(D.width+d*2,t?.width||0,_),O=Math.max((L??0)+x.height,t?.height||0),$=-B/2,G=-O/2;if(v.selectAll("g:not(:first-child)").each((Q,Y,ae)=>{let J=Je(ae[Y]),te=J.attr("transform"),re=0,ee=0;if(te){let ue=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(te);ue&&(re=parseFloat(ue[1]),ee=parseFloat(ue[2]),J.attr("class").includes("attribute-name")?re+=C:J.attr("class").includes("attribute-keys")?re+=C+k:J.attr("class").includes("attribute-comment")&&(re+=C+k+E))}J.attr("transform",`translate(${$+d/2+re}, ${ee+G+x.height+f/2})`)}),v.select(".name").attr("transform","translate("+-x.width/2+", "+(G+f/2)+")"),i!=null&&fae.has(i)){let Q=r.colorIndex??0;v.attr("data-color-id",`color-${Q%u.length}`)}let F=R.rectangle($,G,B,O,M),V=v.insert(()=>F,":first-child").attr("class","outer-path").attr("style",p.join(""));T.push(0);for(let[Q,Y]of w.entries()){let J=(Q+1)%2===0&&Y.yOffset!==0,te=R.rectangle($,x.height+G+Y?.yOffset,B,Y?.rowHeight,{...M,fill:J?a:s,stroke:l});v.insert(()=>te,"g.label").attr("style",p.join("")).attr("class",`row-rect-${J?"even":"odd"}`)}let H=1e-4,j=tb($,x.height+G,B+$,x.height+G,H),U=R.polygon(j.map(Q=>[Q.x,Q.y]),M);if(v.insert(()=>U).attr("class","divider"),j=tb(C+$,x.height+G,C+$,O+G,H),U=R.polygon(j.map(Q=>[Q.x,Q.y]),M),v.insert(()=>U).attr("class","divider"),N){let Q=C+k+$;j=tb(Q,x.height+G,Q,O+G,H),U=R.polygon(j.map(Y=>[Y.x,Y.y]),M),v.insert(()=>U).attr("class","divider")}if(P){let Q=C+k+E+$;j=tb(Q,x.height+G,Q,O+G,H),U=R.polygon(j.map(Y=>[Y.x,Y.y]),M),v.insert(()=>U).attr("class","divider")}for(let Q of T){let Y=x.height+G+Q;j=tb($,Y,B+$,Y,H),U=R.polygon(j.map(ae=>[ae.x,ae.y]),M),v.insert(()=>U).attr("class","divider")}if(ft(t,V),g&&t.look!=="handDrawn")if(i!=null&&Pqe.has(i))v.selectAll("path").attr("style",g);else{let Y=g.split(";")?.filter(ae=>ae.includes("stroke"))?.map(ae=>`${ae}`).join("; ");v.selectAll("path").attr("style",Y??""),v.selectAll(".row-rect-even path").attr("style",g)}return t.intersect=function(Q){return lt.rect(t,Q)},v}async function eb(e,t,r,i=0,n=0,a=[],s=""){let l=e.insert("g").attr("class",`label ${a.join(" ")}`).attr("transform",`translate(${i}, ${n})`).attr("style",s);t!==cc(t)&&(t=cc(t),t=t.replaceAll("<","<").replaceAll(">",">"));let u=l.node().appendChild(await wi(l,t,{width:ta(t,r)+100,style:s,useHtmlLabels:r.htmlLabels},r));if(t.includes("<")||t.includes(">")){let d=u.children[0];for(d.textContent=d.textContent.replaceAll("<","<").replaceAll(">",">");d.childNodes[0];)d=d.childNodes[0],d.textContent=d.textContent.replaceAll("<","<").replaceAll(">",">")}let h=u.getBBox();if(Aa(r.htmlLabels)){let d=u.children[0];d.style.textAlign="start";let f=Je(u);h=d.getBoundingClientRect(),f.attr("width",h.width),f.attr("height",h.height)}return h}function tb(e,t,r,i,n){return e===r?[{x:e-n/2,y:t},{x:e+n/2,y:t},{x:r+n/2,y:i},{x:r-n/2,y:i}]:[{x:e,y:t-n/2},{x:e,y:t+n/2},{x:r,y:i+n/2},{x:r,y:i-n/2}]}var fae,Pqe,pae=z(()=>{"use strict";Wt();Kt();Ht();jt();Dp();br();_s();Ir();Rr();Xt();fae=new Set(["redux-color","redux-dark-color"]),Pqe=new Set(["redux","redux-dark","redux-color","redux-dark-color"]);o(MN,"erBox");o(eb,"addText");o(tb,"lineToPolygon")});async function mae(e,t,r,i,n=r.class.padding??12){let a=i?0:3,s=e.insert("g").attr("class",Ct(t)).attr("id",t.domId||t.id),l=null,u=null,h=null,d=null,f=0,p=0,m=0;if(l=s.insert("g").attr("class","annotation-group text"),t.annotations.length>0){let b=t.annotations[0];await G4(l,{text:`\xAB${b}\xBB`},0),f=l.node().getBBox().height}u=s.insert("g").attr("class","label-group text"),await G4(u,t,0,["font-weight: bolder"]);let g=u.node().getBBox();p=g.height,h=s.insert("g").attr("class","members-group text");let y=0;for(let b of t.members){let T=await G4(h,b,y,[b.parseClassifier()]);y+=T+a}m=h.node().getBBox().height,m<=0&&(m=n/2),d=s.insert("g").attr("class","methods-group text");let v=0;for(let b of t.methods){let T=await G4(d,b,v,[b.parseClassifier()]);v+=T+a}let x=s.node().getBBox();if(l!==null){let b=l.node().getBBox();l.attr("transform",`translate(${-b.width/2})`)}return u.attr("transform",`translate(${-g.width/2}, ${f})`),x=s.node().getBBox(),h.attr("transform",`translate(0, ${f+p+n*2})`),x=s.node().getBBox(),d.attr("transform",`translate(0, ${f+p+(m?m+n*4:n*2)})`),x=s.node().getBBox(),{shapeSvg:s,bbox:x}}async function G4(e,t,r,i=[]){let n=e.insert("g").attr("class","label").attr("style",i.join("; ")),a=Nt(),s="useHtmlLabels"in t?t.useHtmlLabels:Aa(a.htmlLabels)??!0,l="";"text"in t?l=t.text:l=t.label,!s&&l.startsWith("\\")&&(l=l.substring(1)),Bi(l)&&(s=!0);let u=await wi(n,Ev(Qa(l)),{width:ta(l,a)+50,classes:"markdown-node-label",useHtmlLabels:s},a),h,d=1;if(s){let f=u.children[0],p=Je(u);d=f.innerHTML.split("
    ").length,f.innerHTML.includes("")&&(d+=f.innerHTML.split("").length-1);let m=f.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=a.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,w=parseInt(b,10)*5+"px";y.style.minWidth=w,y.style.maxWidth=w}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=f.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}else{i.includes("font-weight: bolder")&&Je(u).selectAll("tspan").attr("font-weight",""),d=u.children.length;let f=u.children[0];(u.textContent===""||u.textContent.includes(">"))&&(f.textContent=l[0]+l.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),l[1]===" "&&(f.textContent=f.textContent[0]+" "+f.textContent.substring(1))),f.textContent==="undefined"&&(f.textContent=""),h=u.getBBox()}return n.attr("transform","translate(0,"+(-h.height/(2*d)+r)+")"),h.height}var gae=z(()=>{"use strict";Rr();br();Wt();Xt();Ut();_s();Ir();o(mae,"textHelper");o(G4,"addText")});async function yae(e,t){let r=ge(),{themeVariables:i}=r,{useGradient:n}=i,a=r.class.padding??12,s=a,l=t.useHtmlLabels??Aa(r.htmlLabels)??!0,u=t;u.annotations=u.annotations??[],u.members=u.members??[],u.methods=u.methods??[];let{shapeSvg:h,bbox:d}=await mae(e,t,r,l,s),{labelStyles:f,nodeStyles:p}=ct(t);t.labelStyle=f,t.cssStyles=u.styles||"";let m=u.styles?.join(";")||p||"";t.cssStyles||(t.cssStyles=m.replaceAll("!important","").split(";"));let g=u.members.length===0&&u.methods.length===0&&!r.class?.hideEmptyMembersBox,y=ut.svg(h),v=mt(t,{});t.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=Math.max(t.width??0,d.width),b=Math.max(t.height??0,d.height),T=(t.height??0)>d.height;u.members.length===0&&u.methods.length===0?b+=s:u.members.length>0&&u.methods.length===0&&(b+=s*2);let w=-x/2,C=-b/2,k=g?a*2:u.members.length===0&&u.methods.length===0?-a:0;T&&(k=a*2);let E=y.rectangle(w-a,C-a-(g?a:u.members.length===0&&u.methods.length===0?-a/2:0),x+2*a,b+2*a+k,v),A=h.insert(()=>E,":first-child");A.attr("class","basic label-container outer-path");let N=A.node().getBBox(),P=h.select(".annotation-group").node().getBBox().height-(g?a/2:0)||0,I=h.select(".label-group").node().getBBox().height-(g?a/2:0)||0,D=h.select(".members-group").node().getBBox().height-(g?a/2:0)||0,_=(P+I+C+a-(C-a-(g?a:u.members.length===0&&u.methods.length===0?-a/2:0)))/2;if(h.selectAll(".text").each((R,M,L)=>{let B=Je(L[M]),O=B.attr("transform"),$=0;if(O){let H=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(O);H&&($=parseFloat(H[2]))}let G=$+C+a-(g?a:u.members.length===0&&u.methods.length===0?-a/2:0);if(B.attr("class").includes("methods-group")){let V=Math.max(D,s/2);T?G=Math.max(_,P+I+V+C+s*2+a)+s*2:G=P+I+V+C+s*4+a}u.members.length===0&&u.methods.length===0&&r.class?.hideEmptyMembersBox&&(u.annotations.length>0?G=$-s:G=$),l||(G-=4);let F=w;(B.attr("class").includes("label-group")||B.attr("class").includes("annotation-group"))&&(F=-B.node()?.getBBox().width/2||0,h.selectAll("text").each(function(V,H,j){window.getComputedStyle(j[H]).textAnchor==="middle"&&(F=0)})),B.attr("transform",`translate(${F}, ${G})`)}),u.members.length>0||u.methods.length>0||g){let R=P+I+C+a,M=y.line(N.x,R,N.x+N.width,R+.001,v);h.insert(()=>M).attr("class",`divider${t.look==="neo"&&!n?" neo-line":""}`).attr("style",m)}if(g||u.members.length>0||u.methods.length>0){let R=P+I+D+C+s*2+a,M=y.line(N.x,T?Math.max(_,R):R,N.x+N.width,(T?Math.max(_,R):R)+.001,v);h.insert(()=>M).attr("class",`divider${t.look==="neo"&&!n?" neo-line":""}`).attr("style",m)}if(u.look!=="handDrawn"&&h.selectAll("path").attr("style",m),A.select(":nth-child(2)").attr("style",m),h.selectAll(".divider").select("path").attr("style",m),t.labelStyle?h.selectAll("span").attr("style",t.labelStyle):h.selectAll("span").attr("style",m),!l){let R=RegExp(/color\s*:\s*([^;]*)/),M=R.exec(m);if(M){let L=M[0].replace("color","fill");h.selectAll("tspan").attr("style",L)}else if(f){let L=R.exec(f);if(L){let B=L[0].replace("color","fill");h.selectAll("tspan").attr("style",B)}}}return ft(t,A),t.intersect=function(R){return lt.rect(t,R)},h}var vae=z(()=>{"use strict";Wt();Ut();Rr();jt();Ht();Kt();gae();Ir();o(yae,"classBox")});async function xae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let n=t,a=t,s=20,l=20,u="verifyMethod"in t,h=Ct(t),{themeVariables:d}=ge(),{borderColorArray:f,requirementEdgeLabelBackground:p}=d,m=e.insert("g").attr("class",h).attr("id",t.domId??t.id),g;u?g=await $u(m,`<<${n.type}>>`,0,t.labelStyle):g=await $u(m,"<<Element>>",0,t.labelStyle);let y=g,v=await $u(m,n.name,y,t.labelStyle+"; font-weight: bold;");if(y+=v+l,u){let N=await $u(m,`${n.requirementId?`ID: ${n.requirementId}`:""}`,y,t.labelStyle);y+=N;let P=await $u(m,`${n.text?`Text: ${n.text}`:""}`,y,t.labelStyle);y+=P;let I=await $u(m,`${n.risk?`Risk: ${n.risk}`:""}`,y,t.labelStyle);y+=I,await $u(m,`${n.verifyMethod?`Verification: ${n.verifyMethod}`:""}`,y,t.labelStyle)}else{let N=await $u(m,`${a.type?`Type: ${a.type}`:""}`,y,t.labelStyle);y+=N,await $u(m,`${a.docRef?`Doc Ref: ${a.docRef}`:""}`,y,t.labelStyle)}let x=(m.node()?.getBBox().width??200)+s,b=(m.node()?.getBBox().height??200)+s,T=-x/2,w=-b/2,C=ut.svg(m),k=mt(t,{});t.look!=="handDrawn"&&(k.roughness=0,k.fillStyle="solid");let E=C.rectangle(T,w,x,b,k),A=m.insert(()=>E,":first-child");if(A.attr("class","basic label-container outer-path").attr("style",i),f?.length){let N=t.colorIndex??0;m.attr("data-color-id",`color-${N%f.length}`)}if(m.selectAll(".label").each((N,P,I)=>{let D=Je(I[P]),_=D.attr("transform"),R=0,M=0;if(_){let $=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(_);$&&(R=parseFloat($[1]),M=parseFloat($[2]))}let L=M-b/2,B=T+s/2;(P===0||P===1)&&(B=R),D.attr("transform",`translate(${B}, ${L+s})`)}),y>g+v+l){let N=w+g+v+l,P;if(t.look==="neo"){let _=[[T,N],[T+x,N],[T+x,N+.001],[T,N+.001]];P=C.polygon(_,k)}else P=C.line(T,N,T+x,N,k);m.insert(()=>P).attr("class","divider")}return ft(t,A),t.intersect=function(N){return lt.rect(t,N)},i&&t.look!=="handDrawn"&&(p||f?.length)&&m.selectAll("path").attr("style",i),m}async function $u(e,t,r,i=""){if(t==="")return 0;let n=e.insert("g").attr("class","label").attr("style",i),a=ge(),s=a.htmlLabels??!0,l=await wi(n,Ev(Qa(t)),{width:ta(t,a)+50,classes:"markdown-node-label",useHtmlLabels:s,style:i},a),u;if(s){let h=l.children[0],d=Je(l);u=h.getBoundingClientRect(),d.attr("width",u.width),d.attr("height",u.height)}else{let h=l.children[0];for(let d of h.children)i&&d.setAttribute("style",i);u=l.getBBox(),u.height+=6}return n.attr("transform",`translate(${-u.width/2},${-u.height/2+r})`),u.height}var bae=z(()=>{"use strict";Wt();Kt();Ht();jt();Xt();Ut();_s();Rr();o(xae,"requirementBox");o($u,"addText")});async function Tae(e,t,{config:r}){let{labelStyles:i,nodeStyles:n}=ct(t);t.labelStyle=i||"";let a=10,s=t.width;t.width=(t.width??200)-10;let{shapeSvg:l,bbox:u,label:h}=await At(e,t,Ct(t)),d=t.padding||10,f="",p;"ticket"in t&&t.ticket&&r?.kanban?.ticketBaseUrl&&(f=r?.kanban?.ticketBaseUrl.replace("#TICKET#",t.ticket),p=l.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",f).attr("target","_blank"));let m={useHtmlLabels:t.useHtmlLabels,labelStyle:t.labelStyle||"",width:t.width,img:t.img,padding:t.padding||8,centerLabel:!1},g,y;p?{label:g,bbox:y}=await A4(p,"ticket"in t&&t.ticket||"",m):{label:g,bbox:y}=await A4(l,"ticket"in t&&t.ticket||"",m);let{label:v,bbox:x}=await A4(l,"assigned"in t&&t.assigned||"",m);t.width=s;let b=10,T=t?.width||0,w=Math.max(y.height,x.height)/2,C=Math.max(u.height+b*2,t?.height||0)+w,k=-T/2,E=-C/2;h.attr("transform","translate("+(d-T/2)+", "+(-w-u.height/2)+")"),g.attr("transform","translate("+(d-T/2)+", "+(-w+u.height/2)+")"),v.attr("transform","translate("+(d+T/2-x.width-2*a)+", "+(-w+u.height/2)+")");let A,{rx:N,ry:P}=t,{cssStyles:I}=t;if(t.look==="handDrawn"){let D=ut.svg(l),_=mt(t,{}),R=N||P?D.path(Rs(k,E,T,C,N||0),_):D.rectangle(k,E,T,C,_);A=l.insert(()=>R,":first-child"),A.attr("class","basic label-container").attr("style",I||null)}else{A=l.insert("rect",":first-child"),A.attr("class","basic label-container __APA__").attr("style",n).attr("rx",N??5).attr("ry",P??5).attr("x",k).attr("y",E).attr("width",T).attr("height",C);let D="priority"in t&&t.priority;if(D){let _=l.append("line"),R=k+2,M=E+Math.floor((N??0)/2),L=E+C-Math.floor((N??0)/2);_.attr("x1",R).attr("y1",M).attr("x2",R).attr("y2",L).attr("stroke-width","4").attr("stroke",Bqe(D))}}return ft(t,A),t.height=C,t.intersect=function(D){return lt.rect(t,D)},l}var Bqe,Cae=z(()=>{"use strict";Wt();Kt();_p();Ht();jt();Bqe=o(e=>{switch(e){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");o(Tae,"kanbanItem")});async function kae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let{shapeSvg:n,bbox:a,halfPadding:s,label:l}=await At(e,t,Ct(t)),u=a.width+10*s,h=a.height+8*s,d=.15*u,{cssStyles:f}=t,p=a.width+20,m=a.height+20,g=Math.max(u,p),y=Math.max(h,m);l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`);let v,x=`M0 0 + a${d},${d} 1 0,0 ${g*.25},${-1*y*.1} + a${d},${d} 1 0,0 ${g*.25},0 + a${d},${d} 1 0,0 ${g*.25},0 + a${d},${d} 1 0,0 ${g*.25},${y*.1} + + a${d},${d} 1 0,0 ${g*.15},${y*.33} + a${d*.8},${d*.8} 1 0,0 0,${y*.34} + a${d},${d} 1 0,0 ${-1*g*.15},${y*.33} + + a${d},${d} 1 0,0 ${-1*g*.25},${y*.15} + a${d},${d} 1 0,0 ${-1*g*.25},0 + a${d},${d} 1 0,0 ${-1*g*.25},0 + a${d},${d} 1 0,0 ${-1*g*.25},${-1*y*.15} + + a${d},${d} 1 0,0 ${-1*g*.1},${-1*y*.33} + a${d*.8},${d*.8} 1 0,0 0,${-1*y*.34} + a${d},${d} 1 0,0 ${g*.1},${-1*y*.33} + H0 V0 Z`;if(t.look==="handDrawn"){let b=ut.svg(n),T=mt(t,{}),w=b.path(x,T);v=n.insert(()=>w,":first-child"),v.attr("class","basic label-container").attr("style",ii(f))}else v=n.insert("path",":first-child").attr("class","basic label-container").attr("style",i).attr("d",x);return v.attr("transform",`translate(${-g/2}, ${-y/2})`),ft(t,v),t.calcIntersect=function(b,T){return lt.rect(b,T)},t.intersect=function(b){return Z.info("Bang intersect",t,b),lt.rect(t,b)},n}var wae=z(()=>{"use strict";St();Wt();Kt();Ht();jt();Xt();o(kae,"bang")});async function Sae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let{shapeSvg:n,bbox:a,halfPadding:s,label:l}=await At(e,t,Ct(t)),u=a.width+2*s,h=a.height+2*s,d=.15*u,f=.25*u,p=.35*u,m=.2*u,{cssStyles:g}=t,y,v=`M0 0 + a${d},${d} 0 0,1 ${u*.25},${-1*u*.1} + a${p},${p} 1 0,1 ${u*.4},${-1*u*.1} + a${f},${f} 1 0,1 ${u*.35},${u*.2} + + a${d},${d} 1 0,1 ${u*.15},${h*.35} + a${m},${m} 1 0,1 ${-1*u*.15},${h*.65} + + a${f},${d} 1 0,1 ${-1*u*.25},${u*.15} + a${p},${p} 1 0,1 ${-1*u*.5},0 + a${d},${d} 1 0,1 ${-1*u*.25},${-1*u*.15} + + a${d},${d} 1 0,1 ${-1*u*.1},${-1*h*.35} + a${m},${m} 1 0,1 ${u*.1},${-1*h*.65} + H0 V0 Z`;if(t.look==="handDrawn"){let x=ut.svg(n),b=mt(t,{}),T=x.path(v,b);y=n.insert(()=>T,":first-child"),y.attr("class","basic label-container").attr("style",ii(g))}else y=n.insert("path",":first-child").attr("class","basic label-container").attr("style",i).attr("d",v);return l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`),y.attr("transform",`translate(${-u/2}, ${-h/2})`),ft(t,y),t.calcIntersect=function(x,b){return lt.rect(x,b)},t.intersect=function(x){return Z.info("Cloud intersect",t,x),lt.rect(t,x)},n}var Eae=z(()=>{"use strict";jt();St();Xt();Kt();Ht();Wt();o(Sae,"cloud")});async function Aae(e,t){let{labelStyles:r,nodeStyles:i}=ct(t);t.labelStyle=r;let{shapeSvg:n,bbox:a,halfPadding:s,label:l}=await At(e,t,Ct(t)),u=a.width+8*s,h=a.height+2*s,d=5,f=t.look==="neo"?` + M${-u/2} ${h/2-d} + v${-h+2*d} + q0,-${d} ${d},-${d} + h${u-2*d} + q${d},0 ${d},${d} + v${h-d} + H${-u/2} + Z + `:` + M${-u/2} ${h/2-d} + v${-h+2*d} + q0,-${d} ${d},-${d} + h${u-2*d} + q${d},0 ${d},${d} + v${h-2*d} + q0,${d} ${-d},${d} + h${-(u-2*d)} + q${-d},0 ${-d},${-d} + Z + `;if(!t.domId)throw new Error(`defaultMindmapNode: node "${t.id}" is missing a domId \u2014 was render.ts domId prefixing skipped?`);let p=n.append("path").attr("id",t.domId).attr("class","node-bkg node-"+t.type).attr("style",i).attr("d",f);return n.append("line").attr("class","node-line-").attr("x1",-u/2).attr("y1",h/2).attr("x2",u/2).attr("y2",h/2),l.attr("transform",`translate(${-a.width/2}, ${-a.height/2})`),n.append(()=>l.node()),ft(t,p),t.calcIntersect=function(m,g){return lt.rect(m,g)},t.intersect=function(m){return lt.rect(t,m)},n}var _ae=z(()=>{"use strict";Kt();Ht();Wt();o(Aae,"defaultMindmapNode")});async function Dae(e,t){let r={padding:t.padding??0};return $4(e,t,r)}var Rae=z(()=>{"use strict";RN();o(Dae,"mindmapCircle")});function Lae(e){return e in NN}var Fqe,$qe,NN,IN=z(()=>{"use strict";Jre();rie();nie();sie();RN();lie();uie();die();pie();gie();bie();Cie();wie();Eie();_ie();Mie();Iie();Pie();Fie();zie();Vie();qie();Hie();jie();Kie();Qie();ene();rne();nne();sne();une();dne();pne();gne();vne();bne();Cne();wne();Ene();_ne();Rne();Mne();Ine();Pne();Fne();zne();Vne();qne();Hne();jne();Qne();eae();rae();sae();lae();uae();dae();pae();vae();bae();Cae();wae();Eae();_ae();Rae();Fqe=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:Lne},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:Sne},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:Nne},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:Gne},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:xie},{semanticName:"Data Store",name:"Data Store",shortName:"datastore",description:"Data flow diagram data store",aliases:["data-store"],handler:Tie},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:$4},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:kae},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:Sae},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:xne},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:Bie},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:ine},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:tne},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:Jne},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:Zie},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:Sie},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:Yne},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:iie},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:Ane},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:$ne},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:Bne},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:Nie},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:$ie},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:cie},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:hie},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:fie},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:ane},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:oae},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:Oie},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:Zne},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:cne},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:mie},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:kie},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:aae},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:hae},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:Aie},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:tae},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:Lie},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:Dne},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:mne},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:fne},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:tie},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:oie},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:Une},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:Wne},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:cae},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:Tne},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:hne}],$qe=o(()=>{let t=[...Object.entries({state:One,choice:aie,note:yne,rectWithTitle:kne,labelRect:Jie,iconSquare:Yie,iconCircle:Wie,icon:Gie,iconRounded:Uie,imageSquare:Xie,anchor:Qre,kanbanItem:Tae,mindmapCircle:Dae,defaultMindmapNode:Aae,classBox:yae,erBox:MN,requirementBox:xae}),...Fqe.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(n=>[n,r.handler]))];return Object.fromEntries(t)},"generateShapeMap"),NN=$qe();o(Lae,"isValidShape")});var zqe,V4,Mae=z(()=>{"use strict";Rr();Wx();Ut();St();IN();Xt();Ir();Ci();gp();uv();zqe="flowchart-",V4=class{constructor(){this.vertexCounter=0;this.config=ge();this.diagramId="";this.vertices=new Map;this.edges=[];this.classes=new Map;this.subGraphs=[];this.subGraphLookup=new Map;this.tooltips=new Map;this.subCount=0;this.firstGraphFlag=!0;this.secCount=-1;this.posCrossRef=[];this.funs=[];this.setAccTitle=Cr;this.setAccDescription=wr;this.setDiagramTitle=Ar;this.getAccTitle=kr;this.getAccDescription=Sr;this.getDiagramTitle=Er;this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{o(this,"FlowDB")}sanitizeText(t){return vt.sanitizeText(t,this.config)}sanitizeNodeLabelType(t){switch(t){case"markdown":case"string":case"text":return t;default:return"markdown"}}setDiagramId(t){this.diagramId=t}lookUpDomId(t){for(let r of this.vertices.values())if(r.id===t)return this.diagramId?`${this.diagramId}-${r.domId}`:r.domId;return this.diagramId?`${this.diagramId}-${t}`:t}addVertex(t,r,i,n,a,s,l={},u){if(!t||t.trim().length===0)return;let h;if(u!==void 0){let m;u.includes(` +`)?m=u+` +`:m=`{ +`+u+` +}`,h=ld(m,{schema:od})}let d=this.edges.find(m=>m.id===t);if(d){let m=h;m?.animate!==void 0&&(d.animate=m.animate),m?.animation!==void 0&&(d.animation=m.animation),m?.curve!==void 0&&(d.interpolate=m.curve);return}let f,p=this.vertices.get(t);if(p===void 0&&(r===void 0&&i===void 0&&n!==void 0&&n!==null&&Z.warn(`Style applied to unknown node "${t}". This may indicate a typo. The node will be created automatically.`),p={id:t,labelType:"text",domId:zqe+t+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(t,p)),this.vertexCounter++,r!==void 0?(this.config=ge(),f=this.sanitizeText(r.text.trim()),p.labelType=r.type,f.startsWith('"')&&f.endsWith('"')&&(f=f.substring(1,f.length-1)),p.text=f):p.text===void 0&&(p.text=t),i!==void 0&&(p.type=i),n?.forEach(m=>{p.styles.push(m)}),a?.forEach(m=>{p.classes.push(m)}),s!==void 0&&(p.dir=s),p.props===void 0?p.props=l:l!==void 0&&Object.assign(p.props,l),h!==void 0){if(h.shape){if(h.shape!==h.shape.toLowerCase()||h.shape.includes("_"))throw new Error(`No such shape: ${h.shape}. Shape names should be lowercase.`);if(!Lae(h.shape))throw new Error(`No such shape: ${h.shape}.`);p.type=h?.shape}h?.label&&(p.text=h?.label,p.labelType=this.sanitizeNodeLabelType(h?.labelType)),h?.icon&&(p.icon=h?.icon,!h.label?.trim()&&p.text===t&&(p.text="")),h?.form&&(p.form=h?.form),h?.pos&&(p.pos=h?.pos),h?.img&&(p.img=h?.img,!h.label?.trim()&&p.text===t&&(p.text="")),h?.constraint&&(p.constraint=h.constraint),h.w&&(p.assetWidth=Number(h.w)),h.h&&(p.assetHeight=Number(h.h))}}addSingleLink(t,r,i,n){let l={start:t,end:r,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};Z.info("abc78 Got edge...",l);let u=i.text;if(u!==void 0&&(l.text=this.sanitizeText(u.text.trim()),l.text.startsWith('"')&&l.text.endsWith('"')&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=this.sanitizeNodeLabelType(u.type)),i!==void 0&&(l.type=i.type,l.stroke=i.stroke,l.length=i.length>10?10:i.length),n&&!this.edges.some(h=>h.id===n))l.id=n,l.isUserDefinedId=!0;else{let h=this.edges.filter(d=>d.start===l.start&&d.end===l.end);h.length===0?l.id=bc(l.start,l.end,{counter:0,prefix:"L"}):l.id=bc(l.start,l.end,{counter:h.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))Z.info("Pushing edge..."),this.edges.push(l);else throw new Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)}isLinkData(t){return t!==null&&typeof t=="object"&&"id"in t&&typeof t.id=="string"}addLink(t,r,i){let n=this.isLinkData(i)?i.id.replace("@",""):void 0;Z.info("addLink",t,r,n);for(let a of t)for(let s of r){let l=a===t[t.length-1],u=s===r[0];l&&u?this.addSingleLink(a,s,i,n):this.addSingleLink(a,s,i,void 0)}}updateLinkInterpolate(t,r){t.forEach(i=>{i==="default"?this.edges.defaultInterpolate=r:this.edges[i].interpolate=r})}updateLink(t,r){t.forEach(i=>{if(typeof i=="number"&&i>=this.edges.length)throw new Error(`The index ${i} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);i==="default"?this.edges.defaultStyle=r:(this.edges[i].style=r,(this.edges[i]?.style?.length??0)>0&&!this.edges[i]?.style?.some(n=>n?.startsWith("fill"))&&this.edges[i]?.style?.push("fill:none"))})}addClass(t,r){let i=r.join().replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");t.split(",").forEach(n=>{let a=this.classes.get(n);a===void 0&&(a={id:n,styles:[],textStyles:[]},this.classes.set(n,a)),i?.forEach(s=>{if(/color/.exec(s)){let l=s.replace("fill","bgFill");a.textStyles.push(l)}a.styles.push(s)})})}setDirection(t){this.direction=t.trim(),/.*/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),this.direction==="TD"&&(this.direction="TB")}setClass(t,r){for(let i of t.split(",")){let n=this.vertices.get(i);n&&n.classes.push(r);let a=this.edges.find(l=>l.id===i);a&&a.classes.push(r);let s=this.subGraphLookup.get(i);s&&s.classes.push(r)}}setTooltip(t,r){if(r!==void 0){r=this.sanitizeText(r);for(let i of t.split(","))this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(i):i,r)}}setClickFun(t,r,i){if(ge().securityLevel!=="loose"||r===void 0)return;let n=[];if(typeof i=="string"){n=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s{let s=this.lookUpDomId(t),l=document.querySelector(`[id="${s}"]`);l!==null&&l.addEventListener("click",()=>{Zt.runFunc(r,...n)},!1)}))}setLink(t,r,i){t.split(",").forEach(n=>{let a=this.vertices.get(n);a!==void 0&&(a.link=Zt.formatUrl(r,this.config),a.linkTarget=i)}),this.setClass(t,"clickable")}getTooltip(t){return this.tooltips.get(t)}setClickEvent(t,r,i){t.split(",").forEach(n=>{this.setClickFun(n,r,i)}),this.setClass(t,"clickable")}bindFunctions(t){this.funs.forEach(r=>{r(t)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(t){let r=zw();Je(t).select("svg").selectAll("g.node").on("mouseover",a=>{let s=Je(a.currentTarget),l=s.attr("title");if(l===null)return;let u=a.currentTarget?.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.text(s.attr("title")).style("left",window.scrollX+u.left+(u.right-u.left)/2+"px").style("top",window.scrollY+u.bottom+"px"),r.html(Ro.sanitize(l)),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),Je(a.currentTarget).classed("hover",!1)})}clear(t="gen-2"){this.vertices=new Map,this.classes=new Map,this.edges=[],this.funs=[this.setupToolTips.bind(this)],this.diagramId="",this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.tooltips=new Map,this.firstGraphFlag=!0,this.version=t,this.config=ge(),gr()}setGen(t){this.version=t||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(t,r,i){let n=t.text.trim(),a=i.text;t===i&&/\s/.exec(i.text)&&(n=void 0);let l=o(p=>{let m={boolean:{},number:{},string:{}},g=[],y;return{nodeList:p.filter(function(x){let b=typeof x;return x.stmt&&x.stmt==="dir"?(y=x.value,!1):x.trim()===""?!1:b in m?m[b].hasOwnProperty(x)?!1:m[b][x]=!0:g.includes(x)?!1:g.push(x)}),dir:y}},"uniq")(r.flat()),u=l.nodeList,h=l.dir,d=ge().flowchart??{};if(h=h??(d.inheritDir?this.getDirection()??ge().direction??void 0:void 0),this.version==="gen-1")for(let p=0;p2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=r,this.subGraphs[r].id===t)return{result:!0,count:0};let n=0,a=1;for(;n=0){let l=this.indexNodes2(t,s);if(l.result)return{result:!0,count:a+l.count};a=a+l.count}n=n+1}return{result:!1,count:a}}getDepthFirstPos(t){return this.posCrossRef[t]}indexNodes(){this.secCount=-1,this.subGraphs.length>0&&this.indexNodes2("none",this.subGraphs.length-1)}getSubGraphs(){return this.subGraphs}firstGraph(){return this.firstGraphFlag?(this.firstGraphFlag=!1,!0):!1}destructStartLink(t){let r=t.trim(),i="arrow_open";switch(r[0]){case"<":i="arrow_point",r=r.slice(1);break;case"x":i="arrow_cross",r=r.slice(1);break;case"o":i="arrow_circle",r=r.slice(1);break}let n="normal";return r.includes("=")&&(n="thick"),r.includes(".")&&(n="dotted"),{type:i,stroke:n}}countChar(t,r){let i=r.length,n=0;for(let a=0;a":n="arrow_point",r.startsWith("<")&&(n="double_"+n,i=i.slice(1));break;case"o":n="arrow_circle",r.startsWith("o")&&(n="double_"+n,i=i.slice(1));break}let a="normal",s=i.length-1;i.startsWith("=")&&(a="thick"),i.startsWith("~")&&(a="invisible");let l=this.countChar(".",i);return l&&(a="dotted",s=l),{type:n,stroke:a,length:s}}destructLink(t,r){let i=this.destructEndLink(t),n;if(r){if(n=this.destructStartLink(r),n.stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=i.type;else{if(n.type!==i.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=i.length,n}return i}exists(t,r){for(let i of t)if(i.nodes.includes(r))return!0;return!1}makeUniq(t,r){let i=[];return t.nodes.forEach((n,a)=>{this.exists(r,n)||i.push(t.nodes[a])}),{nodes:i}}getTypeFromVertex(t){if(t.img)return"imageSquare";if(t.icon)return t.form==="circle"?"iconCircle":t.form==="square"?"iconSquare":t.form==="rounded"?"iconRounded":"icon";switch(t.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return t.type}}findNode(t,r){return t.find(i=>i.id===r)}destructEdgeType(t){let r="none",i="arrow_point";switch(t){case"arrow_point":case"arrow_circle":case"arrow_cross":i=t;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":r=t.replace("double_",""),i=r;break}return{arrowTypeStart:r,arrowTypeEnd:i}}addNodeFromVertex(t,r,i,n,a,s){let l=i.get(t.id),u=n.get(t.id)??!1,h=this.findNode(r,t.id);if(h)h.cssStyles=t.styles,h.cssCompiledStyles=this.getCompiledStyles(t.classes),h.cssClasses=t.classes.join(" ");else{let d={id:t.id,label:t.text,labelType:t.labelType,labelStyle:"",parentId:l,padding:a.flowchart?.padding||8,cssStyles:t.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...t.classes]),cssClasses:"default "+t.classes.join(" "),dir:t.dir,domId:t.domId,look:s,link:t.link,linkTarget:t.linkTarget,tooltip:this.getTooltip(t.id),icon:t.icon,pos:t.pos,img:t.img,assetWidth:t.assetWidth,assetHeight:t.assetHeight,constraint:t.constraint};u?r.push({...d,isGroup:!0,shape:"rect"}):r.push({...d,isGroup:!1,shape:this.getTypeFromVertex(t)})}}getCompiledStyles(t){let r=[];for(let i of t){let n=this.classes.get(i);n?.styles&&(r=[...r,...n.styles??[]].map(a=>a.trim())),n?.textStyles&&(r=[...r,...n.textStyles??[]].map(a=>a.trim()))}return r}getData(){let t=ge(),r=[],i=[],n=this.getSubGraphs(),a=new Map,s=new Map;for(let h=n.length-1;h>=0;h--){let d=n[h];d.nodes.length>0&&s.set(d.id,!0);for(let f of d.nodes)a.set(f,d.id)}for(let h=n.length-1;h>=0;h--){let d=n[h];r.push({id:d.id,label:d.title,labelStyle:"",labelType:d.labelType,parentId:a.get(d.id),padding:8,cssCompiledStyles:this.getCompiledStyles(d.classes),cssClasses:d.classes.join(" "),shape:"rect",dir:d.dir,isGroup:!0,look:t.look})}this.getVertices().forEach(h=>{this.addNodeFromVertex(h,r,a,s,t,t.look||"classic")});let u=this.getEdges();return u.forEach((h,d)=>{let{arrowTypeStart:f,arrowTypeEnd:p}=this.destructEdgeType(h.type),m=[...u.defaultStyle??[]];h.style&&m.push(...h.style);let g={id:bc(h.start,h.end,{counter:d,prefix:"L"},h.id),isUserDefinedId:h.isUserDefinedId,start:h.start,end:h.end,type:h.type??"normal",label:h.text,labelType:h.labelType,labelpos:"c",thickness:h.stroke,minlen:h.length,classes:h?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":f,arrowTypeEnd:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":p,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(h.classes),labelStyle:m,style:m,pattern:h.stroke,look:t.look,animate:h.animate,animation:h.animation,curve:h.interpolate||this.edges.defaultInterpolate||t.flowchart?.curve};i.push(g)}),{nodes:r,edges:i,other:{},config:t}}defaultConfig(){return vk.flowchart}}});var Fo,Lp=z(()=>{"use strict";Rr();Fo=o((e,t)=>{let r;return t==="sandbox"&&(r=Je("#i"+e)),(t==="sandbox"?Je(r.nodes()[0].contentDocument.body):Je("body")).select(`[id="${e}"]`)},"getDiagramElement")});var zu,rb=z(()=>{"use strict";zu=o(({flowchart:e})=>{let t=e?.subGraphTitleMargin?.top??0,r=e?.subGraphTitleMargin?.bottom??0,i=t+r;return{subGraphTitleTopMargin:t,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:i}},"getSubGraphTitleMargins")});var Nae,Gqe,Vqe,Wqe,qqe,Uqe,Hqe,Iae,wg,Oae,W4=z(()=>{"use strict";Ut();br();St();rb();Rr();jt();_s();dN();z4();_p();Ht();Nae=o(async(e,t)=>{Z.info("Creating subgraph rect for ",t.id,t);let r=ge(),{themeVariables:i,handDrawnSeed:n}=r,{clusterBkg:a,clusterBorder:s}=i,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:d}=ct(t),f=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),p=Mr(r),m=f.insert("g").attr("class","cluster-label "),g;t.labelType==="markdown"?g=await wi(m,t.label,{style:t.labelStyle,useHtmlLabels:p,isNode:!0,width:t.width}):g=await Nl(m,t.label,t.labelStyle||"",!1,!0);let y=g.getBBox();if(Mr(r)){let E=g.children[0],A=Je(g);y=E.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=t.width<=y.width+t.padding?y.width+t.padding:t.width;t.width<=y.width+t.padding?t.diff=(v-t.width)/2-t.padding:t.diff=-t.padding;let x=t.height,b=t.x-v/2,T=t.y-x/2;Z.trace("Data ",t,JSON.stringify(t));let w;if(t.look==="handDrawn"){let E=ut.svg(f),A=mt(t,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:n}),N=E.path(Rs(b,T,v,x,0),A);w=f.insert(()=>(Z.debug("Rough node insert CXC",N),N),":first-child"),w.select("path:nth-child(2)").attr("style",h.join(";")),w.select("path").attr("style",d.join(";").replace("fill","stroke"))}else w=f.insert("rect",":first-child"),w.attr("style",u).attr("rx",t.rx).attr("ry",t.ry).attr("x",b).attr("y",T).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:C}=zu(r);if(m.attr("transform",`translate(${t.x-y.width/2}, ${t.y-t.height/2+C})`),l){let E=m.select("span");E&&E.attr("style",l)}let k=w.node().getBBox();return t.offsetX=0,t.width=k.width,t.height=k.height,t.offsetY=y.height-t.padding/2,t.intersect=function(E){return cd(t,E)},{cluster:f,labelBBox:y}},"rect"),Gqe=o((e,t)=>{let r=e.insert("g").attr("class","note-cluster").attr("id",t.domId),i=r.insert("rect",":first-child"),n=0*t.padding,a=n/2;i.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+n).attr("height",t.height+n).attr("fill","none");let s=i.node().getBBox();return t.width=s.width,t.height=s.height,t.intersect=function(l){return cd(t,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),Vqe=o(async(e,t)=>{let r=ge(),{themeVariables:i,handDrawnSeed:n}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=i,h=e.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-id",t.id).attr("data-look",t.look),d=h.insert("g",":first-child"),f=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=await Nl(f,t.label,t.labelStyle,void 0,!0),g=m.getBBox();if(Mr(r)){let N=m.children[0],P=Je(m);g=N.getBoundingClientRect(),P.attr("width",g.width),P.attr("height",g.height)}let y=0*t.padding,v=y/2,x=(t.width<=g.width+t.padding?g.width+t.padding:t.width)+y;t.width<=g.width+t.padding?t.diff=(x-t.width)/2-t.padding:t.diff=-t.padding;let b=t.height+y,T=t.height+y-g.height-6,w=t.x-x/2,C=t.y-b/2;t.width=x;let k=t.y-t.height/2-v+g.height+2,E;if(t.look==="handDrawn"){let N=t.cssClasses.includes("statediagram-cluster-alt"),P=ut.svg(h),I=t.rx||t.ry?P.path(Rs(w,C,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:n}):P.rectangle(w,C,x,b,{seed:n});E=h.insert(()=>I,":first-child");let D=P.rectangle(w,k,x,T,{fill:N?a:s,fillStyle:N?"hachure":"solid",stroke:u,seed:n});E=h.insert(()=>I,":first-child"),p=h.insert(()=>D)}else E=d.insert("rect",":first-child"),E.attr("class","outer").attr("x",w).attr("y",C).attr("width",x).attr("height",b).attr("data-look",t.look),p.attr("class","inner").attr("x",w).attr("y",k).attr("width",x).attr("height",T);f.attr("transform",`translate(${t.x-g.width/2}, ${C+1-(Mr(r)?0:3)})`);let A=E.node().getBBox();return t.height=A.height,t.offsetX=0,t.offsetY=g.height-t.padding/2,t.labelBBox=g,t.intersect=function(N){return cd(t,N)},{cluster:h,labelBBox:g}},"roundedWithTitle"),Wqe=o(async(e,t)=>{Z.info("Creating subgraph rect for ",t.id,t);let r=ge(),{themeVariables:i,handDrawnSeed:n}=r,{clusterBkg:a,clusterBorder:s}=i,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:d}=ct(t),f=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),p=Mr(r),m=f.insert("g").attr("class","cluster-label "),g=await wi(m,t.label,{style:t.labelStyle,useHtmlLabels:p,isNode:!0,width:t.width}),y=g.getBBox();if(Mr(r)){let E=g.children[0],A=Je(g);y=E.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=t.width<=y.width+t.padding?y.width+t.padding:t.width;t.width<=y.width+t.padding?t.diff=(v-t.width)/2-t.padding:t.diff=-t.padding;let x=t.height,b=t.x-v/2,T=t.y-x/2;Z.trace("Data ",t,JSON.stringify(t));let w;if(t.look==="handDrawn"){let E=ut.svg(f),A=mt(t,{roughness:.7,fill:a,stroke:s,fillWeight:4,seed:n}),N=E.path(Rs(b,T,v,x,t.rx),A);w=f.insert(()=>(Z.debug("Rough node insert CXC",N),N),":first-child"),w.select("path:nth-child(2)").attr("style",h.join(";")),w.select("path").attr("style",d.join(";").replace("fill","stroke"))}else w=f.insert("rect",":first-child"),w.attr("style",u).attr("rx",t.rx).attr("ry",t.ry).attr("x",b).attr("y",T).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:C}=zu(r);if(m.attr("transform",`translate(${t.x-y.width/2}, ${t.y-t.height/2+C})`),l){let E=m.select("span");E&&E.attr("style",l)}let k=w.node().getBBox();return t.offsetX=0,t.width=k.width,t.height=k.height,t.offsetY=y.height-t.padding/2,t.intersect=function(E){return cd(t,E)},{cluster:f,labelBBox:y}},"kanbanSection"),qqe=o((e,t)=>{let r=ge(),{themeVariables:i,handDrawnSeed:n}=r,{nodeBorder:a}=i,s=e.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-look",t.look),l=s.insert("g",":first-child"),u=0*t.padding,h=t.width+u;t.diff=-t.padding;let d=t.height+u,f=t.x-h/2,p=t.y-d/2;t.width=h;let m;if(t.look==="handDrawn"){let v=ut.svg(s).rectangle(f,p,h,d,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:n});m=s.insert(()=>v,":first-child")}else{m=l.insert("rect",":first-child");let y="outer";t.look,y="divider",m.attr("class",y).attr("x",f).attr("y",p).attr("width",h).attr("height",d).attr("data-look",t.look)}let g=m.node().getBBox();return t.height=g.height,t.offsetX=0,t.offsetY=0,t.intersect=function(y){return cd(t,y)},{cluster:s,labelBBox:{}}},"divider"),Uqe=Nae,Hqe={rect:Nae,squareRect:Uqe,roundedWithTitle:Vqe,noteGroup:Gqe,divider:qqe,kanbanSection:Wqe},Iae=new Map,wg=o(async(e,t)=>{let r=t.shape||"rect",i=await Hqe[r](e,t);return Iae.set(t.id,i),i},"insertCluster"),Oae=o(()=>{Iae=new Map},"clear")});var $o,ON=z(()=>{"use strict";$o=o((e,t)=>{if(t)return"translate("+-e.width/2+", "+-e.height/2+")";let r=e.x??0,i=e.y??0;return"translate("+-(r+e.width/2)+", "+-(i+e.height/2)+")"},"computeLabelTransform")});function q4(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=Ui(e),t=Ui(t);let[r,i]=[e.x,e.y],[n,a]=[t.x,t.y],s=n-r,l=a-i;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var pa,PN,Ui,U4,BN=z(()=>{"use strict";pa={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4,arrow_barb:0,arrow_barb_neo:5.5},PN={arrow_point:4,arrow_cross:12.5,arrow_circle:12.5};o(q4,"calculateDeltaAndAngle");Ui=o(e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,"pointTransformer"),U4=o(e=>({x:o(function(t,r,i){let n=0,a=Ui(i[0]).x=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(pa,e.arrowTypeEnd)){let{angle:m,deltaX:g}=q4(i[i.length-1],i[i.length-2]);n=pa[e.arrowTypeEnd]*Math.cos(m)*(g>=0?1:-1)}let s=Math.abs(Ui(t).x-Ui(i[i.length-1]).x),l=Math.abs(Ui(t).y-Ui(i[i.length-1]).y),u=Math.abs(Ui(t).x-Ui(i[0]).x),h=Math.abs(Ui(t).y-Ui(i[0]).y),d=pa[e.arrowTypeStart],f=pa[e.arrowTypeEnd],p=1;if(s0&&l0&&h=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(pa,e.arrowTypeEnd)){let{angle:m,deltaY:g}=q4(i[i.length-1],i[i.length-2]);n=pa[e.arrowTypeEnd]*Math.abs(Math.sin(m))*(g>=0?1:-1)}let s=Math.abs(Ui(t).y-Ui(i[i.length-1]).y),l=Math.abs(Ui(t).x-Ui(i[i.length-1]).x),u=Math.abs(Ui(t).y-Ui(i[0]).y),h=Math.abs(Ui(t).x-Ui(i[0]).x),d=pa[e.arrowTypeStart],f=pa[e.arrowTypeEnd],p=1;if(s0&&l0&&h{"use strict";St();Bae=o((e,t,r,i,n,a=!1,s)=>{t.arrowTypeStart&&Pae(e,"start",t.arrowTypeStart,r,i,n,a,s),t.arrowTypeEnd&&Pae(e,"end",t.arrowTypeEnd,r,i,n,a,s)},"addEdgeMarkers"),Yqe={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_barb_neo:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},jqe=["cross","point","circle","lollipop","aggregation","extension","composition","dependency","barb"],Pae=o((e,t,r,i,n,a,s=!1,l)=>{let u=Yqe[r],h=u&&jqe.includes(u.type);if(!u){Z.warn(`Unknown arrow type: ${r}`);return}let d=u.type,m=`${n}_${a}-${d}${t==="start"?"Start":"End"}${s&&h?"-margin":""}`;if(l&&l.trim()!==""){let g=l.replace(/[^\dA-Za-z]/g,"_"),y=`${m}_${g}`;if(!document.getElementById(y)){let v=document.getElementById(m);if(v){let x=v.cloneNode(!0);x.id=y,x.querySelectorAll("path, circle, line").forEach(T=>{T.setAttribute("stroke",l),u.fill&&T.setAttribute("fill",l)}),v.parentNode?.appendChild(x)}}e.attr(`marker-${t}`,`url(${i}#${y})`)}else e.attr(`marker-${t}`,`url(${i}#${m})`)},"addEdgeMarker")});function H4(e,t){Mr(ge())&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}function Qqe(e){let t=[],r=[];for(let i=1;i5&&Math.abs(a.y-n.y)>5||n.y===a.y&&a.x===s.x&&Math.abs(a.x-n.x)>5&&Math.abs(a.y-s.y)>5)&&(t.push(a),r.push(i))}return{cornerPoints:t,cornerPointPositions:r}}function tUe(e,t){if(e.length<2)return"";let r="",i=e.length,n=1e-5;for(let a=0;a({...n}));if(e.length>=2&&pa[t.arrowTypeStart]){let n=pa[t.arrowTypeStart],a=e[0],s=e[1],{angle:l}=Gae(a,s),u=n*Math.cos(l),h=n*Math.sin(l);r[0].x=a.x+u,r[0].y=a.y+h}let i=e.length;if(i>=2&&pa[t.arrowTypeEnd]){let n=pa[t.arrowTypeEnd],a=e[i-1],s=e[i-2],{angle:l}=Gae(s,a),u=n*Math.cos(l),h=n*Math.sin(l);r[i-1].x=a.x-u,r[i-1].y=a.y-h}return r}var Xqe,Y4,ma,Vae,ib,j4,X4,Kqe,Zqe,$ae,zae,Jqe,eUe,K4,FN=z(()=>{"use strict";Ut();br();St();_s();ON();Xt();BN();rb();Rr();jt();z4();Fae();Ht();Xqe=o(e=>typeof e=="string"?e:ge()?.flowchart?.curve,"resolveEdgeCurveType"),Y4=new Map,ma=new Map,Vae=o(()=>{Y4.clear(),ma.clear()},"clear"),ib=o(e=>e?typeof e=="string"?e:e.reduce((t,r)=>t+";"+r,""):"","getLabelStyles"),j4=o(async(e,t)=>{let r=ge(),i=Mr(r),{labelStyles:n}=ct(t);t.labelStyle=n;let a=e.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label").attr("data-id",t.id),l=t.labelType==="markdown",h=await wi(e,t.label,{style:ib(t.labelStyle),useHtmlLabels:i,addSvgBackground:!0,isNode:!1,markdown:l,width:l?void 0:void 0},r);s.node().appendChild(h),Z.info("abc82",t,t.labelType);let d=h.getBBox(),f=d;if(i){let m=h.children[0],g=Je(h);d=m.getBoundingClientRect(),f=d,g.attr("width",d.width),g.attr("height",d.height)}else{let m=Je(h).select("text").node();m&&typeof m.getBBox=="function"&&(f=m.getBBox())}s.attr("transform",$o(f,i)),Y4.set(t.id,a),t.width=d.width,t.height=d.height;let p;if(t.startLabelLeft){let m=e.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await Nl(g,t.startLabelLeft,ib(t.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(i){let x=y.children[0],b=Je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",$o(v,i)),ma.get(t.id)||ma.set(t.id,{}),ma.get(t.id).startLeft=m,H4(p,t.startLabelLeft)}if(t.startLabelRight){let m=e.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await Nl(g,t.startLabelRight,ib(t.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(i){let x=y.children[0],b=Je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",$o(v,i)),ma.get(t.id)||ma.set(t.id,{}),ma.get(t.id).startRight=m,H4(p,t.startLabelRight)}if(t.endLabelLeft){let m=e.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await Nl(m,t.endLabelLeft,ib(t.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(i){let x=y.children[0],b=Je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",$o(v,i)),ma.get(t.id)||ma.set(t.id,{}),ma.get(t.id).endLeft=m,H4(p,t.endLabelLeft)}if(t.endLabelRight){let m=e.insert("g").attr("class","edgeTerminals"),g=m.insert("g").attr("class","inner"),y=await Nl(m,t.endLabelRight,ib(t.labelStyle)||"",!1,!1);p=y;let v=y.getBBox();if(i){let x=y.children[0],b=Je(y);v=x.getBoundingClientRect(),b.attr("width",v.width),b.attr("height",v.height)}g.attr("transform",$o(v,i)),ma.get(t.id)||ma.set(t.id,{}),ma.get(t.id).endRight=m,H4(p,t.endLabelRight)}return h},"insertEdgeLabel");o(H4,"setTerminalWidth");X4=o((e,t)=>{Z.debug("Moving label abc88 ",e.id,e.label,Y4.get(e.id),t);let r=t.updatedPath?t.updatedPath:t.originalPath,i=ge(),{subGraphTitleTotalMargin:n}=zu(i);if(e.label){let a=Y4.get(e.id),s=e.x,l=e.y;if(r){let u=Zt.calcLabelPosition(r);Z.debug("Moving label "+e.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),t.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+n/2})`)}if(e.startLabelLeft){let a=ma.get(e.id).startLeft,s=e.x,l=e.y;if(r){let u=Zt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.startLabelRight){let a=ma.get(e.id).startRight,s=e.x,l=e.y;if(r){let u=Zt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelLeft){let a=ma.get(e.id).endLeft,s=e.x,l=e.y;if(r){let u=Zt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelRight){let a=ma.get(e.id).endRight,s=e.x,l=e.y;if(r){let u=Zt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),Kqe=o((e,t)=>{let r=e.x,i=e.y,n=Math.abs(t.x-r),a=Math.abs(t.y-i),s=e.width/2,l=e.height/2;return n>=s||a>=l},"outsideNode"),Zqe=o((e,t,r)=>{Z.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(r)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let i=e.x,n=e.y,a=Math.abs(i-r.x),s=e.width/2,l=r.xMath.abs(i-t.x)*u){let f=r.y{Z.warn("abc88 cutPathAtIntersect",e,t);let r=[],i=e[0],n=!1;return e.forEach(a=>{if(Z.info("abc88 checking point",a,t),!Kqe(t,a)&&!n){let s=Zqe(t,i,a);Z.debug("abc88 inside",a,i,s),Z.debug("abc88 intersection",s,t);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?Z.warn("abc88 no intersect",s,r):r.push(s),n=!0}else Z.warn("abc88 outside",a,i),i=a,n||r.push(a)}),Z.debug("returning points",r),r},"cutPathAtIntersect");o(Qqe,"extractCornerPoints");zae=o(function(e,t,r){let i=t.x-e.x,n=t.y-e.y,a=Math.sqrt(i*i+n*n),s=r/a;return{x:t.x-s*i,y:t.y-s*n}},"findAdjacentPoint"),Jqe=o(function(e){let{cornerPointPositions:t}=Qqe(e),r=[];for(let i=0;i10&&Math.abs(a.y-n.y)>=10){Z.debug("Corner point fixing",Math.abs(a.x-n.x),Math.abs(a.y-n.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+f:l.x+m-f,y:d<0?l.y-f:l.y+f}:p={x:h<0?l.x-f:l.x+f,y:d<0?l.y-m+f:l.y+m-f}}else Z.debug("Corner point skipping fixing",Math.abs(a.x-n.x),Math.abs(a.y-n.y));r.push(p,u)}else r.push(e[i]);return r},"fixCorners"),eUe=o((e,t,r)=>{let i=e-t-r,n=2,a=2,s=n+a,l=Math.floor(i/s),u=Array(l).fill(`${n} ${a}`).join(" ");return`0 ${t} ${u} ${r}`},"generateDashArray"),K4=o(function(e,t,r,i,n,a,s,l=!1){if(!s)throw new Error(`insertEdge: missing diagramId for edge "${t.id}" \u2014 edge IDs require a diagram prefix for uniqueness`);let{handDrawnSeed:u}=ge(),h=t.points,d=!1,f=n;var p=a;let m=[];for(let B in t.cssCompiledStyles)Xx(B)||m.push(t.cssCompiledStyles[B]);Z.debug("UIO intersect check",t.points,p.x,f.x),p.intersect&&f.intersect&&!l&&(h=h.slice(1,t.points.length-1),h.unshift(f.intersect(h[0])),Z.debug("Last point UIO",t.start,"-->",t.end,h[h.length-1],p,p.intersect(h[h.length-1])),h.push(p.intersect(h[h.length-1])));let g=btoa(JSON.stringify(h));t.toCluster&&(Z.info("to cluster abc88",r.get(t.toCluster)),h=$ae(t.points,r.get(t.toCluster).node),d=!0),t.fromCluster&&(Z.debug("from cluster abc88",r.get(t.fromCluster),JSON.stringify(h,null,2)),h=$ae(h.reverse(),r.get(t.fromCluster).node).reverse(),d=!0);let y=h.filter(B=>!Number.isNaN(B.y)),v=Xqe(t.curve);v!=="rounded"&&(y=Jqe(y));let x=xc;switch(v){case"linear":x=xc;break;case"basis":x=Dl;break;case"cardinal":x=gx;break;case"bumpX":x=hx;break;case"bumpY":x=dx;break;case"catmullRom":x=xx;break;case"monotoneX":x=bx;break;case"monotoneY":x=Tx;break;case"natural":x=hg;break;case"step":x=dg;break;case"stepAfter":x=kx;break;case"stepBefore":x=Cx;break;case"rounded":x=xc;break;default:x=Dl}let{x:b,y:T}=U4(t),w=_l().x(b).y(T).curve(x),C;switch(t.thickness){case"normal":C="edge-thickness-normal";break;case"thick":C="edge-thickness-thick";break;case"invisible":C="edge-thickness-invisible";break;default:C="edge-thickness-normal"}switch(t.pattern){case"solid":C+=" edge-pattern-solid";break;case"dotted":C+=" edge-pattern-dotted";break;case"dashed":C+=" edge-pattern-dashed";break;default:C+=" edge-pattern-solid"}let k,E=v==="rounded"?tUe(rUe(y,t),5):w(y),A=Array.isArray(t.style)?t.style:[t.style],N=A.find(B=>B?.startsWith("stroke:")),P="";t.animate&&(P="edge-animation-fast"),t.animation&&(P="edge-animation-"+t.animation);let I=!1;if(t.look==="handDrawn"){let B=ut.svg(e);Object.assign([],y);let O=B.path(E,{roughness:.3,seed:u});C+=" transition",k=Je(O).select("path").attr("id",`${s}-${t.id}`).attr("class"," "+C+(t.classes?" "+t.classes:"")+(P?" "+P:"")).attr("style",A?A.reduce((G,F)=>G+";"+F,""):"");let $=k.attr("d");k.attr("d",$),e.node().appendChild(k.node())}else{let B=m.join(";"),O=A?A.reduce((j,U)=>j+U+";",""):"",$=(B?B+";"+O+";":O)+";"+(A?A.reduce((j,U)=>j+";"+U,""):"");k=e.append("path").attr("d",E).attr("id",`${s}-${t.id}`).attr("class"," "+C+(t.classes?" "+t.classes:"")+(P?" "+P:"")).attr("style",$),N=$.match(/stroke:([^;]+)/)?.[1],I=t.animate===!0||!!t.animation||B.includes("animation");let G=k.node(),F=typeof G.getTotalLength=="function"?G.getTotalLength():0,V=PN[t.arrowTypeStart]||0,H=PN[t.arrowTypeEnd]||0;if(t.look==="neo"&&!I){let U=`stroke-dasharray: ${t.pattern==="dotted"||t.pattern==="dashed"?eUe(F,V,H):`0 ${V} ${F-V-H} ${H}`}; stroke-dashoffset: 0;`;k.attr("style",U+k.attr("style"))}}k.attr("data-edge",!0),k.attr("data-et","edge"),k.attr("data-id",t.id),k.attr("data-points",g),k.attr("data-look",ii(t.look)),t.showPoints&&y.forEach(B=>{e.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",B.x).attr("cy",B.y)});let D="";(ge().flowchart.arrowMarkerAbsolute||ge().state.arrowMarkerAbsolute)&&(D=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,D=D.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),Z.info("arrowTypeStart",t.arrowTypeStart),Z.info("arrowTypeEnd",t.arrowTypeEnd);let _=!I&&t?.look==="neo";Bae(k,t,D,s,i,_,N);let R=Math.floor(h.length/2),M=h[R];Zt.isLabelCoordinateInPath(M,k.attr("d"))||(d=!0);let L={};return d&&(L.updatedPath=h),L.originalPath=t.points,L},"insertEdge");o(tUe,"generateRoundedPath");o(Gae,"calculateDeltaAndAngle");o(rUe,"applyMarkerOffsetsToPoints")});var iUe,nUe,aUe,sUe,oUe,lUe,cUe,uUe,hUe,dUe,fUe,pUe,mUe,gUe,yUe,vUe,xUe,bUe,TUe,CUe,kUe,wUe,SUe,EUe,Z4,$N=z(()=>{"use strict";St();br();iUe=o((e,t,r,i)=>{t.forEach(n=>{EUe[n](e,r,i)})},"insertMarkers"),nUe=o((e,t,r)=>{Z.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),e.append("marker").attr("id",r+"_"+t+"-extensionStart-margin").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("viewBox","0 0 20 14").append("polygon").attr("points","10,7 18,13 18,1").style("stroke-width",2).style("stroke-dasharray","0"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd-margin").attr("class","marker extension "+t).attr("refX",9).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("viewBox","0 0 20 14").append("polygon").attr("points","10,1 10,13 18,7").style("stroke-width",2).style("stroke-dasharray","0")},"extension"),aUe=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart-margin").attr("class","marker composition "+t).attr("refX",15).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",0).attr("viewBox","0 0 15 15").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd-margin").attr("class","marker composition "+t).attr("refX",3.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",0).attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),sUe=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart-margin").attr("class","marker aggregation "+t).attr("refX",15).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",2).attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd-margin").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",2).attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),oUe=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart-margin").attr("class","marker dependency "+t).attr("refX",4).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",0).attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd-margin").attr("class","marker dependency "+t).attr("refX",16).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").style("stroke-width",0).attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),lUe=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart-margin").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6).attr("stroke-width",2),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd-margin").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("circle").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6).attr("stroke-width",2)},"lollipop"),cUe=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointEnd-margin").attr("class","marker "+t).attr("viewBox","0 0 11.5 14").attr("refX",11.5).attr("refY",7).attr("markerUnits","userSpaceOnUse").attr("markerWidth",10.5).attr("markerHeight",14).attr("orient","auto").append("path").attr("d","M 0 0 L 11.5 7 L 0 14 z").attr("class","arrowMarkerPath").style("stroke-width",0).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart-margin").attr("class","marker "+t).attr("viewBox","0 0 11.5 14").attr("refX",1).attr("refY",7).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11.5).attr("markerHeight",14).attr("orient","auto").append("polygon").attr("points","0,7 11.5,14 11.5,0").attr("class","arrowMarkerPath").style("stroke-width",0).style("stroke-dasharray","1,0")},"point"),uUe=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleEnd-margin").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refY",5).attr("refX",12.25).attr("markerUnits","userSpaceOnUse").attr("markerWidth",14).attr("markerHeight",14).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",0).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart-margin").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-2).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",14).attr("markerHeight",14).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",0).style("stroke-dasharray","1,0")},"circle"),hUe=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossEnd-margin").attr("class","marker cross "+t).attr("viewBox","0 0 15 15").attr("refX",17.7).attr("refY",7.5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 1,1 L 14,14 M 1,14 L 14,1").attr("class","arrowMarkerPath").style("stroke-width",2.5),e.append("marker").attr("id",r+"_"+t+"-crossStart-margin").attr("class","marker cross "+t).attr("viewBox","0 0 15 15").attr("refX",-3.5).attr("refY",7.5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 1,1 L 14,14 M 1,14 L 14,1").attr("class","arrowMarkerPath").style("stroke-width",2.5).style("stroke-dasharray","1,0")},"cross"),dUe=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),fUe=o((e,t,r)=>{let i=Nt(),{themeVariables:n}=i,{transitionColor:a}=n;e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L11,14 L13,7 L11,0 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd-margin").attr("refX",17).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L11,14 L13,7 L11,0 Z").attr("fill",`${a}`)},"barbNeo"),pUe=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),mUe=o((e,t,r)=>{let i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),i.append("path").attr("d","M9,0 L9,18");let n=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),n.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),gUe=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),yUe=o((e,t,r)=>{let i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),i.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");let n=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),n.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),vUe=o((e,t,r)=>{let i=Nt(),{themeVariables:n}=i,{strokeWidth:a}=n;e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").attr("d","M9,0 L9,18 M15,0 L15,18").attr("stroke-width",`${a}`),e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").attr("d","M3,0 L3,18 M9,0 L9,18").attr("stroke-width",`${a}`)},"only_one_neo"),xUe=o((e,t,r)=>{let i=Nt(),{themeVariables:n}=i,{strokeWidth:a,mainBkg:s}=n,l=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto").attr("markerUnits","userSpaceOnUse");l.append("circle").attr("fill",s??"white").attr("cx",21).attr("cy",9).attr("stroke-width",`${a}`).attr("r",6),l.append("path").attr("d","M9,0 L9,18").attr("stroke-width",`${a}`);let u=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("markerUnits","userSpaceOnUse").attr("orient","auto");u.append("circle").attr("fill",s??"white").attr("cx",9).attr("cy",9).attr("stroke-width",`${a}`).attr("r",6),u.append("path").attr("d","M21,0 L21,18").attr("stroke-width",`${a}`)},"zero_or_one_neo"),bUe=o((e,t,r)=>{let i=Nt(),{themeVariables:n}=i,{strokeWidth:a}=n;e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27").attr("stroke-width",`${a}`),e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18").attr("stroke-width",`${a}`)},"one_or_more_neo"),TUe=o((e,t,r)=>{let i=Nt(),{themeVariables:n}=i,{strokeWidth:a,mainBkg:s}=n,l=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("markerUnits","userSpaceOnUse").attr("orient","auto");l.append("circle").attr("fill",s??"white").attr("cx",45.5).attr("cy",18).attr("r",6).attr("stroke-width",`${a}`),l.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18").attr("stroke-width",`${a}`);let u=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto").attr("markerUnits","userSpaceOnUse");u.append("circle").attr("fill",s??"white").attr("cx",11).attr("cy",18).attr("r",6).attr("stroke-width",`${a}`),u.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18").attr("stroke-width",`${a}`)},"zero_or_more_neo"),CUe=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0 + L20,10 + M20,10 + L0,20`)},"requirement_arrow"),kUe=o((e,t,r)=>{let i=Nt(),{themeVariables:n}=i,{strokeWidth:a}=n;e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("stroke-width",`${a}`).attr("viewBox","0 0 25 20").append("path").attr("d",`M0,0 + L20,10 + M20,10 + L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),wUe=o((e,t,r)=>{let i=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");i.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),i.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),i.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),SUe=o((e,t,r)=>{let i=Nt(),{themeVariables:n}=i,{strokeWidth:a}=n,s=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");s.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),s.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),s.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),s.selectAll("*").attr("stroke-width",`${a}`)},"requirement_contains_neo"),EUe={extension:nUe,composition:aUe,aggregation:sUe,dependency:oUe,lollipop:lUe,point:cUe,circle:uUe,cross:hUe,barb:dUe,barbNeo:fUe,only_one:pUe,zero_or_one:mUe,one_or_more:gUe,zero_or_more:yUe,only_one_neo:vUe,zero_or_one_neo:xUe,one_or_more_neo:bUe,zero_or_more_neo:TUe,requirement_arrow:CUe,requirement_contains:wUe,requirement_arrow_neo:kUe,requirement_contains_neo:SUe},Z4=iUe});async function Sg(e,t,r){let i,n;t.shape==="rect"&&(t.rx&&t.ry?t.shape="roundedRect":t.shape="squareRect");let a=t.shape?NN[t.shape]:void 0;if(!a)throw new Error(`No such shape: ${t.shape}. Please check your syntax.`);if(t.link){let s;r.config.securityLevel==="sandbox"?s="_top":t.linkTarget&&(s=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",s??null),n=await a(i,t,r)}else n=await a(e,t,r),i=n;return i.attr("data-look",ii(t.look)),t.tooltip&&n.attr("title",t.tooltip),Q4.set(t.id,i),t.haveCallback&&i.attr("class",i.attr("class")+" clickable"),i}var Q4,Wae,qae,nb,J4=z(()=>{"use strict";St();IN();Xt();Q4=new Map;o(Sg,"insertNode");Wae=o((e,t)=>{Q4.set(t.id,e)},"setNodeElem"),qae=o(()=>{Q4.clear()},"clear"),nb=o(e=>{let t=Q4.get(e.id);Z.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");let r=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-r)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},"positionNode")});var Uae,Hae=z(()=>{"use strict";br();Ir();St();W4();FN();$N();J4();Wt();Xt();Uae={common:vt,getConfig:Nt,insertCluster:wg,insertEdge:K4,insertEdgeLabel:j4,insertMarkers:Z4,insertNode:Sg,interpolateToCurve:EM,labelHelper:At,log:Z,positionEdgeLabel:X4}});var AUe,eS,zN=z(()=>{"use strict";AUe=typeof global=="object"&&global&&global.Object===Object&&global,eS=AUe});var _Ue,DUe,ln,zo=z(()=>{"use strict";zN();_Ue=typeof self=="object"&&self&&self.Object===Object&&self,DUe=eS||_Ue||Function("return this")(),ln=DUe});var RUe,ra,Mp=z(()=>{"use strict";zo();RUe=ln.Symbol,ra=RUe});function NUe(e){var t=LUe.call(e,ab),r=e[ab];try{e[ab]=void 0;var i=!0}catch{}var n=MUe.call(e);return i&&(t?e[ab]=r:delete e[ab]),n}var Yae,LUe,MUe,ab,jae,Xae=z(()=>{"use strict";Mp();Yae=Object.prototype,LUe=Yae.hasOwnProperty,MUe=Yae.toString,ab=ra?ra.toStringTag:void 0;o(NUe,"getRawTag");jae=NUe});function PUe(e){return OUe.call(e)}var IUe,OUe,Kae,Zae=z(()=>{"use strict";IUe=Object.prototype,OUe=IUe.toString;o(PUe,"objectToString");Kae=PUe});function $Ue(e){return e==null?e===void 0?FUe:BUe:Qae&&Qae in Object(e)?jae(e):Kae(e)}var BUe,FUe,Qae,es,fd=z(()=>{"use strict";Mp();Xae();Zae();BUe="[object Null]",FUe="[object Undefined]",Qae=ra?ra.toStringTag:void 0;o($Ue,"baseGetTag");es=$Ue});function zUe(e){return e!=null&&typeof e=="object"}var yn,Il=z(()=>{"use strict";o(zUe,"isObjectLike");yn=zUe});function VUe(e){return typeof e=="symbol"||yn(e)&&es(e)==GUe}var GUe,oo,Np=z(()=>{"use strict";fd();Il();GUe="[object Symbol]";o(VUe,"isSymbol");oo=VUe});function WUe(e,t){for(var r=-1,i=e==null?0:e.length,n=Array(i);++r{"use strict";o(WUe,"arrayMap");wc=WUe});var qUe,Or,An=z(()=>{"use strict";qUe=Array.isArray,Or=qUe});function tse(e){if(typeof e=="string")return e;if(Or(e))return wc(e,tse)+"";if(oo(e))return ese?ese.call(e):"";var t=e+"";return t=="0"&&1/e==-UUe?"-0":t}var UUe,Jae,ese,rse,ise=z(()=>{"use strict";Mp();sb();An();Np();UUe=1/0,Jae=ra?ra.prototype:void 0,ese=Jae?Jae.toString:void 0;o(tse,"baseToString");rse=tse});function YUe(e){for(var t=e.length;t--&&HUe.test(e.charAt(t)););return t}var HUe,nse,ase=z(()=>{"use strict";HUe=/\s/;o(YUe,"trimmedEndIndex");nse=YUe});function XUe(e){return e&&e.slice(0,nse(e)+1).replace(jUe,"")}var jUe,sse,ose=z(()=>{"use strict";ase();jUe=/^\s+/;o(XUe,"baseTrim");sse=XUe});function KUe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Hi,Go=z(()=>{"use strict";o(KUe,"isObject");Hi=KUe});function tHe(e){if(typeof e=="number")return e;if(oo(e))return lse;if(Hi(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Hi(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=sse(e);var r=QUe.test(e);return r||JUe.test(e)?eHe(e.slice(2),r?2:8):ZUe.test(e)?lse:+e}var lse,ZUe,QUe,JUe,eHe,cse,use=z(()=>{"use strict";ose();Go();Np();lse=NaN,ZUe=/^[-+]0x[0-9a-f]+$/i,QUe=/^0b[01]+$/i,JUe=/^0o[0-7]+$/i,eHe=parseInt;o(tHe,"toNumber");cse=tHe});function iHe(e){if(!e)return e===0?e:0;if(e=cse(e),e===hse||e===-hse){var t=e<0?-1:1;return t*rHe}return e===e?e:0}var hse,rHe,Eg,GN=z(()=>{"use strict";use();hse=1/0,rHe=17976931348623157e292;o(iHe,"toFinite");Eg=iHe});function nHe(e){var t=Eg(e),r=t%1;return t===t?r?t-r:t:0}var dse,fse=z(()=>{"use strict";GN();o(nHe,"toInteger");dse=nHe});function aHe(e){return e}var Ls,pd=z(()=>{"use strict";o(aHe,"identity");Ls=aHe});function uHe(e){if(!Hi(e))return!1;var t=es(e);return t==oHe||t==lHe||t==sHe||t==cHe}var sHe,oHe,lHe,cHe,Sc,ob=z(()=>{"use strict";fd();Go();sHe="[object AsyncFunction]",oHe="[object Function]",lHe="[object GeneratorFunction]",cHe="[object Proxy]";o(uHe,"isFunction");Sc=uHe});var hHe,tS,pse=z(()=>{"use strict";zo();hHe=ln["__core-js_shared__"],tS=hHe});function dHe(e){return!!mse&&mse in e}var mse,gse,yse=z(()=>{"use strict";pse();mse=(function(){var e=/[^.]+$/.exec(tS&&tS.keys&&tS.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();o(dHe,"isMasked");gse=dHe});function mHe(e){if(e!=null){try{return pHe.call(e)}catch{}try{return e+""}catch{}}return""}var fHe,pHe,Gu,VN=z(()=>{"use strict";fHe=Function.prototype,pHe=fHe.toString;o(mHe,"toSource");Gu=mHe});function kHe(e){if(!Hi(e)||gse(e))return!1;var t=Sc(e)?CHe:yHe;return t.test(Gu(e))}var gHe,yHe,vHe,xHe,bHe,THe,CHe,vse,xse=z(()=>{"use strict";ob();yse();Go();VN();gHe=/[\\^$.*+?()[\]{}|]/g,yHe=/^\[object .+?Constructor\]$/,vHe=Function.prototype,xHe=Object.prototype,bHe=vHe.toString,THe=xHe.hasOwnProperty,CHe=RegExp("^"+bHe.call(THe).replace(gHe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(kHe,"baseIsNative");vse=kHe});function wHe(e,t){return e?.[t]}var bse,Tse=z(()=>{"use strict";o(wHe,"getValue");bse=wHe});function SHe(e,t){var r=bse(e,t);return vse(r)?r:void 0}var Ms,md=z(()=>{"use strict";xse();Tse();o(SHe,"getNative");Ms=SHe});var EHe,rS,Cse=z(()=>{"use strict";md();zo();EHe=Ms(ln,"WeakMap"),rS=EHe});var kse,AHe,wse,Sse=z(()=>{"use strict";Go();kse=Object.create,AHe=(function(){function e(){}return o(e,"object"),function(t){if(!Hi(t))return{};if(kse)return kse(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),wse=AHe});function _He(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Ese,Ase=z(()=>{"use strict";o(_He,"apply");Ese=_He});function DHe(){}var _se,Dse=z(()=>{"use strict";o(DHe,"noop");_se=DHe});function RHe(e,t){var r=-1,i=e.length;for(t||(t=Array(i));++r{"use strict";o(RHe,"copyArray");iS=RHe});function IHe(e){var t=0,r=0;return function(){var i=NHe(),n=MHe-(i-r);if(r=i,n>0){if(++t>=LHe)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var LHe,MHe,NHe,Rse,Lse=z(()=>{"use strict";LHe=800,MHe=16,NHe=Date.now;o(IHe,"shortOut");Rse=IHe});function OHe(e){return function(){return e}}var Ns,qN=z(()=>{"use strict";o(OHe,"constant");Ns=OHe});var PHe,Ag,UN=z(()=>{"use strict";md();PHe=(function(){try{var e=Ms(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Ag=PHe});var BHe,Mse,Nse=z(()=>{"use strict";qN();UN();pd();BHe=Ag?function(e,t){return Ag(e,"toString",{configurable:!0,enumerable:!1,value:Ns(t),writable:!0})}:Ls,Mse=BHe});var FHe,nS,HN=z(()=>{"use strict";Nse();Lse();FHe=Rse(Mse),nS=FHe});function $He(e,t){for(var r=-1,i=e==null?0:e.length;++r{"use strict";o($He,"arrayEach");aS=$He});function zHe(e,t,r,i){for(var n=e.length,a=r+(i?1:-1);i?a--:++a{"use strict";o(zHe,"baseFindIndex");sS=zHe});function GHe(e){return e!==e}var Ise,Ose=z(()=>{"use strict";o(GHe,"baseIsNaN");Ise=GHe});function VHe(e,t,r){for(var i=r-1,n=e.length;++i{"use strict";o(VHe,"strictIndexOf");Pse=VHe});function WHe(e,t,r){return t===t?Pse(e,t,r):sS(e,Ise,r)}var Fse,$se=z(()=>{"use strict";jN();Ose();Bse();o(WHe,"baseIndexOf");Fse=WHe});function qHe(e,t){var r=e==null?0:e.length;return!!r&&Fse(e,t,0)>-1}var zse,Gse=z(()=>{"use strict";$se();o(qHe,"arrayIncludes");zse=qHe});function YHe(e,t){var r=typeof e;return t=t??UHe,!!t&&(r=="number"||r!="symbol"&&HHe.test(e))&&e>-1&&e%1==0&&e{"use strict";UHe=9007199254740991,HHe=/^(?:0|[1-9]\d*)$/;o(YHe,"isIndex");gd=YHe});function jHe(e,t,r){t=="__proto__"&&Ag?Ag(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var yd,cb=z(()=>{"use strict";UN();o(jHe,"baseAssignValue");yd=jHe});function XHe(e,t){return e===t||e!==e&&t!==t}var Vo,Ip=z(()=>{"use strict";o(XHe,"eq");Vo=XHe});function QHe(e,t,r){var i=e[t];(!(ZHe.call(e,t)&&Vo(i,r))||r===void 0&&!(t in e))&&yd(e,t,r)}var KHe,ZHe,vd,ub=z(()=>{"use strict";cb();Ip();KHe=Object.prototype,ZHe=KHe.hasOwnProperty;o(QHe,"assignValue");vd=QHe});function JHe(e,t,r,i){var n=!r;r||(r={});for(var a=-1,s=t.length;++a{"use strict";ub();cb();o(JHe,"copyObject");Ec=JHe});function eYe(e,t,r){return t=Vse(t===void 0?e.length-1:t,0),function(){for(var i=arguments,n=-1,a=Vse(i.length-t,0),s=Array(a);++n{"use strict";Ase();Vse=Math.max;o(eYe,"overRest");oS=eYe});function tYe(e,t){return nS(oS(e,t,Ls),e+"")}var xd,hb=z(()=>{"use strict";pd();XN();HN();o(tYe,"baseRest");xd=tYe});function iYe(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=rYe}var rYe,Dg,lS=z(()=>{"use strict";rYe=9007199254740991;o(iYe,"isLength");Dg=iYe});function nYe(e){return e!=null&&Dg(e.length)&&!Sc(e)}var ia,Ac=z(()=>{"use strict";ob();lS();o(nYe,"isArrayLike");ia=nYe});function aYe(e,t,r){if(!Hi(r))return!1;var i=typeof t;return(i=="number"?ia(r)&&gd(t,r.length):i=="string"&&t in r)?Vo(r[t],e):!1}var Vu,db=z(()=>{"use strict";Ip();Ac();lb();Go();o(aYe,"isIterateeCall");Vu=aYe});function sYe(e){return xd(function(t,r){var i=-1,n=r.length,a=n>1?r[n-1]:void 0,s=n>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(n--,a):void 0,s&&Vu(r[0],r[1],s)&&(a=n<3?void 0:a,n=1),t=Object(t);++i{"use strict";hb();db();o(sYe,"createAssigner");Wse=sYe});function lYe(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||oYe;return e===r}var oYe,bd,fb=z(()=>{"use strict";oYe=Object.prototype;o(lYe,"isPrototype");bd=lYe});function cYe(e,t){for(var r=-1,i=Array(e);++r{"use strict";o(cYe,"baseTimes");Use=cYe});function hYe(e){return yn(e)&&es(e)==uYe}var uYe,KN,Yse=z(()=>{"use strict";fd();Il();uYe="[object Arguments]";o(hYe,"baseIsArguments");KN=hYe});var jse,dYe,fYe,pYe,Ol,Rg=z(()=>{"use strict";Yse();Il();jse=Object.prototype,dYe=jse.hasOwnProperty,fYe=jse.propertyIsEnumerable,pYe=KN((function(){return arguments})())?KN:function(e){return yn(e)&&dYe.call(e,"callee")&&!fYe.call(e,"callee")},Ol=pYe});function mYe(){return!1}var Xse,Kse=z(()=>{"use strict";o(mYe,"stubFalse");Xse=mYe});var Jse,Zse,gYe,Qse,yYe,vYe,Pl,Lg=z(()=>{"use strict";zo();Kse();Jse=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zse=Jse&&typeof module=="object"&&module&&!module.nodeType&&module,gYe=Zse&&Zse.exports===Jse,Qse=gYe?ln.Buffer:void 0,yYe=Qse?Qse.isBuffer:void 0,vYe=yYe||Xse,Pl=vYe});function WYe(e){return yn(e)&&Dg(e.length)&&!!$i[es(e)]}var xYe,bYe,TYe,CYe,kYe,wYe,SYe,EYe,AYe,_Ye,DYe,RYe,LYe,MYe,NYe,IYe,OYe,PYe,BYe,FYe,$Ye,zYe,GYe,VYe,$i,eoe,toe=z(()=>{"use strict";fd();lS();Il();xYe="[object Arguments]",bYe="[object Array]",TYe="[object Boolean]",CYe="[object Date]",kYe="[object Error]",wYe="[object Function]",SYe="[object Map]",EYe="[object Number]",AYe="[object Object]",_Ye="[object RegExp]",DYe="[object Set]",RYe="[object String]",LYe="[object WeakMap]",MYe="[object ArrayBuffer]",NYe="[object DataView]",IYe="[object Float32Array]",OYe="[object Float64Array]",PYe="[object Int8Array]",BYe="[object Int16Array]",FYe="[object Int32Array]",$Ye="[object Uint8Array]",zYe="[object Uint8ClampedArray]",GYe="[object Uint16Array]",VYe="[object Uint32Array]",$i={};$i[IYe]=$i[OYe]=$i[PYe]=$i[BYe]=$i[FYe]=$i[$Ye]=$i[zYe]=$i[GYe]=$i[VYe]=!0;$i[xYe]=$i[bYe]=$i[MYe]=$i[TYe]=$i[NYe]=$i[CYe]=$i[kYe]=$i[wYe]=$i[SYe]=$i[EYe]=$i[AYe]=$i[_Ye]=$i[DYe]=$i[RYe]=$i[LYe]=!1;o(WYe,"baseIsTypedArray");eoe=WYe});function qYe(e){return function(t){return e(t)}}var Td,pb=z(()=>{"use strict";o(qYe,"baseUnary");Td=qYe});var roe,mb,UYe,ZN,HYe,Wu,cS=z(()=>{"use strict";zN();roe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,mb=roe&&typeof module=="object"&&module&&!module.nodeType&&module,UYe=mb&&mb.exports===roe,ZN=UYe&&eS.process,HYe=(function(){try{var e=mb&&mb.require&&mb.require("util").types;return e||ZN&&ZN.binding&&ZN.binding("util")}catch{}})(),Wu=HYe});var ioe,YYe,Cd,gb=z(()=>{"use strict";toe();pb();cS();ioe=Wu&&Wu.isTypedArray,YYe=ioe?Td(ioe):eoe,Cd=YYe});function KYe(e,t){var r=Or(e),i=!r&&Ol(e),n=!r&&!i&&Pl(e),a=!r&&!i&&!n&&Cd(e),s=r||i||n||a,l=s?Use(e.length,String):[],u=l.length;for(var h in e)(t||XYe.call(e,h))&&!(s&&(h=="length"||n&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||gd(h,u)))&&l.push(h);return l}var jYe,XYe,uS,QN=z(()=>{"use strict";Hse();Rg();An();Lg();lb();gb();jYe=Object.prototype,XYe=jYe.hasOwnProperty;o(KYe,"arrayLikeKeys");uS=KYe});function ZYe(e,t){return function(r){return e(t(r))}}var hS,JN=z(()=>{"use strict";o(ZYe,"overArg");hS=ZYe});var QYe,noe,aoe=z(()=>{"use strict";JN();QYe=hS(Object.keys,Object),noe=QYe});function tje(e){if(!bd(e))return noe(e);var t=[];for(var r in Object(e))eje.call(e,r)&&r!="constructor"&&t.push(r);return t}var JYe,eje,Mg,dS=z(()=>{"use strict";fb();aoe();JYe=Object.prototype,eje=JYe.hasOwnProperty;o(tje,"baseKeys");Mg=tje});function rje(e){return ia(e)?uS(e):Mg(e)}var cn,qu=z(()=>{"use strict";QN();dS();Ac();o(rje,"keys");cn=rje});function ije(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var soe,ooe=z(()=>{"use strict";o(ije,"nativeKeysIn");soe=ije});function sje(e){if(!Hi(e))return soe(e);var t=bd(e),r=[];for(var i in e)i=="constructor"&&(t||!aje.call(e,i))||r.push(i);return r}var nje,aje,loe,coe=z(()=>{"use strict";Go();fb();ooe();nje=Object.prototype,aje=nje.hasOwnProperty;o(sje,"baseKeysIn");loe=sje});function oje(e){return ia(e)?uS(e,!0):loe(e)}var Is,kd=z(()=>{"use strict";QN();coe();Ac();o(oje,"keysIn");Is=oje});function uje(e,t){if(Or(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||oo(e)?!0:cje.test(e)||!lje.test(e)||t!=null&&e in Object(t)}var lje,cje,Ng,fS=z(()=>{"use strict";An();Np();lje=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,cje=/^\w*$/;o(uje,"isKey");Ng=uje});var hje,Uu,yb=z(()=>{"use strict";md();hje=Ms(Object,"create"),Uu=hje});function dje(){this.__data__=Uu?Uu(null):{},this.size=0}var uoe,hoe=z(()=>{"use strict";yb();o(dje,"hashClear");uoe=dje});function fje(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var doe,foe=z(()=>{"use strict";o(fje,"hashDelete");doe=fje});function yje(e){var t=this.__data__;if(Uu){var r=t[e];return r===pje?void 0:r}return gje.call(t,e)?t[e]:void 0}var pje,mje,gje,poe,moe=z(()=>{"use strict";yb();pje="__lodash_hash_undefined__",mje=Object.prototype,gje=mje.hasOwnProperty;o(yje,"hashGet");poe=yje});function bje(e){var t=this.__data__;return Uu?t[e]!==void 0:xje.call(t,e)}var vje,xje,goe,yoe=z(()=>{"use strict";yb();vje=Object.prototype,xje=vje.hasOwnProperty;o(bje,"hashHas");goe=bje});function Cje(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Uu&&t===void 0?Tje:t,this}var Tje,voe,xoe=z(()=>{"use strict";yb();Tje="__lodash_hash_undefined__";o(Cje,"hashSet");voe=Cje});function Ig(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{"use strict";hoe();foe();moe();yoe();xoe();o(Ig,"Hash");Ig.prototype.clear=uoe;Ig.prototype.delete=doe;Ig.prototype.get=poe;Ig.prototype.has=goe;Ig.prototype.set=voe;eI=Ig});function kje(){this.__data__=[],this.size=0}var Toe,Coe=z(()=>{"use strict";o(kje,"listCacheClear");Toe=kje});function wje(e,t){for(var r=e.length;r--;)if(Vo(e[r][0],t))return r;return-1}var wd,vb=z(()=>{"use strict";Ip();o(wje,"assocIndexOf");wd=wje});function Aje(e){var t=this.__data__,r=wd(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Eje.call(t,r,1),--this.size,!0}var Sje,Eje,koe,woe=z(()=>{"use strict";vb();Sje=Array.prototype,Eje=Sje.splice;o(Aje,"listCacheDelete");koe=Aje});function _je(e){var t=this.__data__,r=wd(t,e);return r<0?void 0:t[r][1]}var Soe,Eoe=z(()=>{"use strict";vb();o(_je,"listCacheGet");Soe=_je});function Dje(e){return wd(this.__data__,e)>-1}var Aoe,_oe=z(()=>{"use strict";vb();o(Dje,"listCacheHas");Aoe=Dje});function Rje(e,t){var r=this.__data__,i=wd(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Doe,Roe=z(()=>{"use strict";vb();o(Rje,"listCacheSet");Doe=Rje});function Og(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{"use strict";Coe();woe();Eoe();_oe();Roe();o(Og,"ListCache");Og.prototype.clear=Toe;Og.prototype.delete=koe;Og.prototype.get=Soe;Og.prototype.has=Aoe;Og.prototype.set=Doe;Sd=Og});var Lje,Ed,pS=z(()=>{"use strict";md();zo();Lje=Ms(ln,"Map"),Ed=Lje});function Mje(){this.size=0,this.__data__={hash:new eI,map:new(Ed||Sd),string:new eI}}var Loe,Moe=z(()=>{"use strict";boe();xb();pS();o(Mje,"mapCacheClear");Loe=Mje});function Nje(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Noe,Ioe=z(()=>{"use strict";o(Nje,"isKeyable");Noe=Nje});function Ije(e,t){var r=e.__data__;return Noe(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Ad,bb=z(()=>{"use strict";Ioe();o(Ije,"getMapData");Ad=Ije});function Oje(e){var t=Ad(this,e).delete(e);return this.size-=t?1:0,t}var Ooe,Poe=z(()=>{"use strict";bb();o(Oje,"mapCacheDelete");Ooe=Oje});function Pje(e){return Ad(this,e).get(e)}var Boe,Foe=z(()=>{"use strict";bb();o(Pje,"mapCacheGet");Boe=Pje});function Bje(e){return Ad(this,e).has(e)}var $oe,zoe=z(()=>{"use strict";bb();o(Bje,"mapCacheHas");$oe=Bje});function Fje(e,t){var r=Ad(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Goe,Voe=z(()=>{"use strict";bb();o(Fje,"mapCacheSet");Goe=Fje});function Pg(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{"use strict";Moe();Poe();Foe();zoe();Voe();o(Pg,"MapCache");Pg.prototype.clear=Loe;Pg.prototype.delete=Ooe;Pg.prototype.get=Boe;Pg.prototype.has=$oe;Pg.prototype.set=Goe;Op=Pg});function tI(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError($je);var r=o(function(){var i=arguments,n=t?t.apply(this,i):i[0],a=r.cache;if(a.has(n))return a.get(n);var s=e.apply(this,i);return r.cache=a.set(n,s)||a,s},"memoized");return r.cache=new(tI.Cache||Op),r}var $je,Woe,qoe=z(()=>{"use strict";mS();$je="Expected a function";o(tI,"memoize");tI.Cache=Op;Woe=tI});function Gje(e){var t=Woe(e,function(i){return r.size===zje&&r.clear(),i}),r=t.cache;return t}var zje,Uoe,Hoe=z(()=>{"use strict";qoe();zje=500;o(Gje,"memoizeCapped");Uoe=Gje});var Vje,Wje,qje,Yoe,joe=z(()=>{"use strict";Hoe();Vje=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wje=/\\(\\)?/g,qje=Uoe(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Vje,function(r,i,n,a){t.push(n?a.replace(Wje,"$1"):i||r)}),t}),Yoe=qje});function Uje(e){return e==null?"":rse(e)}var gS,rI=z(()=>{"use strict";ise();o(Uje,"toString");gS=Uje});function Hje(e,t){return Or(e)?e:Ng(e,t)?[e]:Yoe(gS(e))}var _d,Tb=z(()=>{"use strict";An();fS();joe();rI();o(Hje,"castPath");_d=Hje});function jje(e){if(typeof e=="string"||oo(e))return e;var t=e+"";return t=="0"&&1/e==-Yje?"-0":t}var Yje,_c,Bg=z(()=>{"use strict";Np();Yje=1/0;o(jje,"toKey");_c=jje});function Xje(e,t){t=_d(t,e);for(var r=0,i=t.length;e!=null&&r{"use strict";Tb();Bg();o(Xje,"baseGet");Dd=Xje});function Kje(e,t,r){var i=e==null?void 0:Dd(e,t);return i===void 0?r:i}var Xoe,Koe=z(()=>{"use strict";Cb();o(Kje,"get");Xoe=Kje});function Zje(e,t){for(var r=-1,i=t.length,n=e.length;++r{"use strict";o(Zje,"arrayPush");Fg=Zje});function Qje(e){return Or(e)||Ol(e)||!!(Zoe&&e&&e[Zoe])}var Zoe,Qoe,Joe=z(()=>{"use strict";Mp();Rg();An();Zoe=ra?ra.isConcatSpreadable:void 0;o(Qje,"isFlattenable");Qoe=Qje});function ele(e,t,r,i,n){var a=-1,s=e.length;for(r||(r=Qoe),n||(n=[]);++a0&&r(l)?t>1?ele(l,t-1,r,i,n):Fg(n,l):i||(n[n.length]=l)}return n}var $g,vS=z(()=>{"use strict";yS();Joe();o(ele,"baseFlatten");$g=ele});function Jje(e){var t=e==null?0:e.length;return t?$g(e,1):[]}var Wo,iI=z(()=>{"use strict";vS();o(Jje,"flatten");Wo=Jje});function eXe(e){return nS(oS(e,void 0,Wo),e+"")}var tle,rle=z(()=>{"use strict";iI();XN();HN();o(eXe,"flatRest");tle=eXe});var tXe,zg,xS=z(()=>{"use strict";JN();tXe=hS(Object.getPrototypeOf,Object),zg=tXe});function oXe(e){if(!yn(e)||es(e)!=rXe)return!1;var t=zg(e);if(t===null)return!0;var r=aXe.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&ile.call(r)==sXe}var rXe,iXe,nXe,ile,aXe,sXe,nle,ale=z(()=>{"use strict";fd();xS();Il();rXe="[object Object]",iXe=Function.prototype,nXe=Object.prototype,ile=iXe.toString,aXe=nXe.hasOwnProperty,sXe=ile.call(Object);o(oXe,"isPlainObject");nle=oXe});function gXe(e){return mXe.test(e)}var lXe,cXe,uXe,hXe,dXe,fXe,pXe,mXe,sle,ole=z(()=>{"use strict";lXe="\\ud800-\\udfff",cXe="\\u0300-\\u036f",uXe="\\ufe20-\\ufe2f",hXe="\\u20d0-\\u20ff",dXe=cXe+uXe+hXe,fXe="\\ufe0e\\ufe0f",pXe="\\u200d",mXe=RegExp("["+pXe+lXe+dXe+fXe+"]");o(gXe,"hasUnicode");sle=gXe});function yXe(e,t,r,i){var n=-1,a=e==null?0:e.length;for(i&&a&&(r=e[++n]);++n{"use strict";o(yXe,"arrayReduce");lle=yXe});function vXe(){this.__data__=new Sd,this.size=0}var ule,hle=z(()=>{"use strict";xb();o(vXe,"stackClear");ule=vXe});function xXe(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var dle,fle=z(()=>{"use strict";o(xXe,"stackDelete");dle=xXe});function bXe(e){return this.__data__.get(e)}var ple,mle=z(()=>{"use strict";o(bXe,"stackGet");ple=bXe});function TXe(e){return this.__data__.has(e)}var gle,yle=z(()=>{"use strict";o(TXe,"stackHas");gle=TXe});function kXe(e,t){var r=this.__data__;if(r instanceof Sd){var i=r.__data__;if(!Ed||i.length{"use strict";xb();pS();mS();CXe=200;o(kXe,"stackSet");vle=kXe});function Gg(e){var t=this.__data__=new Sd(e);this.size=t.size}var Dc,kb=z(()=>{"use strict";xb();hle();fle();mle();yle();xle();o(Gg,"Stack");Gg.prototype.clear=ule;Gg.prototype.delete=dle;Gg.prototype.get=ple;Gg.prototype.has=gle;Gg.prototype.set=vle;Dc=Gg});function wXe(e,t){return e&&Ec(t,cn(t),e)}var ble,Tle=z(()=>{"use strict";_g();qu();o(wXe,"baseAssign");ble=wXe});function SXe(e,t){return e&&Ec(t,Is(t),e)}var Cle,kle=z(()=>{"use strict";_g();kd();o(SXe,"baseAssignIn");Cle=SXe});function AXe(e,t){if(t)return e.slice();var r=e.length,i=Ele?Ele(r):new e.constructor(r);return e.copy(i),i}var Ale,wle,EXe,Sle,Ele,bS,nI=z(()=>{"use strict";zo();Ale=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wle=Ale&&typeof module=="object"&&module&&!module.nodeType&&module,EXe=wle&&wle.exports===Ale,Sle=EXe?ln.Buffer:void 0,Ele=Sle?Sle.allocUnsafe:void 0;o(AXe,"cloneBuffer");bS=AXe});function _Xe(e,t){for(var r=-1,i=e==null?0:e.length,n=0,a=[];++r{"use strict";o(_Xe,"arrayFilter");TS=_Xe});function DXe(){return[]}var CS,sI=z(()=>{"use strict";o(DXe,"stubArray");CS=DXe});var RXe,LXe,_le,MXe,Vg,kS=z(()=>{"use strict";aI();sI();RXe=Object.prototype,LXe=RXe.propertyIsEnumerable,_le=Object.getOwnPropertySymbols,MXe=_le?function(e){return e==null?[]:(e=Object(e),TS(_le(e),function(t){return LXe.call(e,t)}))}:CS,Vg=MXe});function NXe(e,t){return Ec(e,Vg(e),t)}var Dle,Rle=z(()=>{"use strict";_g();kS();o(NXe,"copySymbols");Dle=NXe});var IXe,OXe,wS,oI=z(()=>{"use strict";yS();xS();kS();sI();IXe=Object.getOwnPropertySymbols,OXe=IXe?function(e){for(var t=[];e;)Fg(t,Vg(e)),e=zg(e);return t}:CS,wS=OXe});function PXe(e,t){return Ec(e,wS(e),t)}var Lle,Mle=z(()=>{"use strict";_g();oI();o(PXe,"copySymbolsIn");Lle=PXe});function BXe(e,t,r){var i=t(e);return Or(e)?i:Fg(i,r(e))}var SS,lI=z(()=>{"use strict";yS();An();o(BXe,"baseGetAllKeys");SS=BXe});function FXe(e){return SS(e,cn,Vg)}var wb,cI=z(()=>{"use strict";lI();kS();qu();o(FXe,"getAllKeys");wb=FXe});function $Xe(e){return SS(e,Is,wS)}var Nle,Ile=z(()=>{"use strict";lI();oI();kd();o($Xe,"getAllKeysIn");Nle=$Xe});var zXe,ES,Ole=z(()=>{"use strict";md();zo();zXe=Ms(ln,"DataView"),ES=zXe});var GXe,AS,Ple=z(()=>{"use strict";md();zo();GXe=Ms(ln,"Promise"),AS=GXe});var VXe,Rd,uI=z(()=>{"use strict";md();zo();VXe=Ms(ln,"Set"),Rd=VXe});var Ble,WXe,Fle,$le,zle,Gle,qXe,UXe,HXe,YXe,jXe,Pp,lo,Bp=z(()=>{"use strict";Ole();pS();Ple();uI();Cse();fd();VN();Ble="[object Map]",WXe="[object Object]",Fle="[object Promise]",$le="[object Set]",zle="[object WeakMap]",Gle="[object DataView]",qXe=Gu(ES),UXe=Gu(Ed),HXe=Gu(AS),YXe=Gu(Rd),jXe=Gu(rS),Pp=es;(ES&&Pp(new ES(new ArrayBuffer(1)))!=Gle||Ed&&Pp(new Ed)!=Ble||AS&&Pp(AS.resolve())!=Fle||Rd&&Pp(new Rd)!=$le||rS&&Pp(new rS)!=zle)&&(Pp=o(function(e){var t=es(e),r=t==WXe?e.constructor:void 0,i=r?Gu(r):"";if(i)switch(i){case qXe:return Gle;case UXe:return Ble;case HXe:return Fle;case YXe:return $le;case jXe:return zle}return t},"getTag"));lo=Pp});function ZXe(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&KXe.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var XXe,KXe,Vle,Wle=z(()=>{"use strict";XXe=Object.prototype,KXe=XXe.hasOwnProperty;o(ZXe,"initCloneArray");Vle=ZXe});var QXe,Wg,hI=z(()=>{"use strict";zo();QXe=ln.Uint8Array,Wg=QXe});function JXe(e){var t=new e.constructor(e.byteLength);return new Wg(t).set(new Wg(e)),t}var qg,_S=z(()=>{"use strict";hI();o(JXe,"cloneArrayBuffer");qg=JXe});function eKe(e,t){var r=t?qg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var qle,Ule=z(()=>{"use strict";_S();o(eKe,"cloneDataView");qle=eKe});function rKe(e){var t=new e.constructor(e.source,tKe.exec(e));return t.lastIndex=e.lastIndex,t}var tKe,Hle,Yle=z(()=>{"use strict";tKe=/\w*$/;o(rKe,"cloneRegExp");Hle=rKe});function iKe(e){return Xle?Object(Xle.call(e)):{}}var jle,Xle,Kle,Zle=z(()=>{"use strict";Mp();jle=ra?ra.prototype:void 0,Xle=jle?jle.valueOf:void 0;o(iKe,"cloneSymbol");Kle=iKe});function nKe(e,t){var r=t?qg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var DS,dI=z(()=>{"use strict";_S();o(nKe,"cloneTypedArray");DS=nKe});function wKe(e,t,r){var i=e.constructor;switch(t){case fKe:return qg(e);case aKe:case sKe:return new i(+e);case pKe:return qle(e,r);case mKe:case gKe:case yKe:case vKe:case xKe:case bKe:case TKe:case CKe:case kKe:return DS(e,r);case oKe:return new i;case lKe:case hKe:return new i(e);case cKe:return Hle(e);case uKe:return new i;case dKe:return Kle(e)}}var aKe,sKe,oKe,lKe,cKe,uKe,hKe,dKe,fKe,pKe,mKe,gKe,yKe,vKe,xKe,bKe,TKe,CKe,kKe,Qle,Jle=z(()=>{"use strict";_S();Ule();Yle();Zle();dI();aKe="[object Boolean]",sKe="[object Date]",oKe="[object Map]",lKe="[object Number]",cKe="[object RegExp]",uKe="[object Set]",hKe="[object String]",dKe="[object Symbol]",fKe="[object ArrayBuffer]",pKe="[object DataView]",mKe="[object Float32Array]",gKe="[object Float64Array]",yKe="[object Int8Array]",vKe="[object Int16Array]",xKe="[object Int32Array]",bKe="[object Uint8Array]",TKe="[object Uint8ClampedArray]",CKe="[object Uint16Array]",kKe="[object Uint32Array]";o(wKe,"initCloneByTag");Qle=wKe});function SKe(e){return typeof e.constructor=="function"&&!bd(e)?wse(zg(e)):{}}var RS,fI=z(()=>{"use strict";Sse();xS();fb();o(SKe,"initCloneObject");RS=SKe});function AKe(e){return yn(e)&&lo(e)==EKe}var EKe,ece,tce=z(()=>{"use strict";Bp();Il();EKe="[object Map]";o(AKe,"baseIsMap");ece=AKe});var rce,_Ke,ice,nce=z(()=>{"use strict";tce();pb();cS();rce=Wu&&Wu.isMap,_Ke=rce?Td(rce):ece,ice=_Ke});function RKe(e){return yn(e)&&lo(e)==DKe}var DKe,ace,sce=z(()=>{"use strict";Bp();Il();DKe="[object Set]";o(RKe,"baseIsSet");ace=RKe});var oce,LKe,lce,cce=z(()=>{"use strict";sce();pb();cS();oce=Wu&&Wu.isSet,LKe=oce?Td(oce):ace,lce=LKe});function LS(e,t,r,i,n,a){var s,l=t&MKe,u=t&NKe,h=t&IKe;if(r&&(s=n?r(e,i,n,a):r(e)),s!==void 0)return s;if(!Hi(e))return e;var d=Or(e);if(d){if(s=Vle(e),!l)return iS(e,s)}else{var f=lo(e),p=f==hce||f==$Ke;if(Pl(e))return bS(e,l);if(f==dce||f==uce||p&&!n){if(s=u||p?{}:RS(e),!l)return u?Lle(e,Cle(s,e)):Dle(e,ble(s,e))}else{if(!Ri[f])return n?e:{};s=Qle(e,f,l)}}a||(a=new Dc);var m=a.get(e);if(m)return m;a.set(e,s),lce(e)?e.forEach(function(v){s.add(LS(v,t,r,v,e,a))}):ice(e)&&e.forEach(function(v,x){s.set(x,LS(v,t,r,x,e,a))});var g=h?u?Nle:wb:u?Is:cn,y=d?void 0:g(e);return aS(y||e,function(v,x){y&&(x=v,v=e[x]),vd(s,x,LS(v,t,r,x,e,a))}),s}var MKe,NKe,IKe,uce,OKe,PKe,BKe,FKe,hce,$Ke,zKe,GKe,dce,VKe,WKe,qKe,UKe,HKe,YKe,jKe,XKe,KKe,ZKe,QKe,JKe,eZe,tZe,rZe,iZe,Ri,MS,pI=z(()=>{"use strict";kb();YN();ub();Tle();kle();nI();WN();Rle();Mle();cI();Ile();Bp();Wle();Jle();fI();An();Lg();nce();Go();cce();qu();kd();MKe=1,NKe=2,IKe=4,uce="[object Arguments]",OKe="[object Array]",PKe="[object Boolean]",BKe="[object Date]",FKe="[object Error]",hce="[object Function]",$Ke="[object GeneratorFunction]",zKe="[object Map]",GKe="[object Number]",dce="[object Object]",VKe="[object RegExp]",WKe="[object Set]",qKe="[object String]",UKe="[object Symbol]",HKe="[object WeakMap]",YKe="[object ArrayBuffer]",jKe="[object DataView]",XKe="[object Float32Array]",KKe="[object Float64Array]",ZKe="[object Int8Array]",QKe="[object Int16Array]",JKe="[object Int32Array]",eZe="[object Uint8Array]",tZe="[object Uint8ClampedArray]",rZe="[object Uint16Array]",iZe="[object Uint32Array]",Ri={};Ri[uce]=Ri[OKe]=Ri[YKe]=Ri[jKe]=Ri[PKe]=Ri[BKe]=Ri[XKe]=Ri[KKe]=Ri[ZKe]=Ri[QKe]=Ri[JKe]=Ri[zKe]=Ri[GKe]=Ri[dce]=Ri[VKe]=Ri[WKe]=Ri[qKe]=Ri[UKe]=Ri[eZe]=Ri[tZe]=Ri[rZe]=Ri[iZe]=!0;Ri[FKe]=Ri[hce]=Ri[HKe]=!1;o(LS,"baseClone");MS=LS});function aZe(e){return MS(e,nZe)}var nZe,mI,fce=z(()=>{"use strict";pI();nZe=4;o(aZe,"clone");mI=aZe});function lZe(e){return MS(e,sZe|oZe)}var sZe,oZe,gI,pce=z(()=>{"use strict";pI();sZe=1,oZe=4;o(lZe,"cloneDeep");gI=lZe});function uZe(e){return this.__data__.set(e,cZe),this}var cZe,mce,gce=z(()=>{"use strict";cZe="__lodash_hash_undefined__";o(uZe,"setCacheAdd");mce=uZe});function hZe(e){return this.__data__.has(e)}var yce,vce=z(()=>{"use strict";o(hZe,"setCacheHas");yce=hZe});function NS(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Op;++t{"use strict";mS();gce();vce();o(NS,"SetCache");NS.prototype.add=NS.prototype.push=mce;NS.prototype.has=yce;IS=NS});function dZe(e,t){for(var r=-1,i=e==null?0:e.length;++r{"use strict";o(dZe,"arraySome");xce=dZe});function fZe(e,t){return e.has(t)}var OS,vI=z(()=>{"use strict";o(fZe,"cacheHas");OS=fZe});function gZe(e,t,r,i,n,a){var s=r&pZe,l=e.length,u=t.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(e),d=a.get(t);if(h&&d)return h==t&&d==e;var f=-1,p=!0,m=r&mZe?new IS:void 0;for(a.set(e,t),a.set(t,e);++f{"use strict";yI();bce();vI();pZe=1,mZe=2;o(gZe,"equalArrays");PS=gZe});function yZe(e){var t=-1,r=Array(e.size);return e.forEach(function(i,n){r[++t]=[n,i]}),r}var Tce,Cce=z(()=>{"use strict";o(yZe,"mapToArray");Tce=yZe});function vZe(e){var t=-1,r=Array(e.size);return e.forEach(function(i){r[++t]=i}),r}var Ug,BS=z(()=>{"use strict";o(vZe,"setToArray");Ug=vZe});function MZe(e,t,r,i,n,a,s){switch(r){case LZe:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case RZe:return!(e.byteLength!=t.byteLength||!a(new Wg(e),new Wg(t)));case TZe:case CZe:case SZe:return Vo(+e,+t);case kZe:return e.name==t.name&&e.message==t.message;case EZe:case _Ze:return e==t+"";case wZe:var l=Tce;case AZe:var u=i&xZe;if(l||(l=Ug),e.size!=t.size&&!u)return!1;var h=s.get(e);if(h)return h==t;i|=bZe,s.set(e,t);var d=PS(l(e),l(t),i,n,a,s);return s.delete(e),d;case DZe:if(bI)return bI.call(e)==bI.call(t)}return!1}var xZe,bZe,TZe,CZe,kZe,wZe,SZe,EZe,AZe,_Ze,DZe,RZe,LZe,kce,bI,wce,Sce=z(()=>{"use strict";Mp();hI();Ip();xI();Cce();BS();xZe=1,bZe=2,TZe="[object Boolean]",CZe="[object Date]",kZe="[object Error]",wZe="[object Map]",SZe="[object Number]",EZe="[object RegExp]",AZe="[object Set]",_Ze="[object String]",DZe="[object Symbol]",RZe="[object ArrayBuffer]",LZe="[object DataView]",kce=ra?ra.prototype:void 0,bI=kce?kce.valueOf:void 0;o(MZe,"equalByTag");wce=MZe});function PZe(e,t,r,i,n,a){var s=r&NZe,l=wb(e),u=l.length,h=wb(t),d=h.length;if(u!=d&&!s)return!1;for(var f=u;f--;){var p=l[f];if(!(s?p in t:OZe.call(t,p)))return!1}var m=a.get(e),g=a.get(t);if(m&&g)return m==t&&g==e;var y=!0;a.set(e,t),a.set(t,e);for(var v=s;++f{"use strict";cI();NZe=1,IZe=Object.prototype,OZe=IZe.hasOwnProperty;o(PZe,"equalObjects");Ece=PZe});function $Ze(e,t,r,i,n,a){var s=Or(e),l=Or(t),u=s?Dce:lo(e),h=l?Dce:lo(t);u=u==_ce?FS:u,h=h==_ce?FS:h;var d=u==FS,f=h==FS,p=u==h;if(p&&Pl(e)){if(!Pl(t))return!1;s=!0,d=!1}if(p&&!d)return a||(a=new Dc),s||Cd(e)?PS(e,t,r,i,n,a):wce(e,t,u,r,i,n,a);if(!(r&BZe)){var m=d&&Rce.call(e,"__wrapped__"),g=f&&Rce.call(t,"__wrapped__");if(m||g){var y=m?e.value():e,v=g?t.value():t;return a||(a=new Dc),n(y,v,r,i,a)}}return p?(a||(a=new Dc),Ece(e,t,r,i,n,a)):!1}var BZe,_ce,Dce,FS,FZe,Rce,Lce,Mce=z(()=>{"use strict";kb();xI();Sce();Ace();Bp();An();Lg();gb();BZe=1,_ce="[object Arguments]",Dce="[object Array]",FS="[object Object]",FZe=Object.prototype,Rce=FZe.hasOwnProperty;o($Ze,"baseIsEqualDeep");Lce=$Ze});function Nce(e,t,r,i,n){return e===t?!0:e==null||t==null||!yn(e)&&!yn(t)?e!==e&&t!==t:Lce(e,t,r,i,Nce,n)}var $S,TI=z(()=>{"use strict";Mce();Il();o(Nce,"baseIsEqual");$S=Nce});function VZe(e,t,r,i){var n=r.length,a=n,s=!i;if(e==null)return!a;for(e=Object(e);n--;){var l=r[n];if(s&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++n{"use strict";kb();TI();zZe=1,GZe=2;o(VZe,"baseIsMatch");Ice=VZe});function WZe(e){return e===e&&!Hi(e)}var zS,CI=z(()=>{"use strict";Go();o(WZe,"isStrictComparable");zS=WZe});function qZe(e){for(var t=cn(e),r=t.length;r--;){var i=t[r],n=e[i];t[r]=[i,n,zS(n)]}return t}var Pce,Bce=z(()=>{"use strict";CI();qu();o(qZe,"getMatchData");Pce=qZe});function UZe(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var GS,kI=z(()=>{"use strict";o(UZe,"matchesStrictComparable");GS=UZe});function HZe(e){var t=Pce(e);return t.length==1&&t[0][2]?GS(t[0][0],t[0][1]):function(r){return r===e||Ice(r,e,t)}}var Fce,$ce=z(()=>{"use strict";Oce();Bce();kI();o(HZe,"baseMatches");Fce=HZe});function YZe(e,t){return e!=null&&t in Object(e)}var zce,Gce=z(()=>{"use strict";o(YZe,"baseHasIn");zce=YZe});function jZe(e,t,r){t=_d(t,e);for(var i=-1,n=t.length,a=!1;++i{"use strict";Tb();Rg();An();lb();lS();Bg();o(jZe,"hasPath");VS=jZe});function XZe(e,t){return e!=null&&VS(e,t,zce)}var WS,SI=z(()=>{"use strict";Gce();wI();o(XZe,"hasIn");WS=XZe});function QZe(e,t){return Ng(e)&&zS(t)?GS(_c(e),t):function(r){var i=Xoe(r,e);return i===void 0&&i===t?WS(r,e):$S(t,i,KZe|ZZe)}}var KZe,ZZe,Vce,Wce=z(()=>{"use strict";TI();Koe();SI();fS();CI();kI();Bg();KZe=1,ZZe=2;o(QZe,"baseMatchesProperty");Vce=QZe});function JZe(e){return function(t){return t?.[e]}}var qS,EI=z(()=>{"use strict";o(JZe,"baseProperty");qS=JZe});function eQe(e){return function(t){return Dd(t,e)}}var qce,Uce=z(()=>{"use strict";Cb();o(eQe,"basePropertyDeep");qce=eQe});function tQe(e){return Ng(e)?qS(_c(e)):qce(e)}var Hce,Yce=z(()=>{"use strict";EI();Uce();fS();Bg();o(tQe,"property");Hce=tQe});function rQe(e){return typeof e=="function"?e:e==null?Ls:typeof e=="object"?Or(e)?Vce(e[0],e[1]):Fce(e):Hce(e)}var Ia,Hu=z(()=>{"use strict";$ce();Wce();pd();An();Yce();o(rQe,"baseIteratee");Ia=rQe});function iQe(e){return function(t,r,i){for(var n=-1,a=Object(t),s=i(t),l=s.length;l--;){var u=s[e?l:++n];if(r(a[u],u,a)===!1)break}return t}}var jce,Xce=z(()=>{"use strict";o(iQe,"createBaseFor");jce=iQe});var nQe,Hg,US=z(()=>{"use strict";Xce();nQe=jce(),Hg=nQe});function aQe(e,t){return e&&Hg(e,t,cn)}var Yg,HS=z(()=>{"use strict";US();qu();o(aQe,"baseForOwn");Yg=aQe});function sQe(e,t){return function(r,i){if(r==null)return r;if(!ia(r))return e(r,i);for(var n=r.length,a=t?n:-1,s=Object(r);(t?a--:++a{"use strict";Ac();o(sQe,"createBaseEach");Kce=sQe});var oQe,Ld,Sb=z(()=>{"use strict";HS();Zce();oQe=Kce(Yg),Ld=oQe});var lQe,YS,Qce=z(()=>{"use strict";zo();lQe=o(function(){return ln.Date.now()},"now"),YS=lQe});var Jce,cQe,uQe,AI,eue=z(()=>{"use strict";hb();Ip();db();kd();Jce=Object.prototype,cQe=Jce.hasOwnProperty,uQe=xd(function(e,t){e=Object(e);var r=-1,i=t.length,n=i>2?t[2]:void 0;for(n&&Vu(t[0],t[1],n)&&(i=1);++r{"use strict";cb();Ip();o(hQe,"assignMergeValue");Eb=hQe});function dQe(e){return yn(e)&&ia(e)}var jS,DI=z(()=>{"use strict";Ac();Il();o(dQe,"isArrayLikeObject");jS=dQe});function fQe(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Ab,RI=z(()=>{"use strict";o(fQe,"safeGet");Ab=fQe});function pQe(e){return Ec(e,Is(e))}var tue,rue=z(()=>{"use strict";_g();kd();o(pQe,"toPlainObject");tue=pQe});function mQe(e,t,r,i,n,a,s){var l=Ab(e,r),u=Ab(t,r),h=s.get(u);if(h){Eb(e,r,h);return}var d=a?a(l,u,r+"",e,t,s):void 0,f=d===void 0;if(f){var p=Or(u),m=!p&&Pl(u),g=!p&&!m&&Cd(u);d=u,p||m||g?Or(l)?d=l:jS(l)?d=iS(l):m?(f=!1,d=bS(u,!0)):g?(f=!1,d=DS(u,!0)):d=[]:nle(u)||Ol(u)?(d=l,Ol(l)?d=tue(l):(!Hi(l)||Sc(l))&&(d=RS(u))):f=!1}f&&(s.set(u,d),n(d,u,i,a,s),s.delete(u)),Eb(e,r,d)}var iue,nue=z(()=>{"use strict";_I();nI();dI();WN();fI();Rg();An();DI();Lg();ob();Go();ale();gb();RI();rue();o(mQe,"baseMergeDeep");iue=mQe});function aue(e,t,r,i,n){e!==t&&Hg(t,function(a,s){if(n||(n=new Dc),Hi(a))iue(e,t,s,r,aue,i,n);else{var l=i?i(Ab(e,s),a,s+"",e,t,n):void 0;l===void 0&&(l=a),Eb(e,s,l)}},Is)}var sue,oue=z(()=>{"use strict";kb();_I();US();nue();Go();kd();RI();o(aue,"baseMerge");sue=aue});function gQe(e,t,r){for(var i=-1,n=e==null?0:e.length;++i{"use strict";o(gQe,"arrayIncludesWith");lue=gQe});function yQe(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var Md,uue=z(()=>{"use strict";o(yQe,"last");Md=yQe});function vQe(e){return typeof e=="function"?e:Ls}var jg,XS=z(()=>{"use strict";pd();o(vQe,"castFunction");jg=vQe});function xQe(e,t){var r=Or(e)?aS:Ld;return r(e,jg(t))}var tt,LI=z(()=>{"use strict";YN();Sb();XS();An();o(xQe,"forEach");tt=xQe});var hue=z(()=>{"use strict";LI()});function bQe(e,t){var r=[];return Ld(e,function(i,n,a){t(i,n,a)&&r.push(i)}),r}var due,fue=z(()=>{"use strict";Sb();o(bQe,"baseFilter");due=bQe});function TQe(e,t){var r=Or(e)?TS:due;return r(e,Ia(t,3))}var ts,pue=z(()=>{"use strict";aI();fue();Hu();An();o(TQe,"filter");ts=TQe});function CQe(e){return function(t,r,i){var n=Object(t);if(!ia(t)){var a=Ia(r,3);t=cn(t),r=o(function(l){return a(n[l],l,n)},"predicate")}var s=e(t,r,i);return s>-1?n[a?t[s]:s]:void 0}}var mue,gue=z(()=>{"use strict";Hu();Ac();qu();o(CQe,"createFind");mue=CQe});function wQe(e,t,r){var i=e==null?0:e.length;if(!i)return-1;var n=r==null?0:dse(r);return n<0&&(n=kQe(i+n,0)),sS(e,Ia(t,3),n)}var kQe,yue,vue=z(()=>{"use strict";jN();Hu();fse();kQe=Math.max;o(wQe,"findIndex");yue=wQe});var SQe,Xg,xue=z(()=>{"use strict";gue();vue();SQe=mue(yue),Xg=SQe});function EQe(e,t){var r=-1,i=ia(e)?Array(e.length):[];return Ld(e,function(n,a,s){i[++r]=t(n,a,s)}),i}var KS,MI=z(()=>{"use strict";Sb();Ac();o(EQe,"baseMap");KS=EQe});function AQe(e,t){var r=Or(e)?wc:KS;return r(e,Ia(t,3))}var Jr,bue=z(()=>{"use strict";sb();Hu();MI();An();o(AQe,"map");Jr=AQe});function _Qe(e,t){return e==null?e:Hg(e,jg(t),Is)}var NI,Tue=z(()=>{"use strict";US();XS();kd();o(_Qe,"forIn");NI=_Qe});function DQe(e,t){return e&&Yg(e,jg(t))}var II,Cue=z(()=>{"use strict";HS();XS();o(DQe,"forOwn");II=DQe});function RQe(e,t){return e>t}var kue,wue=z(()=>{"use strict";o(RQe,"baseGt");kue=RQe});function NQe(e,t){return e!=null&&MQe.call(e,t)}var LQe,MQe,Sue,Eue=z(()=>{"use strict";LQe=Object.prototype,MQe=LQe.hasOwnProperty;o(NQe,"baseHas");Sue=NQe});function IQe(e,t){return e!=null&&VS(e,t,Sue)}var _b,Aue=z(()=>{"use strict";Eue();wI();o(IQe,"has");_b=IQe});function PQe(e){return typeof e=="string"||!Or(e)&&yn(e)&&es(e)==OQe}var OQe,_ue,Due=z(()=>{"use strict";fd();An();Il();OQe="[object String]";o(PQe,"isString");_ue=PQe});function BQe(e,t){return wc(t,function(r){return e[r]})}var Rue,Lue=z(()=>{"use strict";sb();o(BQe,"baseValues");Rue=BQe});function FQe(e){return e==null?[]:Rue(e,cn(e))}var co,Mue=z(()=>{"use strict";Lue();qu();o(FQe,"values");co=FQe});function WQe(e){if(e==null)return!0;if(ia(e)&&(Or(e)||typeof e=="string"||typeof e.splice=="function"||Pl(e)||Cd(e)||Ol(e)))return!e.length;var t=lo(e);if(t==$Qe||t==zQe)return!e.size;if(bd(e))return!Mg(e).length;for(var r in e)if(VQe.call(e,r))return!1;return!0}var $Qe,zQe,GQe,VQe,ZS,Nue=z(()=>{"use strict";dS();Bp();Rg();An();Ac();Lg();fb();gb();$Qe="[object Map]",zQe="[object Set]",GQe=Object.prototype,VQe=GQe.hasOwnProperty;o(WQe,"isEmpty");ZS=WQe});function qQe(e){return e===void 0}var yi,Iue=z(()=>{"use strict";o(qQe,"isUndefined");yi=qQe});function UQe(e,t){return e{"use strict";o(UQe,"baseLt");QS=UQe});function HQe(e,t){var r={};return t=Ia(t,3),Yg(e,function(i,n,a){yd(r,n,t(i,n,a))}),r}var Fp,Oue=z(()=>{"use strict";cb();HS();Hu();o(HQe,"mapValues");Fp=HQe});function YQe(e,t,r){for(var i=-1,n=e.length;++i{"use strict";Np();o(YQe,"baseExtremum");Kg=YQe});function jQe(e){return e&&e.length?Kg(e,Ls,kue):void 0}var Os,Pue=z(()=>{"use strict";JS();wue();pd();o(jQe,"max");Os=jQe});var XQe,Zg,Bue=z(()=>{"use strict";oue();qse();XQe=Wse(function(e,t,r){sue(e,t,r)}),Zg=XQe});function KQe(e){return e&&e.length?Kg(e,Ls,QS):void 0}var Yu,Fue=z(()=>{"use strict";JS();OI();pd();o(KQe,"min");Yu=KQe});function ZQe(e,t){return e&&e.length?Kg(e,Ia(t,2),QS):void 0}var $p,$ue=z(()=>{"use strict";JS();Hu();OI();o(ZQe,"minBy");$p=ZQe});function QQe(e,t,r,i){if(!Hi(e))return e;t=_d(t,e);for(var n=-1,a=t.length,s=a-1,l=e;l!=null&&++n{"use strict";ub();Tb();lb();Go();Bg();o(QQe,"baseSet");zue=QQe});function JQe(e,t,r){for(var i=-1,n=t.length,a={};++i{"use strict";Cb();Gue();Tb();o(JQe,"basePickBy");Vue=JQe});function eJe(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}var que,Uue=z(()=>{"use strict";o(eJe,"baseSortBy");que=eJe});function tJe(e,t){if(e!==t){var r=e!==void 0,i=e===null,n=e===e,a=oo(e),s=t!==void 0,l=t===null,u=t===t,h=oo(t);if(!l&&!h&&!a&&e>t||a&&s&&u&&!l&&!h||i&&s&&u||!r&&u||!n)return 1;if(!i&&!a&&!h&&e{"use strict";Np();o(tJe,"compareAscending");Hue=tJe});function rJe(e,t,r){for(var i=-1,n=e.criteria,a=t.criteria,s=n.length,l=r.length;++i=l)return u;var h=r[i];return u*(h=="desc"?-1:1)}}return e.index-t.index}var jue,Xue=z(()=>{"use strict";Yue();o(rJe,"compareMultiple");jue=rJe});function iJe(e,t,r){t.length?t=wc(t,function(a){return Or(a)?function(s){return Dd(s,a.length===1?a[0]:a)}:a}):t=[Ls];var i=-1;t=wc(t,Td(Ia));var n=KS(e,function(a,s,l){var u=wc(t,function(h){return h(a)});return{criteria:u,index:++i,value:a}});return que(n,function(a,s){return jue(a,s,r)})}var Kue,Zue=z(()=>{"use strict";sb();Cb();Hu();MI();Uue();pb();Xue();pd();An();o(iJe,"baseOrderBy");Kue=iJe});var nJe,Que,Jue=z(()=>{"use strict";EI();nJe=qS("length"),Que=nJe});function gJe(e){for(var t=ehe.lastIndex=0;ehe.test(e);)++t;return t}var the,aJe,sJe,oJe,lJe,cJe,uJe,PI,BI,hJe,rhe,ihe,nhe,dJe,ahe,she,fJe,pJe,mJe,ehe,ohe,lhe=z(()=>{"use strict";the="\\ud800-\\udfff",aJe="\\u0300-\\u036f",sJe="\\ufe20-\\ufe2f",oJe="\\u20d0-\\u20ff",lJe=aJe+sJe+oJe,cJe="\\ufe0e\\ufe0f",uJe="["+the+"]",PI="["+lJe+"]",BI="\\ud83c[\\udffb-\\udfff]",hJe="(?:"+PI+"|"+BI+")",rhe="[^"+the+"]",ihe="(?:\\ud83c[\\udde6-\\uddff]){2}",nhe="[\\ud800-\\udbff][\\udc00-\\udfff]",dJe="\\u200d",ahe=hJe+"?",she="["+cJe+"]?",fJe="(?:"+dJe+"(?:"+[rhe,ihe,nhe].join("|")+")"+she+ahe+")*",pJe=she+ahe+fJe,mJe="(?:"+[rhe+PI+"?",PI,ihe,nhe,uJe].join("|")+")",ehe=RegExp(BI+"(?="+BI+")|"+mJe+pJe,"g");o(gJe,"unicodeSize");ohe=gJe});function yJe(e){return sle(e)?ohe(e):Que(e)}var che,uhe=z(()=>{"use strict";Jue();ole();lhe();o(yJe,"stringSize");che=yJe});function vJe(e,t){return Vue(e,t,function(r,i){return WS(e,i)})}var hhe,dhe=z(()=>{"use strict";Wue();SI();o(vJe,"basePick");hhe=vJe});var xJe,zp,fhe=z(()=>{"use strict";dhe();rle();xJe=tle(function(e,t){return e==null?{}:hhe(e,t)}),zp=xJe});function CJe(e,t,r,i){for(var n=-1,a=TJe(bJe((t-e)/(r||1)),0),s=Array(a);a--;)s[i?a:++n]=e,e+=r;return s}var bJe,TJe,phe,mhe=z(()=>{"use strict";bJe=Math.ceil,TJe=Math.max;o(CJe,"baseRange");phe=CJe});function kJe(e){return function(t,r,i){return i&&typeof i!="number"&&Vu(t,r,i)&&(r=i=void 0),t=Eg(t),r===void 0?(r=t,t=0):r=Eg(r),i=i===void 0?t{"use strict";mhe();db();GN();o(kJe,"createRange");ghe=kJe});var wJe,qo,vhe=z(()=>{"use strict";yhe();wJe=ghe(),qo=wJe});function SJe(e,t,r,i,n){return n(e,function(a,s,l){r=i?(i=!1,a):t(r,a,s,l)}),r}var xhe,bhe=z(()=>{"use strict";o(SJe,"baseReduce");xhe=SJe});function EJe(e,t,r){var i=Or(e)?lle:xhe,n=arguments.length<3;return i(e,Ia(t,4),r,n,Ld)}var Rc,The=z(()=>{"use strict";cle();Sb();Hu();bhe();An();o(EJe,"reduce");Rc=EJe});function DJe(e){if(e==null)return 0;if(ia(e))return _ue(e)?che(e):e.length;var t=lo(e);return t==AJe||t==_Je?e.size:Mg(e).length}var AJe,_Je,FI,Che=z(()=>{"use strict";dS();Bp();Ac();Due();uhe();AJe="[object Map]",_Je="[object Set]";o(DJe,"size");FI=DJe});var RJe,Lc,khe=z(()=>{"use strict";vS();Zue();hb();db();RJe=xd(function(e,t){if(e==null)return[];var r=t.length;return r>1&&Vu(e,t[0],t[1])?t=[]:r>2&&Vu(t[0],t[1],t[2])&&(t=[t[0]]),Kue(e,$g(t,1),[])}),Lc=RJe});var LJe,MJe,whe,She=z(()=>{"use strict";uI();Dse();BS();LJe=1/0,MJe=Rd&&1/Ug(new Rd([,-0]))[1]==LJe?function(e){return new Rd(e)}:_se,whe=MJe});function IJe(e,t,r){var i=-1,n=zse,a=e.length,s=!0,l=[],u=l;if(r)s=!1,n=lue;else if(a>=NJe){var h=t?null:whe(e);if(h)return Ug(h);s=!1,n=OS,u=new IS}else u=t?[]:l;e:for(;++i{"use strict";yI();Gse();cue();vI();She();BS();NJe=200;o(IJe,"baseUniq");Ehe=IJe});var OJe,$I,_he=z(()=>{"use strict";vS();hb();Ahe();DI();OJe=xd(function(e){return Ehe($g(e,1,jS,!0))}),$I=OJe});function BJe(e){var t=++PJe;return gS(e)+t}var PJe,Gp,Dhe=z(()=>{"use strict";rI();PJe=0;o(BJe,"uniqueId");Gp=BJe});function FJe(e,t,r){for(var i=-1,n=e.length,a=t.length,s={};++i{"use strict";o(FJe,"baseZipObject");Rhe=FJe});function $Je(e,t){return Rhe(e||[],t||[],vd)}var e3,Mhe=z(()=>{"use strict";ub();Lhe();o($Je,"zipObject");e3=$Je});var ci=z(()=>{"use strict";fce();pce();qN();eue();hue();pue();xue();iI();LI();Tue();Cue();Aue();An();Nue();ob();Iue();qu();uue();bue();Oue();Pue();Bue();Fue();$ue();Qce();fhe();vhe();The();Che();khe();_he();Dhe();Mue();Mhe();});function Ihe(e,t){e[t]?e[t]++:e[t]=1}function Ohe(e,t){--e[t]||delete e[t]}function Db(e,t,r,i){var n=""+t,a=""+r;if(!e&&n>a){var s=n;n=a,a=s}return n+Nhe+a+Nhe+(yi(i)?zJe:i)}function GJe(e,t,r,i){var n=""+t,a=""+r;if(!e&&n>a){var s=n;n=a,a=s}var l={v:n,w:a};return i&&(l.name=i),l}function zI(e,t){return Db(e,t.v,t.w,t.name)}var zJe,Vp,Nhe,ui,t3=z(()=>{"use strict";ci();zJe="\0",Vp="\0",Nhe="",ui=class{static{o(this,"Graph")}constructor(t={}){this._isDirected=Object.prototype.hasOwnProperty.call(t,"directed")?t.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(t,"multigraph")?t.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(t,"compound")?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=Ns(void 0),this._defaultEdgeLabelFn=Ns(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[Vp]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return Sc(t)||(t=Ns(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return cn(this._nodes)}sources(){var t=this;return ts(this.nodes(),function(r){return ZS(t._in[r])})}sinks(){var t=this;return ts(this.nodes(),function(r){return ZS(t._out[r])})}setNodes(t,r){var i=arguments,n=this;return tt(t,function(a){i.length>1?n.setNode(a,r):n.setNode(a)}),this}setNode(t,r){return Object.prototype.hasOwnProperty.call(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=r),this):(this._nodes[t]=arguments.length>1?r:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=Vp,this._children[t]={},this._children[Vp][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return Object.prototype.hasOwnProperty.call(this._nodes,t)}removeNode(t){if(Object.prototype.hasOwnProperty.call(this._nodes,t)){var r=o(i=>this.removeEdge(this._edgeObjs[i]),"removeEdge");delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],tt(this.children(t),i=>{this.setParent(i)}),delete this._children[t]),tt(cn(this._in[t]),r),delete this._in[t],delete this._preds[t],tt(cn(this._out[t]),r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(yi(r))r=Vp;else{r+="";for(var i=r;!yi(i);i=this.parent(i))if(i===t)throw new Error("Setting "+r+" as parent of "+t+" would create a cycle");this.setNode(r)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=r,this._children[r][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var r=this._parent[t];if(r!==Vp)return r}}children(t){if(yi(t)&&(t=Vp),this._isCompound){var r=this._children[t];if(r)return cn(r)}else{if(t===Vp)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var r=this._preds[t];if(r)return cn(r)}successors(t){var r=this._sucs[t];if(r)return cn(r)}neighbors(t){var r=this.predecessors(t);if(r)return $I(r,this.successors(t))}isLeaf(t){var r;return this.isDirected()?r=this.successors(t):r=this.neighbors(t),r.length===0}filterNodes(t){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var i=this;tt(this._nodes,function(s,l){t(l)&&r.setNode(l,s)}),tt(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,i.edge(s))});var n={};function a(s){var l=i.parent(s);return l===void 0||r.hasNode(l)?(n[s]=l,l):l in n?n[l]:a(l)}return o(a,"findParent"),this._isCompound&&tt(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(t){return Sc(t)||(t=Ns(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return co(this._edgeObjs)}setPath(t,r){var i=this,n=arguments;return Rc(t,function(a,s){return n.length>1?i.setEdge(a,s,r):i.setEdge(a,s),s}),this}setEdge(){var t,r,i,n,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(t=s.v,r=s.w,i=s.name,arguments.length===2&&(n=arguments[1],a=!0)):(t=s,r=arguments[1],i=arguments[3],arguments.length>2&&(n=arguments[2],a=!0)),t=""+t,r=""+r,yi(i)||(i=""+i);var l=Db(this._isDirected,t,r,i);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,l))return a&&(this._edgeLabels[l]=n),this;if(!yi(i)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(r),this._edgeLabels[l]=a?n:this._defaultEdgeLabelFn(t,r,i);var u=GJe(this._isDirected,t,r,i);return t=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,Ihe(this._preds[r],t),Ihe(this._sucs[t],r),this._in[r][l]=u,this._out[t][l]=u,this._edgeCount++,this}edge(t,r,i){var n=arguments.length===1?zI(this._isDirected,arguments[0]):Db(this._isDirected,t,r,i);return this._edgeLabels[n]}hasEdge(t,r,i){var n=arguments.length===1?zI(this._isDirected,arguments[0]):Db(this._isDirected,t,r,i);return Object.prototype.hasOwnProperty.call(this._edgeLabels,n)}removeEdge(t,r,i){var n=arguments.length===1?zI(this._isDirected,arguments[0]):Db(this._isDirected,t,r,i),a=this._edgeObjs[n];return a&&(t=a.v,r=a.w,delete this._edgeLabels[n],delete this._edgeObjs[n],Ohe(this._preds[r],t),Ohe(this._sucs[t],r),delete this._in[r][n],delete this._out[t][n],this._edgeCount--),this}inEdges(t,r){var i=this._in[t];if(i){var n=co(i);return r?ts(n,function(a){return a.v===r}):n}}outEdges(t,r){var i=this._out[t];if(i){var n=co(i);return r?ts(n,function(a){return a.w===r}):n}}nodeEdges(t,r){var i=this.inEdges(t,r);if(i)return i.concat(this.outEdges(t,r))}};ui.prototype._nodeCount=0;ui.prototype._edgeCount=0;o(Ihe,"incrementOrInitEntry");o(Ohe,"decrementOrRemoveEntry");o(Db,"edgeArgsToId");o(GJe,"edgeArgsToObj");o(zI,"edgeObjToId")});var Uo=z(()=>{"use strict";t3()});function Phe(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function VJe(e,t){if(e!=="_next"&&e!=="_prev")return t}var i3,Bhe=z(()=>{"use strict";i3=class{static{o(this,"List")}constructor(){var t={};t._next=t._prev=t,this._sentinel=t}dequeue(){var t=this._sentinel,r=t._prev;if(r!==t)return Phe(r),r}enqueue(t){var r=this._sentinel;t._prev&&t._next&&Phe(t),t._next=r._next,r._next._prev=t,r._next=t,t._prev=r}toString(){for(var t=[],r=this._sentinel,i=r._prev;i!==r;)t.push(JSON.stringify(i,VJe)),i=i._prev;return"["+t.join(", ")+"]"}};o(Phe,"unlink");o(VJe,"filterOutLinks")});function Fhe(e,t){if(e.nodeCount()<=1)return[];var r=UJe(e,t||WJe),i=qJe(r.graph,r.buckets,r.zeroIdx);return Wo(Jr(i,function(n){return e.outEdges(n.v,n.w)}))}function qJe(e,t,r){for(var i=[],n=t[t.length-1],a=t[0],s;e.nodeCount();){for(;s=a.dequeue();)GI(e,t,r,s);for(;s=n.dequeue();)GI(e,t,r,s);if(e.nodeCount()){for(var l=t.length-2;l>0;--l)if(s=t[l].dequeue(),s){i=i.concat(GI(e,t,r,s,!0));break}}}return i}function GI(e,t,r,i,n){var a=n?[]:void 0;return tt(e.inEdges(i.v),function(s){var l=e.edge(s),u=e.node(s.v);n&&a.push({v:s.v,w:s.w}),u.out-=l,VI(t,r,u)}),tt(e.outEdges(i.v),function(s){var l=e.edge(s),u=s.w,h=e.node(u);h.in-=l,VI(t,r,h)}),e.removeNode(i.v),a}function UJe(e,t){var r=new ui,i=0,n=0;tt(e.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),tt(e.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=t(l),d=u+h;r.setEdge(l.v,l.w,d),n=Math.max(n,r.node(l.v).out+=h),i=Math.max(i,r.node(l.w).in+=h)});var a=qo(n+i+3).map(function(){return new i3}),s=i+1;return tt(r.nodes(),function(l){VI(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function VI(e,t,r){r.out?r.in?e[r.out-r.in+t].enqueue(r):e[e.length-1].enqueue(r):e[0].enqueue(r)}var WJe,$he=z(()=>{"use strict";ci();Uo();Bhe();WJe=Ns(1);o(Fhe,"greedyFAS");o(qJe,"doGreedyFAS");o(GI,"removeNode");o(UJe,"buildState");o(VI,"assignBucket")});function zhe(e){var t=e.graph().acyclicer==="greedy"?Fhe(e,r(e)):HJe(e);tt(t,function(i){var n=e.edge(i);e.removeEdge(i),n.forwardName=i.name,n.reversed=!0,e.setEdge(i.w,i.v,n,Gp("rev"))});function r(i){return function(n){return i.edge(n).weight}}o(r,"weightFn")}function HJe(e){var t=[],r={},i={};function n(a){Object.prototype.hasOwnProperty.call(i,a)||(i[a]=!0,r[a]=!0,tt(e.outEdges(a),function(s){Object.prototype.hasOwnProperty.call(r,s.w)?t.push(s):n(s.w)}),delete r[a])}return o(n,"dfs"),tt(e.nodes(),n),t}function Ghe(e){tt(e.edges(),function(t){var r=e.edge(t);if(r.reversed){e.removeEdge(t);var i=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(t.w,t.v,r,i)}})}var WI=z(()=>{"use strict";ci();$he();o(zhe,"run");o(HJe,"dfsFAS");o(Ghe,"undo")});function Mc(e,t,r,i){var n;do n=Gp(i);while(e.hasNode(n));return r.dummy=t,e.setNode(n,r),n}function Whe(e){var t=new ui().setGraph(e.graph());return tt(e.nodes(),function(r){t.setNode(r,e.node(r))}),tt(e.edges(),function(r){var i=t.edge(r.v,r.w)||{weight:0,minlen:1},n=e.edge(r);t.setEdge(r.v,r.w,{weight:i.weight+n.weight,minlen:Math.max(i.minlen,n.minlen)})}),t}function n3(e){var t=new ui({multigraph:e.isMultigraph()}).setGraph(e.graph());return tt(e.nodes(),function(r){e.children(r).length||t.setNode(r,e.node(r))}),tt(e.edges(),function(r){t.setEdge(r,e.edge(r))}),t}function qI(e,t){var r=e.x,i=e.y,n=t.x-r,a=t.y-i,s=e.width/2,l=e.height/2;if(!n&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(n)*l?(a<0&&(l=-l),u=l*n/a,h=l):(n<0&&(s=-s),u=s,h=s*a/n),{x:r+u,y:i+h}}function Nd(e){var t=Jr(qo(HI(e)+1),function(){return[]});return tt(e.nodes(),function(r){var i=e.node(r),n=i.rank;yi(n)||(t[n][i.order]=r)}),t}function qhe(e){var t=Yu(Jr(e.nodes(),function(r){return e.node(r).rank}));tt(e.nodes(),function(r){var i=e.node(r);_b(i,"rank")&&(i.rank-=t)})}function Uhe(e){var t=Yu(Jr(e.nodes(),function(a){return e.node(a).rank})),r=[];tt(e.nodes(),function(a){var s=e.node(a).rank-t;r[s]||(r[s]=[]),r[s].push(a)});var i=0,n=e.graph().nodeRankFactor;tt(r,function(a,s){yi(a)&&s%n!==0?--i:i&&tt(a,function(l){e.node(l).rank+=i})})}function UI(e,t,r,i){var n={width:0,height:0};return arguments.length>=4&&(n.rank=r,n.order=i),Mc(e,"border",n,t)}function HI(e){return Os(Jr(e.nodes(),function(t){var r=e.node(t).rank;if(!yi(r))return r}))}function Hhe(e,t){var r={lhs:[],rhs:[]};return tt(e,function(i){t(i)?r.lhs.push(i):r.rhs.push(i)}),r}function Yhe(e,t){var r=YS();try{return t()}finally{console.log(e+" time: "+(YS()-r)+"ms")}}function jhe(e,t){return t()}var Nc=z(()=>{"use strict";ci();Uo();o(Mc,"addDummyNode");o(Whe,"simplify");o(n3,"asNonCompoundGraph");o(qI,"intersectRect");o(Nd,"buildLayerMatrix");o(qhe,"normalizeRanks");o(Uhe,"removeEmptyRanks");o(UI,"addBorderNode");o(HI,"maxRank");o(Hhe,"partition");o(Yhe,"time");o(jhe,"notime")});function Khe(e){function t(r){var i=e.children(r),n=e.node(r);if(i.length&&tt(i,t),Object.prototype.hasOwnProperty.call(n,"minRank")){n.borderLeft=[],n.borderRight=[];for(var a=n.minRank,s=n.maxRank+1;a{"use strict";ci();Nc();o(Khe,"addBorderSegments");o(Xhe,"addBorderNode")});function Jhe(e){var t=e.graph().rankdir.toLowerCase();(t==="lr"||t==="rl")&&tde(e)}function ede(e){var t=e.graph().rankdir.toLowerCase();(t==="bt"||t==="rl")&&YJe(e),(t==="lr"||t==="rl")&&(jJe(e),tde(e))}function tde(e){tt(e.nodes(),function(t){Qhe(e.node(t))}),tt(e.edges(),function(t){Qhe(e.edge(t))})}function Qhe(e){var t=e.width;e.width=e.height,e.height=t}function YJe(e){tt(e.nodes(),function(t){YI(e.node(t))}),tt(e.edges(),function(t){var r=e.edge(t);tt(r.points,YI),Object.prototype.hasOwnProperty.call(r,"y")&&YI(r)})}function YI(e){e.y=-e.y}function jJe(e){tt(e.nodes(),function(t){jI(e.node(t))}),tt(e.edges(),function(t){var r=e.edge(t);tt(r.points,jI),Object.prototype.hasOwnProperty.call(r,"x")&&jI(r)})}function jI(e){var t=e.x;e.x=e.y,e.y=t}var rde=z(()=>{"use strict";ci();o(Jhe,"adjust");o(ede,"undo");o(tde,"swapWidthHeight");o(Qhe,"swapWidthHeightOne");o(YJe,"reverseY");o(YI,"reverseYOne");o(jJe,"swapXY");o(jI,"swapXYOne")});function ide(e){e.graph().dummyChains=[],tt(e.edges(),function(t){KJe(e,t)})}function KJe(e,t){var r=t.v,i=e.node(r).rank,n=t.w,a=e.node(n).rank,s=t.name,l=e.edge(t),u=l.labelRank;if(a!==i+1){e.removeEdge(t);var h=void 0,d,f;for(f=0,++i;i{"use strict";ci();Nc();o(ide,"run");o(KJe,"normalizeEdge");o(nde,"undo")});function Rb(e){var t={};function r(i){var n=e.node(i);if(Object.prototype.hasOwnProperty.call(t,i))return n.rank;t[i]=!0;var a=Yu(Jr(e.outEdges(i),function(s){return r(s.w)-e.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),n.rank=a}o(r,"dfs"),tt(e.sources(),r)}function Wp(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var a3=z(()=>{"use strict";ci();o(Rb,"longestPath");o(Wp,"slack")});function s3(e){var t=new ui({directed:!1}),r=e.nodes()[0],i=e.nodeCount();t.setNode(r,{});for(var n,a;ZJe(t,e){"use strict";ci();Uo();a3();o(s3,"feasibleTree");o(ZJe,"tightTree");o(QJe,"findMinSlackEdge");o(JJe,"shiftRanks")});var sde=z(()=>{"use strict"});var ZI=z(()=>{"use strict"});var H2r,QI=z(()=>{"use strict";ci();ZI();H2r=Ns(1)});var ode=z(()=>{"use strict";QI()});var JI=z(()=>{"use strict"});var lde=z(()=>{"use strict";JI()});var iTr,cde=z(()=>{"use strict";ci();iTr=Ns(1)});function e9(e){var t={},r={},i=[];function n(a){if(Object.prototype.hasOwnProperty.call(r,a))throw new Lb;Object.prototype.hasOwnProperty.call(t,a)||(r[a]=!0,t[a]=!0,tt(e.predecessors(a),n),delete r[a],i.push(a))}if(o(n,"visit"),tt(e.sinks(),n),FI(t)!==e.nodeCount())throw new Lb;return i}function Lb(){}var t9=z(()=>{"use strict";ci();e9.CycleException=Lb;o(e9,"topsort");o(Lb,"CycleException");Lb.prototype=new Error});var ude=z(()=>{"use strict";t9()});function o3(e,t,r){Or(t)||(t=[t]);var i=(e.isDirected()?e.successors:e.neighbors).bind(e),n=[],a={};return tt(t,function(s){if(!e.hasNode(s))throw new Error("Graph does not have node: "+s);hde(e,s,r==="post",a,i,n)}),n}function hde(e,t,r,i,n,a){Object.prototype.hasOwnProperty.call(i,t)||(i[t]=!0,r||a.push(t),tt(n(t),function(s){hde(e,s,r,i,n,a)}),r&&a.push(t))}var r9=z(()=>{"use strict";ci();o(o3,"dfs");o(hde,"doDfs")});function i9(e,t){return o3(e,t,"post")}var dde=z(()=>{"use strict";r9();o(i9,"postorder")});function n9(e,t){return o3(e,t,"pre")}var fde=z(()=>{"use strict";r9();o(n9,"preorder")});var pde=z(()=>{"use strict";ZI();t3()});var mde=z(()=>{"use strict";sde();QI();ode();lde();cde();ude();dde();fde();pde();JI();t9()});function Od(e){e=Whe(e),Rb(e);var t=s3(e);s9(t),a9(t,e);for(var r,i;r=xde(t);)i=bde(t,e,r),Tde(t,e,r,i)}function a9(e,t){var r=i9(e,e.nodes());r=r.slice(0,r.length-1),tt(r,function(i){net(e,t,i)})}function net(e,t,r){var i=e.node(r),n=i.parent;e.edge(r,n).cutvalue=yde(e,t,r)}function yde(e,t,r){var i=e.node(r),n=i.parent,a=!0,s=t.edge(r,n),l=0;return s||(a=!1,s=t.edge(n,r)),l=s.weight,tt(t.nodeEdges(r),function(u){var h=u.v===r,d=h?u.w:u.v;if(d!==n){var f=h===a,p=t.edge(u).weight;if(l+=f?p:-p,set(e,r,d)){var m=e.edge(r,d).cutvalue;l+=f?-m:m}}}),l}function s9(e,t){arguments.length<2&&(t=e.nodes()[0]),vde(e,{},1,t)}function vde(e,t,r,i,n){var a=r,s=e.node(i);return t[i]=!0,tt(e.neighbors(i),function(l){Object.prototype.hasOwnProperty.call(t,l)||(r=vde(e,t,r,l,i))}),s.low=a,s.lim=r++,n?s.parent=n:delete s.parent,r}function xde(e){return Xg(e.edges(),function(t){return e.edge(t).cutvalue<0})}function bde(e,t,r){var i=r.v,n=r.w;t.hasEdge(i,n)||(i=r.w,n=r.v);var a=e.node(i),s=e.node(n),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=ts(t.edges(),function(d){return u===gde(e,e.node(d.v),l)&&u!==gde(e,e.node(d.w),l)});return $p(h,function(d){return Wp(t,d)})}function Tde(e,t,r,i){var n=r.v,a=r.w;e.removeEdge(n,a),e.setEdge(i.v,i.w,{}),s9(e),a9(e,t),aet(e,t)}function aet(e,t){var r=Xg(e.nodes(),function(n){return!t.node(n).parent}),i=n9(e,r);i=i.slice(1),tt(i,function(n){var a=e.node(n).parent,s=t.edge(n,a),l=!1;s||(s=t.edge(a,n),l=!0),t.node(n).rank=t.node(a).rank+(l?s.minlen:-s.minlen)})}function set(e,t,r){return e.hasEdge(t,r)}function gde(e,t,r){return r.low<=t.lim&&t.lim<=r.lim}var Cde=z(()=>{"use strict";ci();mde();Nc();KI();a3();Od.initLowLimValues=s9;Od.initCutValues=a9;Od.calcCutValue=yde;Od.leaveEdge=xde;Od.enterEdge=bde;Od.exchangeEdges=Tde;o(Od,"networkSimplex");o(a9,"initCutValues");o(net,"assignCutValue");o(yde,"calcCutValue");o(s9,"initLowLimValues");o(vde,"dfsAssignLowLim");o(xde,"leaveEdge");o(bde,"enterEdge");o(Tde,"exchangeEdges");o(aet,"updateRanks");o(set,"isTreeEdge");o(gde,"isDescendant")});function o9(e){switch(e.graph().ranker){case"network-simplex":kde(e);break;case"tight-tree":cet(e);break;case"longest-path":oet(e);break;default:kde(e)}}function cet(e){Rb(e),s3(e)}function kde(e){Od(e)}var oet,l9=z(()=>{"use strict";KI();Cde();a3();o(o9,"rank");oet=Rb;o(cet,"tightTreeRanker");o(kde,"networkSimplexRanker")});function wde(e){var t=Mc(e,"root",{},"_root"),r=uet(e),i=Os(co(r))-1,n=2*i+1;e.graph().nestingRoot=t,tt(e.edges(),function(s){e.edge(s).minlen*=n});var a=het(e)+1;tt(e.children(),function(s){Sde(e,t,n,a,i,r,s)}),e.graph().nodeRankFactor=n}function Sde(e,t,r,i,n,a,s){var l=e.children(s);if(!l.length){s!==t&&e.setEdge(t,s,{weight:0,minlen:r});return}var u=UI(e,"_bt"),h=UI(e,"_bb"),d=e.node(s);e.setParent(u,s),d.borderTop=u,e.setParent(h,s),d.borderBottom=h,tt(l,function(f){Sde(e,t,r,i,n,a,f);var p=e.node(f),m=p.borderTop?p.borderTop:f,g=p.borderBottom?p.borderBottom:f,y=p.borderTop?i:2*i,v=m!==g?1:n-a[s]+1;e.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),e.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),e.parent(s)||e.setEdge(t,u,{weight:0,minlen:n+a[s]})}function uet(e){var t={};function r(i,n){var a=e.children(i);a&&a.length&&tt(a,function(s){r(s,n+1)}),t[i]=n}return o(r,"dfs"),tt(e.children(),function(i){r(i,1)}),t}function het(e){return Rc(e.edges(),function(t,r){return t+e.edge(r).weight},0)}function Ede(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,tt(e.edges(),function(r){var i=e.edge(r);i.nestingEdge&&e.removeEdge(r)})}var Ade=z(()=>{"use strict";ci();Nc();o(wde,"run");o(Sde,"dfs");o(uet,"treeDepths");o(het,"sumWeights");o(Ede,"cleanup")});function _de(e,t,r){var i={},n;tt(r,function(a){for(var s=e.parent(a),l,u;s;){if(l=e.parent(s),l?(u=i[l],i[l]=s):(u=n,n=s),u&&u!==s){t.setEdge(u,s);return}s=l}})}var Dde=z(()=>{"use strict";ci();o(_de,"addSubgraphConstraints")});function Rde(e,t,r){var i=fet(e),n=new ui({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(function(a){return e.node(a)});return tt(e.nodes(),function(a){var s=e.node(a),l=e.parent(a);(s.rank===t||s.minRank<=t&&t<=s.maxRank)&&(n.setNode(a),n.setParent(a,l||i),tt(e[r](a),function(u){var h=u.v===a?u.w:u.v,d=n.edge(h,a),f=yi(d)?0:d.weight;n.setEdge(h,a,{weight:e.edge(u).weight+f})}),Object.prototype.hasOwnProperty.call(s,"minRank")&&n.setNode(a,{borderLeft:s.borderLeft[t],borderRight:s.borderRight[t]}))}),n}function fet(e){for(var t;e.hasNode(t=Gp("_root")););return t}var Lde=z(()=>{"use strict";ci();Uo();o(Rde,"buildLayerGraph");o(fet,"createRootNode")});function Mde(e,t){for(var r=0,i=1;i0;)d%2&&(f+=l[d+1]),d=d-1>>1,l[d]+=h.weight;u+=h.weight*f})),u}var Nde=z(()=>{"use strict";ci();o(Mde,"crossCount");o(pet,"twoLayerCrossCount")});function Ide(e){var t={},r=ts(e.nodes(),function(l){return!e.children(l).length}),i=Os(Jr(r,function(l){return e.node(l).rank})),n=Jr(qo(i+1),function(){return[]});function a(l){if(!_b(t,l)){t[l]=!0;var u=e.node(l);n[u.rank].push(l),tt(e.successors(l),a)}}o(a,"dfs");var s=Lc(r,function(l){return e.node(l).rank});return tt(s,a),n}var Ode=z(()=>{"use strict";ci();o(Ide,"initOrder")});function Pde(e,t){return Jr(t,function(r){var i=e.inEdges(r);if(i.length){var n=Rc(i,function(a,s){var l=e.edge(s),u=e.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:n.sum/n.weight,weight:n.weight}}else return{v:r}})}var Bde=z(()=>{"use strict";ci();o(Pde,"barycenter")});function Fde(e,t){var r={};tt(e,function(n,a){var s=r[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:a};yi(n.barycenter)||(s.barycenter=n.barycenter,s.weight=n.weight)}),tt(t.edges(),function(n){var a=r[n.v],s=r[n.w];!yi(a)&&!yi(s)&&(s.indegree++,a.out.push(r[n.w]))});var i=ts(r,function(n){return!n.indegree});return met(i)}function met(e){var t=[];function r(a){return function(s){s.merged||(yi(s.barycenter)||yi(a.barycenter)||s.barycenter>=a.barycenter)&&get(a,s)}}o(r,"handleIn");function i(a){return function(s){s.in.push(a),--s.indegree===0&&e.push(s)}}for(o(i,"handleOut");e.length;){var n=e.pop();t.push(n),tt(n.in.reverse(),r(n)),tt(n.out,i(n))}return Jr(ts(t,function(a){return!a.merged}),function(a){return zp(a,["vs","i","barycenter","weight"])})}function get(e,t){var r=0,i=0;e.weight&&(r+=e.barycenter*e.weight,i+=e.weight),t.weight&&(r+=t.barycenter*t.weight,i+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=r/i,e.weight=i,e.i=Math.min(t.i,e.i),t.merged=!0}var $de=z(()=>{"use strict";ci();o(Fde,"resolveConflicts");o(met,"doResolveConflicts");o(get,"mergeEntries")});function Gde(e,t){var r=Hhe(e,function(d){return Object.prototype.hasOwnProperty.call(d,"barycenter")}),i=r.lhs,n=Lc(r.rhs,function(d){return-d.i}),a=[],s=0,l=0,u=0;i.sort(yet(!!t)),u=zde(a,n,u),tt(i,function(d){u+=d.vs.length,a.push(d.vs),s+=d.barycenter*d.weight,l+=d.weight,u=zde(a,n,u)});var h={vs:Wo(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function zde(e,t,r){for(var i;t.length&&(i=Md(t)).i<=r;)t.pop(),e.push(i.vs),r++;return r}function yet(e){return function(t,r){return t.barycenterr.barycenter?1:e?r.i-t.i:t.i-r.i}}var Vde=z(()=>{"use strict";ci();Nc();o(Gde,"sort");o(zde,"consumeUnsortable");o(yet,"compareWithBias")});function c9(e,t,r,i){var n=e.children(t),a=e.node(t),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(n=ts(n,function(g){return g!==s&&g!==l}));var h=Pde(e,n);tt(h,function(g){if(e.children(g.v).length){var y=c9(e,g.v,r,i);u[g.v]=y,Object.prototype.hasOwnProperty.call(y,"barycenter")&&xet(g,y)}});var d=Fde(h,r);vet(d,u);var f=Gde(d,i);if(s&&(f.vs=Wo([s,f.vs,l]),e.predecessors(s).length)){var p=e.node(e.predecessors(s)[0]),m=e.node(e.predecessors(l)[0]);Object.prototype.hasOwnProperty.call(f,"barycenter")||(f.barycenter=0,f.weight=0),f.barycenter=(f.barycenter*f.weight+p.order+m.order)/(f.weight+2),f.weight+=2}return f}function vet(e,t){tt(e,function(r){r.vs=Wo(r.vs.map(function(i){return t[i]?t[i].vs:i}))})}function xet(e,t){yi(e.barycenter)?(e.barycenter=t.barycenter,e.weight=t.weight):(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight)}var Wde=z(()=>{"use strict";ci();Bde();$de();Vde();o(c9,"sortSubgraph");o(vet,"expandSubgraphs");o(xet,"mergeBarycenters")});function Hde(e){var t=HI(e),r=qde(e,qo(1,t+1),"inEdges"),i=qde(e,qo(t-1,-1,-1),"outEdges"),n=Ide(e);Ude(e,n);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){bet(l%2?r:i,l%4>=2),n=Nd(e);var h=Mde(e,n);h{"use strict";ci();Uo();Nc();Dde();Lde();Nde();Ode();Wde();o(Hde,"order");o(qde,"buildLayerGraphs");o(bet,"sweepLayerGraphs");o(Ude,"assignOrder")});function jde(e){var t=Cet(e);tt(e.graph().dummyChains,function(r){for(var i=e.node(r),n=i.edgeObj,a=Tet(e,t,n.v,n.w),s=a.path,l=a.lca,u=0,h=s[u],d=!0;r!==n.w;){if(i=e.node(r),d){for(;(h=s[u])!==l&&e.node(h).maxRanks||l>t[u].lim));for(h=u,u=i;(u=e.parent(u))!==h;)a.push(u);return{path:n.concat(a.reverse()),lca:h}}function Cet(e){var t={},r=0;function i(n){var a=r;tt(e.children(n),i),t[n]={low:a,lim:r++}}return o(i,"dfs"),tt(e.children(),i),t}var Xde=z(()=>{"use strict";ci();o(jde,"parentDummyChains");o(Tet,"findPath");o(Cet,"postorder")});function ket(e,t){var r={};function i(n,a){var s=0,l=0,u=n.length,h=Md(a);return tt(a,function(d,f){var p=Eet(e,d),m=p?e.node(p).order:u;(p||d===h)&&(tt(a.slice(l,f+1),function(g){tt(e.predecessors(g),function(y){var v=e.node(y),x=v.order;(xh)&&Kde(r,p,d)})})}o(i,"scan");function n(a,s){var l=-1,u,h=0;return tt(s,function(d,f){if(e.node(d).dummy==="border"){var p=e.predecessors(d);p.length&&(u=e.node(p[0]).order,i(s,h,f,l,u),h=f,l=u)}i(s,h,s.length,u,a.length)}),s}return o(n,"visitLayer"),Rc(t,n),r}function Eet(e,t){if(e.node(t).dummy)return Xg(e.predecessors(t),function(r){return e.node(r).dummy})}function Kde(e,t,r){if(t>r){var i=t;t=r,r=i}Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,configurable:!0,value:{},writable:!0});var n=e[t];Object.defineProperty(n,r,{enumerable:!0,configurable:!0,value:!0,writable:!0})}function Aet(e,t,r){if(t>r){var i=t;t=r,r=i}return!!e[t]&&Object.prototype.hasOwnProperty.call(e[t],r)}function _et(e,t,r,i){var n={},a={},s={};return tt(t,function(l){tt(l,function(u,h){n[u]=u,a[u]=u,s[u]=h})}),tt(t,function(l){var u=-1;tt(l,function(h){var d=i(h);if(d.length){d=Lc(d,function(y){return s[y]});for(var f=(d.length-1)/2,p=Math.floor(f),m=Math.ceil(f);p<=m;++p){var g=d[p];a[h]===h&&u{"use strict";ci();Uo();Nc();o(ket,"findType1Conflicts");o(wet,"findType2Conflicts");o(Eet,"findOtherInnerSegmentNode");o(Kde,"addConflict");o(Aet,"hasConflict");o(_et,"verticalAlignment");o(Det,"horizontalCompaction");o(Ret,"buildBlockGraph");o(Let,"findSmallestWidthAlignment");o(Met,"alignCoordinates");o(Net,"balance");o(Zde,"positionX");o(Iet,"sep");o(Oet,"width")});function Jde(e){e=n3(e),Pet(e),II(Zde(e),function(t,r){e.node(r).x=t})}function Pet(e){var t=Nd(e),r=e.graph().ranksep,i=0;tt(t,function(n){var a=Os(Jr(n,function(s){return e.node(s).height}));tt(n,function(s){e.node(s).y=i+a/2}),i+=a+r})}var efe=z(()=>{"use strict";ci();Nc();Qde();o(Jde,"position");o(Pet,"positionY")});function Mb(e,t){var r=t&&t.debugTiming?Yhe:jhe;r("layout",()=>{var i=r(" buildLayoutGraph",()=>Yet(e));r(" runLayout",()=>Bet(i,r)),r(" updateInputGraph",()=>Fet(e,i))})}function Bet(e,t){t(" makeSpaceForEdgeLabels",()=>jet(e)),t(" removeSelfEdges",()=>itt(e)),t(" acyclic",()=>zhe(e)),t(" nestingGraph.run",()=>wde(e)),t(" rank",()=>o9(n3(e))),t(" injectEdgeLabelProxies",()=>Xet(e)),t(" removeEmptyRanks",()=>Uhe(e)),t(" nestingGraph.cleanup",()=>Ede(e)),t(" normalizeRanks",()=>qhe(e)),t(" assignRankMinMax",()=>Ket(e)),t(" removeEdgeLabelProxies",()=>Zet(e)),t(" normalize.run",()=>ide(e)),t(" parentDummyChains",()=>jde(e)),t(" addBorderSegments",()=>Khe(e)),t(" order",()=>Hde(e)),t(" insertSelfEdges",()=>ntt(e)),t(" adjustCoordinateSystem",()=>Jhe(e)),t(" position",()=>Jde(e)),t(" positionSelfEdges",()=>att(e)),t(" removeBorderNodes",()=>rtt(e)),t(" normalize.undo",()=>nde(e)),t(" fixupEdgeLabelCoords",()=>ett(e)),t(" undoCoordinateSystem",()=>ede(e)),t(" translateGraph",()=>Qet(e)),t(" assignNodeIntersects",()=>Jet(e)),t(" reversePoints",()=>ttt(e)),t(" acyclic.undo",()=>Ghe(e))}function Fet(e,t){tt(e.nodes(),function(r){var i=e.node(r),n=t.node(r);i&&(i.x=n.x,i.y=n.y,t.children(r).length&&(i.width=n.width,i.height=n.height))}),tt(e.edges(),function(r){var i=e.edge(r),n=t.edge(r);i.points=n.points,Object.prototype.hasOwnProperty.call(n,"x")&&(i.x=n.x,i.y=n.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}function Yet(e){var t=new ui({multigraph:!0,compound:!0}),r=h9(e.graph());return t.setGraph(Zg({},zet,u9(r,$et),zp(r,Get))),tt(e.nodes(),function(i){var n=h9(e.node(i));t.setNode(i,AI(u9(n,Vet),Wet)),t.setParent(i,e.parent(i))}),tt(e.edges(),function(i){var n=h9(e.edge(i));t.setEdge(i,Zg({},Uet,u9(n,qet),zp(n,Het)))}),t}function jet(e){var t=e.graph();t.ranksep/=2,tt(e.edges(),function(r){var i=e.edge(r);i.minlen*=2,i.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?i.width+=i.labeloffset:i.height+=i.labeloffset)})}function Xet(e){tt(e.edges(),function(t){var r=e.edge(t);if(r.width&&r.height){var i=e.node(t.v),n=e.node(t.w),a={rank:(n.rank-i.rank)/2+i.rank,e:t};Mc(e,"edge-proxy",a,"_ep")}})}function Ket(e){var t=0;tt(e.nodes(),function(r){var i=e.node(r);i.borderTop&&(i.minRank=e.node(i.borderTop).rank,i.maxRank=e.node(i.borderBottom).rank,t=Os(t,i.maxRank))}),e.graph().maxRank=t}function Zet(e){tt(e.nodes(),function(t){var r=e.node(t);r.dummy==="edge-proxy"&&(e.edge(r.e).labelRank=r.rank,e.removeNode(t))})}function Qet(e){var t=Number.POSITIVE_INFINITY,r=0,i=Number.POSITIVE_INFINITY,n=0,a=e.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var d=h.x,f=h.y,p=h.width,m=h.height;t=Math.min(t,d-p/2),r=Math.max(r,d+p/2),i=Math.min(i,f-m/2),n=Math.max(n,f+m/2)}o(u,"getExtremes"),tt(e.nodes(),function(h){u(e.node(h))}),tt(e.edges(),function(h){var d=e.edge(h);Object.prototype.hasOwnProperty.call(d,"x")&&u(d)}),t-=s,i-=l,tt(e.nodes(),function(h){var d=e.node(h);d.x-=t,d.y-=i}),tt(e.edges(),function(h){var d=e.edge(h);tt(d.points,function(f){f.x-=t,f.y-=i}),Object.prototype.hasOwnProperty.call(d,"x")&&(d.x-=t),Object.prototype.hasOwnProperty.call(d,"y")&&(d.y-=i)}),a.width=r-t+s,a.height=n-i+l}function Jet(e){tt(e.edges(),function(t){var r=e.edge(t),i=e.node(t.v),n=e.node(t.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=n,s=i),r.points.unshift(qI(i,a)),r.points.push(qI(n,s))})}function ett(e){tt(e.edges(),function(t){var r=e.edge(t);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function ttt(e){tt(e.edges(),function(t){var r=e.edge(t);r.reversed&&r.points.reverse()})}function rtt(e){tt(e.nodes(),function(t){if(e.children(t).length){var r=e.node(t),i=e.node(r.borderTop),n=e.node(r.borderBottom),a=e.node(Md(r.borderLeft)),s=e.node(Md(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(n.y-i.y),r.x=a.x+r.width/2,r.y=i.y+r.height/2}}),tt(e.nodes(),function(t){e.node(t).dummy==="border"&&e.removeNode(t)})}function itt(e){tt(e.edges(),function(t){if(t.v===t.w){var r=e.node(t.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function ntt(e){var t=Nd(e);tt(t,function(r){var i=0;tt(r,function(n,a){var s=e.node(n);s.order=a+i,tt(s.selfEdges,function(l){Mc(e,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++i,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function att(e){tt(e.nodes(),function(t){var r=e.node(t);if(r.dummy==="selfedge"){var i=e.node(r.e.v),n=i.x+i.width/2,a=i.y,s=r.x-n,l=i.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:n+2*s/3,y:a-l},{x:n+5*s/6,y:a-l},{x:n+s,y:a},{x:n+5*s/6,y:a+l},{x:n+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function u9(e,t){return Fp(zp(e,t),Number)}function h9(e){var t={};return tt(e,function(r,i){t[i.toLowerCase()]=r}),t}var $et,zet,Get,Vet,Wet,qet,Uet,Het,tfe=z(()=>{"use strict";ci();Uo();Zhe();rde();WI();XI();l9();Ade();Yde();Xde();efe();Nc();o(Mb,"layout");o(Bet,"runLayout");o(Fet,"updateInputGraph");$et=["nodesep","edgesep","ranksep","marginx","marginy"],zet={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Get=["acyclicer","ranker","rankdir","align"],Vet=["width","height"],Wet={width:0,height:0},qet=["minlen","weight","width","height","labeloffset"],Uet={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Het=["labelpos"];o(Yet,"buildLayoutGraph");o(jet,"makeSpaceForEdgeLabels");o(Xet,"injectEdgeLabelProxies");o(Ket,"assignRankMinMax");o(Zet,"removeEdgeLabelProxies");o(Qet,"translateGraph");o(Jet,"assignNodeIntersects");o(ett,"fixupEdgeLabelCoords");o(ttt,"reversePointsForReversedEdges");o(rtt,"removeBorderNodes");o(itt,"removeSelfEdges");o(ntt,"insertSelfEdges");o(att,"positionSelfEdges");o(u9,"selectNumberAttrs");o(h9,"canonicalize")});var d9=z(()=>{"use strict";WI();tfe();XI();l9()});function Ho(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:stt(e),edges:ott(e)};return yi(e.graph())||(t.value=mI(e.graph())),t}function stt(e){return Jr(e.nodes(),function(t){var r=e.node(t),i=e.parent(t),n={v:t};return yi(r)||(n.value=r),yi(i)||(n.parent=i),n})}function ott(e){return Jr(e.edges(),function(t){var r=e.edge(t),i={v:t.v,w:t.w};return yi(t.name)||(i.name=t.name),yi(r)||(i.value=r),i})}var f9=z(()=>{"use strict";ci();t3();o(Ho,"write");o(stt,"writeNodes");o(ott,"writeEdges")});var Pr,qp,nfe,afe,l3,ltt,sfe,ofe,ctt,Qg,ife,lfe,cfe,ufe,hfe,dfe=z(()=>{"use strict";St();Uo();f9();Pr=new Map,qp=new Map,nfe=new Map,afe=o(()=>{qp.clear(),nfe.clear(),Pr.clear()},"clear"),l3=o((e,t)=>{let r=qp.get(t)||[];return Z.trace("In isDescendant",t," ",e," = ",r.includes(e)),r.includes(e)},"isDescendant"),ltt=o((e,t)=>{let r=qp.get(t)||[];return Z.info("Descendants of ",t," is ",r),Z.info("Edge is ",e),e.v===t||e.w===t?!1:r?r.includes(e.v)||l3(e.v,t)||l3(e.w,t)||r.includes(e.w):(Z.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),sfe=o((e,t,r,i)=>{Z.warn("Copying children of ",e,"root",i,"data",t.node(e),i);let n=t.children(e)||[];e!==i&&n.push(e),Z.warn("Copying (nodes) clusterId",e,"nodes",n),n.forEach(a=>{if(t.children(a).length>0)sfe(a,t,r,i);else{let s=t.node(a);Z.info("cp ",a," to ",i," with parent ",e),r.setNode(a,s),i!==t.parent(a)&&(Z.warn("Setting parent",a,t.parent(a)),r.setParent(a,t.parent(a))),e!==i&&a!==e?(Z.debug("Setting parent",a,e),r.setParent(a,e)):(Z.info("In copy ",e,"root",i,"data",t.node(e),i),Z.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==i,"node!==clusterId",a!==e));let l=t.edges(a);Z.debug("Copying Edges",l),l.forEach(u=>{Z.info("Edge",u);let h=t.edge(u.v,u.w,u.name);Z.info("Edge data",h,i);try{ltt(u,i)?(Z.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),Z.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):Z.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",i," clusterId:",e)}catch(d){Z.error(d)}})}Z.debug("Removing node",a),t.removeNode(a)})},"copy"),ofe=o((e,t)=>{let r=t.children(e),i=[...r];for(let n of r)nfe.set(n,e),i=[...i,...ofe(n,t)];return i},"extractDescendants"),ctt=o((e,t,r)=>{let i=e.edges().filter(u=>u.v===t||u.w===t),n=e.edges().filter(u=>u.v===r||u.w===r),a=i.map(u=>({v:u.v===t?r:u.v,w:u.w===t?t:u.w})),s=n.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),Qg=o((e,t,r)=>{let i=t.children(e);if(Z.trace("Searching children of id ",e,i),i.length<1)return e;let n;for(let a of i){let s=Qg(a,t,r),l=ctt(t,r,s);if(s)if(l.length>0)n=s;else return s}return n},"findNonClusterChild"),ife=o(e=>!Pr.has(e)||!Pr.get(e).externalConnections?e:Pr.has(e)?Pr.get(e).id:e,"getAnchorId"),lfe=o((e,t)=>{if(!e||t>10){Z.debug("Opting out, no graph ");return}else Z.debug("Opting in, graph ");e.nodes().forEach(function(r){e.children(r).length>0&&(Z.warn("Cluster identified",r," Replacement id in edges: ",Qg(r,e,r)),qp.set(r,ofe(r,e)),Pr.set(r,{id:Qg(r,e,r),clusterData:e.node(r)}))}),e.nodes().forEach(function(r){let i=e.children(r),n=e.edges();i.length>0?(Z.debug("Cluster identified",r,qp),n.forEach(a=>{let s=l3(a.v,r),l=l3(a.w,r);s^l&&(Z.warn("Edge: ",a," leaves cluster ",r),Z.warn("Descendants of XXX ",r,": ",qp.get(r)),Pr.get(r).externalConnections=!0)})):Z.debug("Not a cluster ",r,qp)});for(let r of Pr.keys()){let i=Pr.get(r).id,n=e.parent(i);n!==r&&Pr.has(n)&&!Pr.get(n).externalConnections&&(Pr.get(r).id=n)}e.edges().forEach(function(r){let i=e.edge(r);Z.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),Z.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(e.edge(r)));let n=r.v,a=r.w;if(Z.warn("Fix XXX",Pr,"ids:",r.v,r.w,"Translating: ",Pr.get(r.v)," --- ",Pr.get(r.w)),Pr.get(r.v)||Pr.get(r.w)){if(Z.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),n=ife(r.v),a=ife(r.w),e.removeEdge(r.v,r.w,r.name),n!==r.v){let s=e.parent(n);Pr.get(s).externalConnections=!0,i.fromCluster=r.v}if(a!==r.w){let s=e.parent(a);Pr.get(s).externalConnections=!0,i.toCluster=r.w}Z.warn("Fix Replacing with XXX",n,a,r.name),e.setEdge(n,a,i,r.name)}}),Z.warn("Adjusted Graph",Ho(e)),cfe(e,0),Z.trace(Pr)},"adjustClustersAndEdges"),cfe=o((e,t)=>{if(Z.warn("extractor - ",t,Ho(e),e.children("D")),t>10){Z.error("Bailing out");return}let r=e.nodes(),i=!1;for(let n of r){let a=e.children(n);i=i||a.length>0}if(!i){Z.debug("Done, no node has children",e.nodes());return}Z.debug("Nodes = ",r,t);for(let n of r)if(Z.debug("Extracting node",n,Pr,Pr.has(n)&&!Pr.get(n).externalConnections,!e.parent(n),e.node(n),e.children("D")," Depth ",t),!Pr.has(n))Z.debug("Not a cluster",n,t);else if(!Pr.get(n).externalConnections&&e.children(n)&&e.children(n).length>0){Z.warn("Cluster without external connections, without a parent and with children",n,t);let s=e.graph().rankdir==="TB"?"LR":"TB";Pr.get(n)?.clusterData?.dir&&(s=Pr.get(n).clusterData.dir,Z.warn("Fixing dir",Pr.get(n).clusterData.dir,s));let l=new ui({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Z.warn("Old graph before copy",Ho(e)),sfe(n,e,l,n),e.setNode(n,{clusterNode:!0,id:n,clusterData:Pr.get(n).clusterData,label:Pr.get(n).label,graph:l}),Z.warn("New graph after copy node: (",n,")",Ho(l)),Z.debug("Old graph after copy",Ho(e))}else Z.warn("Cluster ** ",n," **not meeting the criteria !externalConnections:",!Pr.get(n).externalConnections," no parent: ",!e.parent(n)," children ",e.children(n)&&e.children(n).length>0,e.children("D"),t),Z.debug(Pr);r=e.nodes(),Z.warn("New list of nodes",r);for(let n of r){let a=e.node(n);Z.warn(" Now next level",n,a),a?.clusterNode&&cfe(a.graph,t+1)}},"extractor"),ufe=o((e,t)=>{if(t.length===0)return[];let r=Object.assign([],t);return t.forEach(i=>{let n=e.children(i),a=ufe(e,n);r=[...r,...a]}),r},"sorter"),hfe=o(e=>ufe(e,e.children()),"sortNodesByHierarchy")});var pfe={};xr(pfe,{render:()=>utt});var ffe,utt,mfe=z(()=>{"use strict";d9();f9();Uo();$N();Wt();dfe();J4();W4();FN();St();rb();Ut();ffe=o(async(e,t,r,i,n,a)=>{Z.warn("Graph in recursive render:XAX",Ho(t),n);let s=t.graph().rankdir;Z.trace("Dir in recursive render - dir:",s);let l=e.insert("g").attr("class","root");t.nodes()?Z.info("Recursive render XXX",t.nodes()):Z.info("No nodes found for",t),t.edges().length>0&&Z.info("Recursive edges",t.edge(t.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),d=l.insert("g").attr("class","edgeLabels"),f=l.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(y){let v=t.node(y);if(n!==void 0){let x=JSON.parse(JSON.stringify(n.clusterData));Z.trace(`Setting data for parent cluster XXX + Node.id = `,y,` + data=`,x.height,` +Parent cluster`,n.height),t.setNode(n.id,x),t.parent(y)||(Z.trace("Setting parent",y,n.id),t.setParent(y,n.id,x))}if(Z.info("(Insert) Node XXX"+y+": "+JSON.stringify(t.node(y))),v?.clusterNode){Z.info("Cluster identified XBX",y,v.width,t.node(y));let{ranksep:x,nodesep:b}=t.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let T=await ffe(f,v.graph,r,i,t.node(y),a),w=T.elem;ft(v,w),v.diff=T.diff||0,Z.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),Wae(w,v)}else t.children(y).length>0?(Z.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",t),Z.trace(Qg(v.id,t)),Pr.set(v.id,{id:Qg(v.id,t),node:v})):(Z.trace("Node - the non recursive path XAX",y,f,t.node(y),s),await Sg(f,t.node(y),{config:a,dir:s}))})),await o(async()=>{let y=t.edges().map(async function(v){let x=t.edge(v.v,v.w,v.name);Z.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),Z.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(t.edge(v))),Z.info("Fix",Pr,"ids:",v.v,v.w,"Translating: ",Pr.get(v.v),Pr.get(v.w)),await j4(d,x)});await Promise.all(y)},"processEdges")(),Z.info("Graph before layout:",JSON.stringify(Ho(t))),Z.info("############################################# XXX"),Z.info("### Layout ### XXX"),Z.info("############################################# XXX"),Mb(t),Z.info("Graph after layout:",JSON.stringify(Ho(t)));let m=0,{subGraphTitleTotalMargin:g}=zu(a);return await Promise.all(hfe(t).map(async function(y){let v=t.node(y);if(Z.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,Z.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,t.parent(y)),Pr.get(v.id).node=v,nb(v);else if(t.children(y).length>0){Z.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,t.parent(y)),v.height+=g,t.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,T=b-x||0;Z.debug("OffsetY",T,"labelHeight",b,"halfPadding",x),await wg(u,v),Pr.get(v.id).node=v}else{let x=t.node(v.parentId);v.y+=g/2,Z.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),nb(v)}})),t.edges().forEach(function(y){let v=t.edge(y);Z.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(w=>w.y+=g/2);let x=t.node(y.v);var b=t.node(y.w);let T=K4(h,v,Pr,r,x,b,i);X4(v,T)}),t.nodes().forEach(function(y){let v=t.node(y);Z.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),Z.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),utt=o(async(e,t)=>{let r=new ui({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),i=t.select("g");Z4(i,e.markers,e.type,e.diagramId),qae(),Vae(),Oae(),afe(),e.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),Z.debug("Edges:",e.edges),e.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let d=structuredClone(a),f=structuredClone(a),p=structuredClone(a);d.label="",d.arrowTypeEnd="none",d.endLabelLeft="",d.endLabelRight="",d.startLabelLeft="",d.id=s+"-cyclic-special-1",f.startLabelRight="",f.startLabelLeft="",f.endLabelLeft="",f.endLabelRight="",f.arrowTypeStart="none",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-mid",p.label="",p.startLabelRight="",p.startLabelLeft="",p.arrowTypeStart="none",h.isGroup&&(d.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",p.arrowTypeStart="none",r.setEdge(s,l,d,s+"-cyclic-special-0"),r.setEdge(l,u,f,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyce.length)&&(t=e.length);for(var r=0,i=Array(t);r=e.length?{done:!0}:{done:!1,value:e[i++]}},"n"),e:o(function(u){throw u},"e"),f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,s=!0,l=!1;return{s:o(function(){r=r.call(e)},"s"),n:o(function(){var u=r.next();return s=u.done,u},"n"),e:o(function(u){l=!0,a=u},"e"),f:o(function(){try{s||r.return==null||r.return()}finally{if(l)throw a}},"f")}}function q0e(e,t,r){return(t=U0e(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ptt(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function mtt(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,n,a,s,l=[],u=!0,h=!1;try{if(a=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;u=!1}else for(;!(u=(i=a.call(r)).done)&&(l.push(i.value),l.length!==t);u=!0);}catch(d){h=!0,n=d}finally{try{if(!u&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(h)throw n}}return l}}function gtt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ytt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dn(e,t){return htt(e)||mtt(e,t)||uP(e,t)||gtt()}function N3(e){return dtt(e)||ptt(e)||uP(e)||ytt()}function vtt(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function U0e(e){var t=vtt(e,"string");return typeof t=="symbol"?t:t+""}function Wn(e){"@babel/helpers - typeof";return Wn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wn(e)}function uP(e,t){if(e){if(typeof e=="string")return qO(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?qO(e,t):void 0}}function n2(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function a2(){if(vfe)return p9;vfe=1;function e(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}return o(e,"isObject"),p9=e,p9}function Gtt(){if(xfe)return m9;xfe=1;var e=typeof c3=="object"&&c3&&c3.Object===Object&&c3;return m9=e,m9}function j3(){if(bfe)return g9;bfe=1;var e=Gtt(),t=typeof self=="object"&&self&&self.Object===Object&&self,r=e||t||Function("return this")();return g9=r,g9}function Vtt(){if(Tfe)return y9;Tfe=1;var e=j3(),t=o(function(){return e.Date.now()},"now");return y9=t,y9}function Wtt(){if(Cfe)return v9;Cfe=1;var e=/\s/;function t(r){for(var i=r.length;i--&&e.test(r.charAt(i)););return i}return o(t,"trimmedEndIndex"),v9=t,v9}function qtt(){if(kfe)return x9;kfe=1;var e=Wtt(),t=/^\s+/;function r(i){return i&&i.slice(0,e(i)+1).replace(t,"")}return o(r,"baseTrim"),x9=r,x9}function fP(){if(wfe)return b9;wfe=1;var e=j3(),t=e.Symbol;return b9=t,b9}function Utt(){if(Sfe)return T9;Sfe=1;var e=fP(),t=Object.prototype,r=t.hasOwnProperty,i=t.toString,n=e?e.toStringTag:void 0;function a(s){var l=r.call(s,n),u=s[n];try{s[n]=void 0;var h=!0}catch{}var d=i.call(s);return h&&(l?s[n]=u:delete s[n]),d}return o(a,"getRawTag"),T9=a,T9}function Htt(){if(Efe)return C9;Efe=1;var e=Object.prototype,t=e.toString;function r(i){return t.call(i)}return o(r,"objectToString"),C9=r,C9}function eme(){if(Afe)return k9;Afe=1;var e=fP(),t=Utt(),r=Htt(),i="[object Null]",n="[object Undefined]",a=e?e.toStringTag:void 0;function s(l){return l==null?l===void 0?n:i:a&&a in Object(l)?t(l):r(l)}return o(s,"baseGetTag"),k9=s,k9}function Ytt(){if(_fe)return w9;_fe=1;function e(t){return t!=null&&typeof t=="object"}return o(e,"isObjectLike"),w9=e,w9}function s2(){if(Dfe)return S9;Dfe=1;var e=eme(),t=Ytt(),r="[object Symbol]";function i(n){return typeof n=="symbol"||t(n)&&e(n)==r}return o(i,"isSymbol"),S9=i,S9}function jtt(){if(Rfe)return E9;Rfe=1;var e=qtt(),t=a2(),r=s2(),i=NaN,n=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,s=/^0o[0-7]+$/i,l=parseInt;function u(h){if(typeof h=="number")return h;if(r(h))return i;if(t(h)){var d=typeof h.valueOf=="function"?h.valueOf():h;h=t(d)?d+"":d}if(typeof h!="string")return h===0?h:+h;h=e(h);var f=a.test(h);return f||s.test(h)?l(h.slice(2),f?2:8):n.test(h)?i:+h}return o(u,"toNumber"),E9=u,E9}function Xtt(){if(Lfe)return A9;Lfe=1;var e=a2(),t=Vtt(),r=jtt(),i="Expected a function",n=Math.max,a=Math.min;function s(l,u,h){var d,f,p,m,g,y,v=0,x=!1,b=!1,T=!0;if(typeof l!="function")throw new TypeError(i);u=r(u)||0,e(h)&&(x=!!h.leading,b="maxWait"in h,p=b?n(r(h.maxWait)||0,u):p,T="trailing"in h?!!h.trailing:T);function w(_){var R=d,M=f;return d=f=void 0,v=_,m=l.apply(M,R),m}o(w,"invokeFunc");function C(_){return v=_,g=setTimeout(A,u),x?w(_):m}o(C,"leadingEdge");function k(_){var R=_-y,M=_-v,L=u-R;return b?a(L,p-M):L}o(k,"remainingWait");function E(_){var R=_-y,M=_-v;return y===void 0||R>=u||R<0||b&&M>=p}o(E,"shouldInvoke");function A(){var _=t();if(E(_))return N(_);g=setTimeout(A,k(_))}o(A,"timerExpired");function N(_){return g=void 0,T&&d?w(_):(d=f=void 0,m)}o(N,"trailingEdge");function P(){g!==void 0&&clearTimeout(g),v=0,d=y=f=g=void 0}o(P,"cancel");function I(){return g===void 0?m:N(t())}o(I,"flush");function D(){var _=t(),R=E(_);if(d=arguments,f=this,y=_,R){if(g===void 0)return C(y);if(b)return clearTimeout(g),g=setTimeout(A,u),w(y)}return g===void 0&&(g=setTimeout(A,u)),m}return o(D,"debounced"),D.cancel=P,D.flush=I,D}return o(s,"debounce"),A9=s,A9}function ert(e,t,r,i,n){var a=n*Math.PI/180,s=Math.cos(a)*(e-r)-Math.sin(a)*(t-i)+r,l=Math.sin(a)*(e-r)+Math.cos(a)*(t-i)+i;return{x:s,y:l}}function rrt(e,t,r){if(r===0)return e;var i=(t.x1+t.x2)/2,n=(t.y1+t.y2)/2,a=t.w/t.h,s=1/a,l=ert(e.x,e.y,i,n,r),u=trt(l.x,l.y,i,n,a,s);return{x:u.x,y:u.y}}function frt(){return Pfe||(Pfe=1,(function(e,t){(function(){var r,i,n,a,s,l,u,h,d,f,p,m,g,y,v;n=Math.floor,f=Math.min,i=o(function(x,b){return xb?1:0},"defaultCmp"),d=o(function(x,b,T,w,C){var k;if(T==null&&(T=0),C==null&&(C=i),T<0)throw new Error("lo must be non-negative");for(w==null&&(w=x.length);TP;0<=P?N++:N--)A.push(N);return A}).apply(this).reverse(),E=[],w=0,C=k.length;wI;0<=I?++A:--A)D.push(s(x,T));return D},"nsmallest"),y=o(function(x,b,T,w){var C,k,E;for(w==null&&(w=i),C=x[T];T>b;){if(E=T-1>>1,k=x[E],w(C,k)<0){x[T]=k,T=E;continue}break}return x[T]=C},"_siftdown"),v=o(function(x,b,T){var w,C,k,E,A;for(T==null&&(T=i),C=x.length,A=b,k=x[b],w=2*b+1;w-1}return o(t,"listCacheHas"),rO=t,rO}function snt(){if(kpe)return iO;kpe=1;var e=eE();function t(r,i){var n=this.__data__,a=e(n,r);return a<0?(++this.size,n.push([r,i])):n[a][1]=i,this}return o(t,"listCacheSet"),iO=t,iO}function ont(){if(wpe)return nO;wpe=1;var e=rnt(),t=int(),r=nnt(),i=ant(),n=snt();function a(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l-1&&i%1==0&&i0;){var d=n.shift();t(d),a.add(d.id()),l&&i(n,a,d)}return e}function Lme(e,t,r){if(r.isParent())for(var i=r._private.children,n=0;n0&&arguments[0]!==void 0?arguments[0]:yat,t=arguments.length>1?arguments[1]:void 0,r=0;r0?D=R:I=R;while(Math.abs(_)>s&&++M=a?b(P,M):L===0?M:w(P,I,I+h)}o(C,"getTForX");var k=!1;function E(){k=!0,(e!==t||r!==i)&&T()}o(E,"precompute");var A=o(function(I){return k||E(),e===t&&r===i?I:I===0?0:I===1?1:v(C(I),t,i)},"f");A.getControlPoints=function(){return[{x:e,y:t},{x:r,y:i}]};var N="generateBezier("+[e,t,r,i]+")";return A.toString=function(){return N},A}function f0e(e,t,r,i,n){if(i===1||t===r)return r;var a=n(t,r,i);return e==null||((e.roundValue||e.color)&&(a=Math.round(a)),e.min!==void 0&&(a=Math.max(a,e.min)),e.max!==void 0&&(a=Math.min(a,e.max))),a}function p0e(e,t){return e.pfValue!=null||e.value!=null?e.pfValue!=null&&(t==null||t.type.units!=="%")?e.pfValue:e.value:e}function t1(e,t,r,i,n){var a=n!=null?n.type:null;r<0?r=0:r>1&&(r=1);var s=p0e(e,n),l=p0e(t,n);if(Ot(s)&&Ot(l))return f0e(a,s,l,r,i);if(Si(s)&&Si(l)){for(var u=[],h=0;h0?(m==="spring"&&g.push(s.duration),s.easingImpl=A3[m].apply(null,g)):s.easingImpl=A3[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&n&&!e.locked()){var T={};Pb(x.x,b.x)&&(T.x=t1(x.x,b.x,v,y)),Pb(x.y,b.y)&&(T.y=t1(x.y,b.y,v,y)),e.position(T)}var w=s.startPan,C=s.pan,k=a.pan,E=C!=null&&i;E&&(Pb(w.x,C.x)&&(k.x=t1(w.x,C.x,v,y)),Pb(w.y,C.y)&&(k.y=t1(w.y,C.y,v,y)),e.emit("pan"));var A=s.startZoom,N=s.zoom,P=N!=null&&i;P&&(Pb(A,N)&&(a.zoom=Xb(a.minZoom,t1(A,N,v,y),a.maxZoom)),e.emit("zoom")),(E||P)&&e.emit("viewport");var I=s.style;if(I&&I.length>0&&n){for(var D=0;D=0;E--){var A=k[E];A()}k.splice(0,k.length)},"callbacks"),b=m.length-1;b>=0;b--){var T=m[b],w=T._private;if(w.stopped){m.splice(b,1),w.hooked=!1,w.playing=!1,w.started=!1,x(w.frames);continue}!w.playing&&!w.applying||(w.playing&&w.applying&&(w.applying=!1),w.started||Lat(d,T,e),Rat(d,T,e,f),w.applying&&(w.applying=!1),x(w.frames),w.step!=null&&w.step(e),T.completed()&&(m.splice(b,1),w.hooked=!1,w.playing=!1,w.started=!1,x(w.completes)),y=!0)}return!f&&m.length===0&&g.length===0&&i.push(d),y}o(n,"stepOne");for(var a=!1,s=0;s0?t.notify("draw",r):t.notify("draw")),r.unmerge(i),t.emit("step")}function Xme(e){this.options=hr({},$at,zat,e)}function Kme(e){this.options=hr({},Gat,e)}function Zme(e){this.options=hr({},Vat,e)}function lE(e){this.options=hr({},Wat,e),this.options.layout=this;var t=this.options.eles.nodes(),r=this.options.eles.edges(),i=r.filter(function(n){var a=n.source().data("id"),s=n.target().data("id"),l=t.some(function(h){return h.data("id")===a}),u=t.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(i)}function tge(e){this.options=hr({},nst,e)}function DP(e){this.options=hr({},ast,e)}function rge(e){this.options=hr({},sst,e)}function ige(e){this.options=hr({},ost,e)}function nge(e){this.options=e,this.notifications=0}function oge(e,t){t.radius===0?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function LP(e,t,r,i){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return i===0||t.radius===0?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(ust(e,t,r,i,n),{cx:tP,cy:rP,radius:Xp,startX:age,startY:sge,stopX:iP,stopY:nP,startAngle:Pc.ang+Math.PI/2*Zp,endAngle:Yo.ang-Math.PI/2*Zp,counterClockwise:R3})}function lge(e){var t=[];if(e!=null){for(var r=0;r5&&arguments[5]!==void 0?arguments[5]:5,s=Math.min(a,i/2,n/2);e.beginPath(),e.moveTo(t+s,r),e.lineTo(t+i-s,r),e.quadraticCurveTo(t+i,r,t+i,r+s),e.lineTo(t+i,r+n-s),e.quadraticCurveTo(t+i,r+n,t+i-s,r+n),e.lineTo(t+s,r+n),e.quadraticCurveTo(t,r+n,t,r+n-s),e.lineTo(t,r+s),e.quadraticCurveTo(t,r,t+s,r),e.closePath()}function O0e(e,t,r){var i=e.createShader(t);if(e.shaderSource(i,r),e.compileShader(i),!e.getShaderParameter(i,e.COMPILE_STATUS))throw new Error(e.getShaderInfoLog(i));return i}function Jst(e,t,r){var i=O0e(e,e.VERTEX_SHADER,t),n=O0e(e,e.FRAGMENT_SHADER,r),a=e.createProgram();if(e.attachShader(a,i),e.attachShader(a,n),e.linkProgram(a),!e.getProgramParameter(a,e.LINK_STATUS))throw new Error("Could not initialize shaders");return a}function eot(e,t,r){r===void 0&&(r=t);var i=e.makeOffscreenCanvas(t,r),n=i.context=i.getContext("2d");return i.clear=function(){return n.clearRect(0,0,i.width,i.height)},i.clear(),i}function IP(e){var t=e.pixelRatio,r=e.cy.zoom(),i=e.cy.pan();return{zoom:r*t,pan:{x:i.x*t,y:i.y*t}}}function tot(e){var t=e.pixelRatio,r=e.cy.zoom();return r*t}function rot(e,t,r,i,n){var a=i*r+t.x,s=n*r+t.y;return s=Math.round(e.canvasHeight-s),[a,s]}function iot(e){return e.pstyle("background-fill").value!=="solid"||e.pstyle("background-image").strValue!=="none"?!1:e.pstyle("border-width").value===0||e.pstyle("border-opacity").value===0?!0:e.pstyle("border-style").value==="solid"}function not(e,t){if(e.length!==t.length)return!1;for(var r=0;r>0&255)/255,r[1]=(e>>8&255)/255,r[2]=(e>>16&255)/255,r[3]=(e>>24&255)/255,r}function aot(e){return e[0]+(e[1]<<8)+(e[2]<<16)+(e[3]<<24)}function sot(e,t){var r=e.createTexture();return r.buffer=function(i){e.bindTexture(e.TEXTURE_2D,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_NEAREST),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i),e.generateMipmap(e.TEXTURE_2D),e.bindTexture(e.TEXTURE_2D,null)},r.deleteTexture=function(){e.deleteTexture(r)},r}function Tge(e,t){switch(t){case"float":return[1,e.FLOAT,4];case"vec2":return[2,e.FLOAT,4];case"vec3":return[3,e.FLOAT,4];case"vec4":return[4,e.FLOAT,4];case"int":return[1,e.INT,4];case"ivec2":return[2,e.INT,4]}}function Cge(e,t,r){switch(t){case e.FLOAT:return new Float32Array(r);case e.INT:return new Int32Array(r)}}function oot(e,t,r,i,n,a){switch(t){case e.FLOAT:return new Float32Array(r.buffer,a*i,n);case e.INT:return new Int32Array(r.buffer,a*i,n)}}function lot(e,t,r,i){var n=Tge(e,t),a=Dn(n,2),s=a[0],l=a[1],u=Cge(e,l,i),h=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,h),e.bufferData(e.ARRAY_BUFFER,u,e.STATIC_DRAW),l===e.FLOAT?e.vertexAttribPointer(r,s,l,!1,0,0):l===e.INT&&e.vertexAttribIPointer(r,s,l,0,0),e.enableVertexAttribArray(r),e.bindBuffer(e.ARRAY_BUFFER,null),h}function Oc(e,t,r,i){var n=Tge(e,r),a=Dn(n,3),s=a[0],l=a[1],u=a[2],h=Cge(e,l,t*s),d=s*u,f=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,f),e.bufferData(e.ARRAY_BUFFER,t*d,e.DYNAMIC_DRAW),e.enableVertexAttribArray(i),l===e.FLOAT?e.vertexAttribPointer(i,s,l,!1,d,0):l===e.INT&&e.vertexAttribIPointer(i,s,l,d,0),e.vertexAttribDivisor(i,1),e.bindBuffer(e.ARRAY_BUFFER,null);for(var p=new Array(t),m=0;mgge?(Sot(e),t.call(e,a)):(Eot(e),Ege(e,a,Ub.SCREEN)))}}{var r=e.matchCanvasSize;e.matchCanvasSize=function(a){r.call(e,a),e.pickingFrameBuffer.setFramebufferAttachmentSizes(e.canvasWidth,e.canvasHeight),e.pickingFrameBuffer.needsDraw=!0}}e.findNearestElements=function(a,s,l,u){return Mot(e,a,s)};{var i=e.invalidateCachedZSortedEles;e.invalidateCachedZSortedEles=function(){i.call(e),e.pickingFrameBuffer.needsDraw=!0}}{var n=e.notify;e.notify=function(a,s){n.call(e,a,s),a==="viewport"||a==="bounds"?e.pickingFrameBuffer.needsDraw=!0:a==="background"&&e.drawing.invalidate(s,{type:"node-body"})}}}function Sot(e){var t=e.data.contexts[e.WEBGL];t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}function Eot(e){var t=o(function(i){i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,e.canvasWidth,e.canvasHeight),i.restore()},"clear");t(e.data.contexts[e.NODE]),t(e.data.contexts[e.DRAG])}function Aot(e){var t=e.canvasWidth,r=e.canvasHeight,i=IP(e),n=i.pan,a=i.zoom,s=FO();M3(s,s,[n.x,n.y]),sP(s,s,[a,a]);var l=FO();dot(l,t,r);var u=FO();return hot(u,l,s),u}function Sge(e,t){var r=e.canvasWidth,i=e.canvasHeight,n=IP(e),a=n.pan,s=n.zoom;t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,r,i),t.translate(a.x,a.y),t.scale(s,s)}function _ot(e,t){e.drawSelectionRectangle(t,function(r){return Sge(e,r)})}function Dot(e){var t=e.data.contexts[e.NODE];t.save(),Sge(e,t),t.strokeStyle="rgba(0, 0, 0, 0.3)",t.beginPath(),t.moveTo(-1e3,0),t.lineTo(1e3,0),t.stroke(),t.beginPath(),t.moveTo(0,-1e3),t.lineTo(0,1e3),t.stroke(),t.restore()}function Rot(e){var t=o(function(n,a,s){for(var l=n.atlasManager.getAtlasCollection(a),u=e.data.contexts[e.NODE],h=l.atlases,d=0;d=0&&w.add(E)}return w}function Mot(e,t,r){var i=Lot(e,t,r),n=e.getCachedZSortedEles(),a,s,l=Fs(i),u;try{for(l.s();!(u=l.n()).done;){var h=u.value,d=n[h];if(!a&&d.isNode()&&(a=d),!s&&d.isEdge()&&(s=d),a&&s)break}}catch(f){l.e(f)}finally{l.f()}return[a,s].filter(Boolean)}function WO(e,t,r){var i=e.drawing;t+=1,r.isNode()?(i.drawNode(r,t,"node-underlay"),i.drawNode(r,t,"node-body"),i.drawTexture(r,t,"label"),i.drawNode(r,t,"node-overlay")):(i.drawEdgeLine(r,t),i.drawEdgeArrow(r,t,"source"),i.drawEdgeArrow(r,t,"target"),i.drawTexture(r,t,"label"),i.drawTexture(r,t,"edge-source-label"),i.drawTexture(r,t,"edge-target-label"))}function Ege(e,t,r){var i;e.webglDebug&&(i=performance.now());var n=e.drawing,a=0;if(r.screen&&e.data.canvasNeedsRedraw[e.SELECT_BOX]&&_ot(e,t),e.data.canvasNeedsRedraw[e.NODE]||r.picking){var s=e.data.contexts[e.WEBGL];r.screen?(s.clearColor(0,0,0,0),s.enable(s.BLEND),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA)):s.disable(s.BLEND),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),s.viewport(0,0,s.canvas.width,s.canvas.height);var l=Aot(e),u=e.getCachedZSortedEles();if(a=u.length,n.startFrame(l,r),r.screen){for(var h=0;h{"use strict";o(qO,"_arrayLikeToArray");o(htt,"_arrayWithHoles");o(dtt,"_arrayWithoutHoles");o(Kd,"_classCallCheck");o(ftt,"_defineProperties");o(Zd,"_createClass");o(Fs,"_createForOfIteratorHelper");o(q0e,"_defineProperty$1");o(ptt,"_iterableToArray");o(mtt,"_iterableToArrayLimit");o(gtt,"_nonIterableRest");o(ytt,"_nonIterableSpread");o(Dn,"_slicedToArray");o(N3,"_toConsumableArray");o(vtt,"_toPrimitive");o(U0e,"_toPropertyKey");o(Wn,"_typeof");o(uP,"_unsupportedIterableToArray");Gn=typeof window>"u"?null:window,gfe=Gn?Gn.navigator:null;Gn&&Gn.document;xtt=Wn(""),H0e=Wn({}),btt=Wn(function(){}),Ttt=typeof HTMLElement>"u"?"undefined":Wn(HTMLElement),r2=o(function(t){return t&&t.instanceString&&Ji(t.instanceString)?t.instanceString():null},"instanceStr"),sr=o(function(t){return t!=null&&Wn(t)==xtt},"string"),Ji=o(function(t){return t!=null&&Wn(t)===btt},"fn"),Si=o(function(t){return!uo(t)&&(Array.isArray?Array.isArray(t):t!=null&&t instanceof Array)},"array"),Xr=o(function(t){return t!=null&&Wn(t)===H0e&&!Si(t)&&t.constructor===Object},"plainObject"),Ctt=o(function(t){return t!=null&&Wn(t)===H0e},"object"),Ot=o(function(t){return t!=null&&Wn(t)===Wn(1)&&!isNaN(t)},"number"),ktt=o(function(t){return Ot(t)&&Math.floor(t)===t},"integer"),I3=o(function(t){if(Ttt!=="undefined")return t!=null&&t instanceof HTMLElement},"htmlElement"),uo=o(function(t){return i2(t)||Y0e(t)},"elementOrCollection"),i2=o(function(t){return r2(t)==="collection"&&t._private.single},"element"),Y0e=o(function(t){return r2(t)==="collection"&&!t._private.single},"collection"),hP=o(function(t){return r2(t)==="core"},"core"),j0e=o(function(t){return r2(t)==="stylesheet"},"stylesheet"),wtt=o(function(t){return r2(t)==="event"},"event"),qd=o(function(t){return t==null?!0:!!(t===""||t.match(/^\s+$/))},"emptyString"),Stt=o(function(t){return typeof HTMLElement>"u"?!1:t instanceof HTMLElement},"domElement"),Ett=o(function(t){return Xr(t)&&Ot(t.x1)&&Ot(t.x2)&&Ot(t.y1)&&Ot(t.y2)},"boundingBox"),Att=o(function(t){return Ctt(t)&&Ji(t.then)},"promise"),_tt=o(function(){return gfe&&gfe.userAgent.match(/msie|trident|edge/i)},"ms"),p1=o(function(t,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;sr?1:0},"ascending"),Ott=o(function(t,r){return-1*K0e(t,r)},"descending"),hr=Object.assign!=null?Object.assign.bind(Object):function(e){for(var t=arguments,r=1;r1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(d,"hue2rgb");var f=new RegExp("^"+Ltt+"$").exec(t);if(f){if(i=parseInt(f[1]),i<0?i=(360- -1*i%360)%360:i>360&&(i=i%360),i/=360,n=parseFloat(f[2]),n<0||n>100||(n=n/100,a=parseFloat(f[3]),a<0||a>100)||(a=a/100,s=f[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+n):a+n-a*n,m=2*a-p;l=Math.round(255*d(m,p,i+1/3)),u=Math.round(255*d(m,p,i)),h=Math.round(255*d(m,p,i-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),Ftt=o(function(t){var r,i=new RegExp("^"+Dtt+"$").exec(t);if(i){r=[];for(var n=[],a=1;a<=3;a++){var s=i[a];if(s[s.length-1]==="%"&&(n[a]=!0),s=parseFloat(s),n[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=n[1]||n[2]||n[3],u=n[1]&&n[2]&&n[3];if(l&&!u)return;var h=i[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),$tt=o(function(t){return ztt[t.toLowerCase()]},"colorname2tuple"),Z0e=o(function(t){return(Si(t)?t:null)||$tt(t)||Ptt(t)||Ftt(t)||Btt(t)},"color2tuple"),ztt={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Q0e=o(function(t){for(var r=t.map,i=t.keys,n=i.length,a=0;a1&&arguments[1]!==void 0?arguments[1]:Kp,i=r,n;n=t.next(),!n.done;)i=i*rme+n.value|0;return i},"hashIterableInts"),Hb=o(function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Kp;return r*rme+t|0},"hashInt"),Yb=o(function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s1;return(r<<5)+r+t|0},"hashIntAlt"),Qtt=o(function(t,r){return t*2097152+r},"combineHashes"),Pd=o(function(t){return t[0]*2097152+t[1]},"combineHashesArray"),u3=o(function(t,r){return[Hb(t[0],r[0]),Yb(t[1],r[1])]},"hashArrays"),Mfe=o(function(t,r){var i={value:0,done:!1},n=0,a=t.length,s={next:o(function(){return n=0;n--)t[n]===r&&t.splice(n,1)},"removeFromArray"),gP=o(function(t){t.splice(0,t.length)},"clearArray"),lrt=o(function(t,r){for(var i=0;i"u"?"undefined":Wn(Set))!==urt?Set:hrt,X3=o(function(t,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(t===void 0||r===void 0||!hP(t)){Yi("An element must have a core reference and parameters set");return}var n=r.group;if(n==null&&(r.data&&r.data.source!=null&&r.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){Yi("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var a=this._private={cy:t,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?n==="edges":!!r.pannable,active:!1,classes:new y1,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=t.pan(),u=t.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];Si(r.classes)?h=r.classes:sr(r.classes)&&(h=r.classes.split(/\s+/));for(var d=0,f=h.length;d0;){var k=b.pop(),E=v(k),A=k.id();if(p[A]=E,E!==1/0)for(var N=k.neighborhood().intersect(g),P=0;P0)for(O.unshift(B);f[G];){var F=f[G];O.unshift(F.edge),O.unshift(F.node),$=F.node,G=$.id()}return l.spawn(O)},"pathTo")}},"dijkstra")},vrt={kruskal:o(function(t){t=t||function(T){return 1};for(var r=this.byGroup(),i=r.nodes,n=r.edges,a=i.length,s=new Array(a),l=i,u=o(function(w){for(var C=0;C0;){if(C(),E++,w===d){for(var A=[],N=a,P=d,I=x[P];A.unshift(N),I!=null&&A.unshift(I),N=v[P],N!=null;)P=N.id(),I=x[P];return{found:!0,distance:f[w],path:this.spawn(A),steps:E}}m[w]=!0;for(var D=T._private.edges,_=0;_I&&(g[P]=I,b[P]=N,T[P]=C),!a){var D=N*d+A;!a&&g[D]>I&&(g[D]=I,b[D]=A,T[D]=C)}}}for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:s,$e=T(we),de=[],rt=$e;;){if(rt==null)return r.spawn();var ke=b(rt),Fe=ke.edge,He=ke.pred;if(de.unshift(rt[0]),rt.same(Me)&&de.length>0)break;Fe!=null&&de.unshift(Fe),rt=He}return u.spawn(de)},"pathTo"),k=0;k=0;d--){var f=h[d],p=f[1],m=f[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(d,1)}for(var g=0;gn;){var a=Math.floor(Math.random()*r.length);r=Ert(a,t,r),i--}return r},"contractUntil"),Art={kargerStein:o(function(){var t=this,r=this.byGroup(),i=r.nodes,n=r.edges;n.unmergeBy(function(O){return O.isLoop()});var a=i.length,s=n.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/Srt);if(a<2){Yi("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],d=0;d1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.length,n=1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.length,n=-1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.length,n=0,a=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;n?t=t.slice(r,i):(i0&&t.splice(0,r));for(var l=0,u=t.length-1;u>=0;u--){var h=t[u];s?isFinite(h)||(t[u]=-1/0,l++):t.splice(u,1)}a&&t.sort(function(p,m){return p-m});var d=t.length,f=Math.floor(d/2);return d%2!==0?t[f+1+l]:(t[f-1+l]+t[f+l])/2},"median"),Nrt=o(function(t){return Math.PI*t/180},"deg2rad"),h3=o(function(t,r){return Math.atan2(r,t)-Math.PI/2},"getAngleFromDisp"),yP=Math.log2||function(e){return Math.log(e)/Math.log(2)},vP=o(function(t){return t>0?1:t<0?-1:0},"signum"),e0=o(function(t,r){return Math.sqrt(jp(t,r))},"dist"),jp=o(function(t,r){var i=r.x-t.x,n=r.y-t.y;return i*i+n*n},"sqdist"),Irt=o(function(t){for(var r=t.length,i=0,n=0;n=t.x1&&t.y2>=t.y1)return{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,w:t.x2-t.x1,h:t.y2-t.y1};if(t.w!=null&&t.h!=null&&t.w>=0&&t.h>=0)return{x1:t.x1,y1:t.y1,x2:t.x1+t.w,y2:t.y1+t.h,w:t.w,h:t.h}}},"makeBoundingBox"),Prt=o(function(t){return{x1:t.x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h}},"copyBoundingBox"),Brt=o(function(t){t.x1=1/0,t.y1=1/0,t.x2=-1/0,t.y2=-1/0,t.w=0,t.h=0},"clearBoundingBox"),Frt=o(function(t,r){t.x1=Math.min(t.x1,r.x1),t.x2=Math.max(t.x2,r.x2),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,r.y1),t.y2=Math.max(t.y2,r.y2),t.h=t.y2-t.y1},"updateBoundingBox"),ume=o(function(t,r,i){t.x1=Math.min(t.x1,r),t.x2=Math.max(t.x2,r),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,i),t.y2=Math.max(t.y2,i),t.h=t.y2-t.y1},"expandBoundingBoxByPoint"),k3=o(function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return t.x1-=r,t.x2+=r,t.y1-=r,t.y2+=r,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},"expandBoundingBox"),w3=o(function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],i,n,a,s;if(r.length===1)i=n=a=s=r[0];else if(r.length===2)i=a=r[0],s=n=r[1];else if(r.length===4){var l=Dn(r,4);i=l[0],n=l[1],a=l[2],s=l[3]}return t.x1-=s,t.x2+=n,t.y1-=i,t.y2+=a,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},"expandBoundingBoxSides"),Ffe=o(function(t,r){t.x1=r.x1,t.y1=r.y1,t.x2=r.x2,t.y2=r.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1},"assignBoundingBox"),xP=o(function(t,r){return!(t.x1>r.x2||r.x1>t.x2||t.x2r.y2||r.y1>t.y2)},"boundingBoxesIntersect"),zd=o(function(t,r,i){return t.x1<=r&&r<=t.x2&&t.y1<=i&&i<=t.y2},"inBoundingBox"),$fe=o(function(t,r){return zd(t,r.x,r.y)},"pointInBoundingBox"),hme=o(function(t,r){return zd(t,r.x1,r.y1)&&zd(t,r.x2,r.y2)},"boundingBoxInBoundingBox"),$rt=(L9=Math.hypot)!==null&&L9!==void 0?L9:function(e,t){return Math.sqrt(e*e+t*t)};o(zrt,"inflatePolygon");o(Grt,"miterBox");dme=o(function(t,r,i,n,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?Hd(a,s):u,d=a/2,f=s/2;h=Math.min(h,d,f);var p=h!==d,m=h!==f,g;if(p){var y=i-d+h-l,v=n-f-l,x=i+d-h+l,b=v;if(g=Gd(t,r,i,n,y,v,x,b,!1),g.length>0)return g}if(m){var T=i+d+l,w=n-f+h-l,C=T,k=n+f-h+l;if(g=Gd(t,r,i,n,T,w,C,k,!1),g.length>0)return g}if(p){var E=i-d+h-l,A=n+f+l,N=i+d-h+l,P=A;if(g=Gd(t,r,i,n,E,A,N,P,!1),g.length>0)return g}if(m){var I=i-d-l,D=n-f+h-l,_=I,R=n+f-h+l;if(g=Gd(t,r,i,n,I,D,_,R,!1),g.length>0)return g}var M;{var L=i-d+h,B=n-f+h;if(M=zb(t,r,i,n,L,B,h+l),M.length>0&&M[0]<=L&&M[1]<=B)return[M[0],M[1]]}{var O=i+d-h,$=n-f+h;if(M=zb(t,r,i,n,O,$,h+l),M.length>0&&M[0]>=O&&M[1]<=$)return[M[0],M[1]]}{var G=i+d-h,F=n+f-h;if(M=zb(t,r,i,n,G,F,h+l),M.length>0&&M[0]>=G&&M[1]>=F)return[M[0],M[1]]}{var V=i-d+h,H=n+f-h;if(M=zb(t,r,i,n,V,H,h+l),M.length>0&&M[0]<=V&&M[1]>=H)return[M[0],M[1]]}return[]},"roundRectangleIntersectLine"),Vrt=o(function(t,r,i,n,a,s,l){var u=l,h=Math.min(i,a),d=Math.max(i,a),f=Math.min(n,s),p=Math.max(n,s);return h-u<=t&&t<=d+u&&f-u<=r&&r<=p+u},"inLineVicinity"),Wrt=o(function(t,r,i,n,a,s,l,u,h){var d={x1:Math.min(i,l,a)-h,x2:Math.max(i,l,a)+h,y1:Math.min(n,u,s)-h,y2:Math.max(n,u,s)+h};return!(td.x2||rd.y2)},"inBezierVicinity"),qrt=o(function(t,r,i,n){i-=n;var a=r*r-4*t*i;if(a<0)return[];var s=Math.sqrt(a),l=2*t,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),Urt=o(function(t,r,i,n,a){var s=1e-5;t===0&&(t=s),r/=t,i/=t,n/=t;var l,u,h,d,f,p,m,g;if(u=(3*i-r*r)/9,h=-(27*n)+r*(9*i-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){f=h+Math.sqrt(l),f=f<0?-Math.pow(-f,1/3):Math.pow(f,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+f+p,m+=(f+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+f)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,d=u*u*u,d=Math.acos(h/Math.sqrt(d)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(d/3),a[2]=-m+g*Math.cos((d+2*Math.PI)/3),a[4]=-m+g*Math.cos((d+4*Math.PI)/3)},"solveCubic"),Hrt=o(function(t,r,i,n,a,s,l,u){var h=1*i*i-4*i*a+2*i*l+4*a*a-4*a*l+l*l+n*n-4*n*s+2*n*u+4*s*s-4*s*u+u*u,d=9*i*a-3*i*i-3*i*l-6*a*a+3*a*l+9*n*s-3*n*n-3*n*u-6*s*s+3*s*u,f=3*i*i-6*i*a+i*l-i*t+2*a*a+2*a*t-l*t+3*n*n-6*n*s+n*u-n*r+2*s*s+2*s*r-u*r,p=1*i*a-i*i+i*t-a*t+n*s-n*n+n*r-s*r,m=[];Urt(h,d,f,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,T,w,C=0;C=0?wh?(t-a)*(t-a)+(r-s)*(r-s):d-p},"sqdistToFiniteLine"),Bs=o(function(t,r,i){for(var n,a,s,l,u,h=0,d=0;d=t&&t>=s||n<=t&&t<=s)u=(t-n)/(s-n)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),Qu=o(function(t,r,i,n,a,s,l,u,h){var d=new Array(i.length),f;u[0]!=null?(f=Math.atan(u[1]/u[0]),u[0]<0?f=f+Math.PI/2:f=-f-Math.PI/2):f=u;for(var p=Math.cos(-f),m=Math.sin(-f),g=0;g0){var v=F3(d,-h);y=B3(v)}else y=d;return Bs(t,r,y)},"pointInsidePolygon"),jrt=o(function(t,r,i,n,a,s,l,u){for(var h=new Array(i.length*2),d=0;d=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var T=b[0]*u[0]+t,w=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[T,w];var C=b[1]*u[0]+t,k=b[1]*u[1]+r;return[T,w,C,k]}else return[T,w]},"intersectLineCircle"),M9=o(function(t,r,i){return r<=t&&t<=i||i<=t&&t<=r?t:t<=r&&r<=i||i<=r&&r<=t?r:i},"midOfThree"),Gd=o(function(t,r,i,n,a,s,l,u,h){var d=t-a,f=i-t,p=l-a,m=r-s,g=n-r,y=u-s,v=p*m-y*d,x=f*m-g*d,b=y*f-p*g;if(b!==0){var T=v/b,w=x/b,C=.001,k=0-C,E=1+C;return k<=T&&T<=E&&k<=w&&w<=E?[t+T*f,r+T*g]:h?[t+T*f,r+T*g]:[]}else return v===0||x===0?M9(t,i,l)===l?[l,u]:M9(t,i,a)===a?[a,s]:M9(a,l,i)===i?[i,n]:[]:[]},"finiteLinesIntersect"),Krt=o(function(t,r,i,n,a){var s=[],l=n/2,u=a/2,h=r,d=i;s.push({x:h+l*t[0],y:d+u*t[1]});for(var f=1;f0){var y=F3(f,-u);m=B3(y)}else m=f}else m=i;for(var v,x,b,T,w=0;w2){for(var g=[d[0],d[1]],y=Math.pow(g[0]-t,2)+Math.pow(g[1]-r,2),v=1;vd&&(d=w)},"set"),get:o(function(T){return h[T]},"get")},p=0;p0?M=R.edgesTo(_)[0]:M=_.edgesTo(R)[0];var L=n(M);_=_.id(),E[_]>E[I]+L&&(E[_]=E[I]+L,A.nodes.indexOf(_)<0?A.push(_):A.updateItem(_),k[_]=0,C[_]=[]),E[_]==E[I]+L&&(k[_]=k[_]+k[I],C[_].push(I))}else for(var B=0;B0;){for(var F=w.pop(),V=0;V0&&l.push(i[u]);l.length!==0&&a.push(n.collection(l))}return a},"assign"),hit=o(function(t,r){for(var i=0;i5&&arguments[5]!==void 0?arguments[5]:pit,l=n,u,h,d=0;d=2?Nb(t,r,i,0,qfe,mit):Nb(t,r,i,0,Wfe)},"euclidean"),squaredEuclidean:o(function(t,r,i){return Nb(t,r,i,0,qfe)},"squaredEuclidean"),manhattan:o(function(t,r,i){return Nb(t,r,i,0,Wfe)},"manhattan"),max:o(function(t,r,i){return Nb(t,r,i,-1/0,git)},"max")};m1["squared-euclidean"]=m1.squaredEuclidean;m1.squaredeuclidean=m1.squaredEuclidean;o(Z3,"clusteringDistance");yit=va({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),TP=o(function(t){return yit(t)},"setOptions"),$3=o(function(t,r,i,n,a){var s=a!=="kMedoids",l=s?function(f){return i[f]}:function(f){return n[f](i)},u=o(function(p){return n[p](r)},"getQ"),h=i,d=r;return Z3(t,n.length,l,u,h,d)},"getDist"),I9=o(function(t,r,i){for(var n=i.length,a=new Array(n),s=new Array(n),l=new Array(r),u=null,h=0;hi)return!1}return!0},"haveMatricesConverged"),bit=o(function(t,r,i){for(var n=0;nl&&(l=r[h][d],u=d);a[u].push(t[h])}for(var f=0;f=a.threshold||a.mode==="dendrogram"&&t.length===1)return!1;var g=r[s],y=r[n[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},t[g.index]=v,t.splice(y.index,1),r[g.key]=v;for(var x=0;xi[y.key][b.key]&&(u=i[y.key][b.key])):a.linkage==="max"?(u=i[g.key][b.key],i[g.key][b.key]0&&n.push(a);return n},"findExemplars"),Kfe=o(function(t,r,i){for(var n=[],a=0;al&&(s=h,l=r[a*t+h])}s>0&&n.push(s)}for(var d=0;dh&&(u=d,h=f)}i[a]=s[u]}return n=Kfe(t,r,i),n},"assign"),Zfe=o(function(t){for(var r=this.cy(),i=this.nodes(),n=Mit(t),a={},s=0;s=I?(D=I,I=R,_=M):R>D&&(D=R);for(var L=0;L0?1:0;E[N%n.minIterations*l+V]=H,F+=H}if(F>0&&(N>=n.minIterations-1||N==n.maxIterations-1)){for(var j=0,U=0;U1||k>1)&&(l=!0),f[T]=[],b.outgoers().forEach(function(A){A.isEdge()&&f[T].push(A.id())})}else p[T]=[void 0,b.target().id()]}):s.forEach(function(b){var T=b.id();if(b.isNode()){var w=b.degree(!0);w%2&&(u?h?l=!0:h=T:u=T),f[T]=[],b.connectedEdges().forEach(function(C){return f[T].push(C.id())})}else p[T]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(d&&h!=d)return m;d=h}else{if(d&&h!=d&&u!=d)return m;d||(d=h)}else d||(d=s[0].id());var g=o(function(T){for(var w=T,C=[T],k,E,A;f[w].length;)k=f[w].shift(),E=p[k][0],A=p[k][1],w!=A?(f[A]=f[A].filter(function(N){return N!=k}),w=A):!a&&w!=E&&(f[E]=f[E].filter(function(N){return N!=k}),w=E),C.unshift(k),C.unshift(w);return C},"walk"),y=[],v=[];for(v=g(d);v.length!=1;)f[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in f)if(f[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},f3=o(function(){var t=this,r={},i=0,n=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=t.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(t);v.merge(x),b.forEach(function(T){var w=T.id(),C=T.connectedEdges().intersection(t);v.merge(T),r[w].cutVertex?v.merge(C.filter(function(k){return k.isLoop()})):v.merge(C)})}),a.push(v)},"buildComponent"),h=o(function(p,m,g){p===g&&(n+=1),r[m]={id:i,low:i++,cutVertex:!1};var y=t.getElementById(m).connectedEdges().intersection(t);if(y.size()===0)a.push(t.spawn(t.getElementById(m)));else{var v,x,b,T;y.forEach(function(w){v=w.source().id(),x=w.target().id(),b=v===m?x:v,b!==g&&(T=w.id(),l[T]||(l[T]=!0,s.push({x:m,y:b,edge:w})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(h(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");t.forEach(function(f){if(f.isNode()){var p=f.id();p in r||(n=0,h(p,p),r[p].cutVertex=n>1)}});var d=Object.keys(r).filter(function(f){return r[f].cutVertex}).map(function(f){return t.getElementById(f)});return{cut:t.spawn(d),components:a}},"hopcroftTarjanBiconnected"),zit={hopcroftTarjanBiconnected:f3,htbc:f3,htb:f3,hopcroftTarjanBiconnectedComponents:f3},p3=o(function(){var t=this,r={},i=0,n=[],a=[],s=t.spawn(t),l=o(function(h){a.push(h),r[h]={index:i,low:i++,explored:!1};var d=t.getElementById(h).connectedEdges().intersection(t);if(d.forEach(function(y){var v=y.target().id();v!==h&&(v in r||l(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var f=t.spawn();;){var p=a.pop();if(f.merge(t.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=f.edgesWith(f),g=f.merge(m);n.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return t.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:n}},"tarjanStronglyConnected"),Git={tarjanStronglyConnected:p3,tsc:p3,tscc:p3,tarjanStronglyConnectedComponents:p3},xme={};[jb,yrt,vrt,brt,Crt,wrt,Art,eit,h1,d1,YO,fit,Eit,Rit,Bit,$it,zit,Git].forEach(function(e){hr(xme,e)});bme=0,Tme=1,Cme=2,$l=o(function(t){if(!(this instanceof $l))return new $l(t);this.id="Thenable/1.0.7",this.state=bme,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof t=="function"&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");$l.prototype={fulfill:o(function(t){return Qfe(this,Tme,"fulfillValue",t)},"fulfill"),reject:o(function(t){return Qfe(this,Cme,"rejectReason",t)},"reject"),then:o(function(t,r){var i=this,n=new $l;return i.onFulfilled.push(epe(t,n,"fulfill")),i.onRejected.push(epe(r,n,"reject")),kme(i),n.proxy},"then")};Qfe=o(function(t,r,i,n){return t.state===bme&&(t.state=r,t[i]=n,kme(t)),t},"deliver"),kme=o(function(t){t.state===Tme?Jfe(t,"onFulfilled",t.fulfillValue):t.state===Cme&&Jfe(t,"onRejected",t.rejectReason)},"execute"),Jfe=o(function(t,r,i){if(t[r].length!==0){var n=t[r];t[r]=[];var a=o(function(){for(var l=0;l0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,i=r.length!==void 0,n=i?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s0&&this.spawn(n).updateStyle().emit("class"),r},"classes"),addClass:o(function(t){return this.toggleClass(t,!0)},"addClass"),hasClass:o(function(t){var r=this[0];return r!=null&&r._private.classes.has(t)},"hasClass"),toggleClass:o(function(t,r){Si(t)||(t=t.match(/\S+/g)||[]);for(var i=this,n=r===void 0,a=[],s=0,l=i.length;s0&&this.spawn(a).updateStyle().emit("class"),i},"toggleClass"),removeClass:o(function(t){return this.toggleClass(t,!1)},"removeClass"),flashClass:o(function(t,r){var i=this;if(r==null)r=250;else if(r===0)return i;return i.addClass(t),setTimeout(function(){i.removeClass(t)},r),i},"flashClass")};S3.className=S3.classNames=S3.classes;jr={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Vn,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};jr.variable="(?:[\\w-.]|(?:\\\\"+jr.metaChar+"))+";jr.className="(?:[\\w-]|(?:\\\\"+jr.metaChar+"))+";jr.value=jr.string+"|"+jr.number;jr.id=jr.variable;(function(){var e,t,r;for(e=jr.comparatorOp.split("|"),r=0;r=0)&&t!=="="&&(jr.comparatorOp+="|\\!"+t)})();xi=o(function(){return{checks:[]}},"newQuery"),Yt={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},ZO=[{selector:":selected",matches:o(function(t){return t.selected()},"matches")},{selector:":unselected",matches:o(function(t){return!t.selected()},"matches")},{selector:":selectable",matches:o(function(t){return t.selectable()},"matches")},{selector:":unselectable",matches:o(function(t){return!t.selectable()},"matches")},{selector:":locked",matches:o(function(t){return t.locked()},"matches")},{selector:":unlocked",matches:o(function(t){return!t.locked()},"matches")},{selector:":visible",matches:o(function(t){return t.visible()},"matches")},{selector:":hidden",matches:o(function(t){return!t.visible()},"matches")},{selector:":transparent",matches:o(function(t){return t.transparent()},"matches")},{selector:":grabbed",matches:o(function(t){return t.grabbed()},"matches")},{selector:":free",matches:o(function(t){return!t.grabbed()},"matches")},{selector:":removed",matches:o(function(t){return t.removed()},"matches")},{selector:":inside",matches:o(function(t){return!t.removed()},"matches")},{selector:":grabbable",matches:o(function(t){return t.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(t){return!t.grabbable()},"matches")},{selector:":animated",matches:o(function(t){return t.animated()},"matches")},{selector:":unanimated",matches:o(function(t){return!t.animated()},"matches")},{selector:":parent",matches:o(function(t){return t.isParent()},"matches")},{selector:":childless",matches:o(function(t){return t.isChildless()},"matches")},{selector:":child",matches:o(function(t){return t.isChild()},"matches")},{selector:":orphan",matches:o(function(t){return t.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(t){return t.isChild()},"matches")},{selector:":compound",matches:o(function(t){return t.isNode()?t.isParent():t.source().isParent()||t.target().isParent()},"matches")},{selector:":loop",matches:o(function(t){return t.isLoop()},"matches")},{selector:":simple",matches:o(function(t){return t.isSimple()},"matches")},{selector:":active",matches:o(function(t){return t.active()},"matches")},{selector:":inactive",matches:o(function(t){return!t.active()},"matches")},{selector:":backgrounding",matches:o(function(t){return t.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(t){return!t.backgrounding()},"matches")}].sort(function(e,t){return Ott(e.selector,t.selector)}),Fnt=(function(){for(var e={},t,r=0;r0&&d.edgeCount>0)return di("The selector `"+t+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(d.edgeCount>1)return di("The selector `"+t+"` is invalid because it uses multiple edge selectors"),!1;d.edgeCount===1&&di("The selector `"+t+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),qnt=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var t=o(function(d){return d??""},"clean"),r=o(function(d){return sr(d)?'"'+d+'"':t(d)},"cleanVal"),i=o(function(d){return" "+d+" "},"space"),n=o(function(d,f){var p=d.type,m=d.value;switch(p){case Yt.GROUP:{var g=t(m);return g.substring(0,g.length-1)}case Yt.DATA_COMPARE:{var y=d.field,v=d.operator;return"["+y+i(t(v))+r(m)+"]"}case Yt.DATA_BOOL:{var x=d.operator,b=d.field;return"["+t(x)+b+"]"}case Yt.DATA_EXIST:{var T=d.field;return"["+T+"]"}case Yt.META_COMPARE:{var w=d.operator,C=d.field;return"[["+C+i(t(w))+r(m)+"]]"}case Yt.STATE:return m;case Yt.ID:return"#"+m;case Yt.CLASS:return"."+m;case Yt.PARENT:case Yt.CHILD:return a(d.parent,f)+i(">")+a(d.child,f);case Yt.ANCESTOR:case Yt.DESCENDANT:return a(d.ancestor,f)+" "+a(d.descendant,f);case Yt.COMPOUND_SPLIT:{var k=a(d.left,f),E=a(d.subject,f),A=a(d.right,f);return k+(k.length>0?" ":"")+E+A}case Yt.TRUE:return""}},"checkToString"),a=o(function(d,f){return d.checks.reduce(function(p,m,g){return p+(f===d&&g===0?"$":"")+n(m,f)},"")},"queryToString"),s="",l=0;l1&&l=0&&(r=r.replace("!",""),f=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),d=!0),(a||l||d)&&(u=!a&&!s?"":""+t,h=""+i),d&&(t=u=u.toLowerCase(),i=h=h.toLowerCase()),r){case"*=":n=u.indexOf(h)>=0;break;case"$=":n=u.indexOf(h,u.length-h.length)>=0;break;case"^=":n=u.indexOf(h)===0;break;case"=":n=t===i;break;case">":p=!0,n=t>i;break;case">=":p=!0,n=t>=i;break;case"<":p=!0,n=t1&&arguments[1]!==void 0?arguments[1]:!0;return SP(this,e,t,Lme)};o(Mme,"addParent");g1.forEachUp=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return SP(this,e,t,Mme)};o(Qnt,"addParentAndChildren");g1.forEachUpAndDown=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return SP(this,e,t,Qnt)};g1.ancestors=g1.parents;Zb=Nme={data:hi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:hi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:hi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:hi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:hi.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:hi.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var t=this[0];if(t)return t._private.data.id},"id")};Zb.attr=Zb.data;Zb.removeAttr=Zb.removeData;Jnt=Nme,rE={};o(MO,"defineDegreeFunction");hr(rE,{degree:MO(function(e,t){return t.source().same(t.target())?2:1}),indegree:MO(function(e,t){return t.target().same(e)?1:0}),outdegree:MO(function(e,t){return t.source().same(e)?1:0})});o(e1,"defineDegreeBoundsFunction");hr(rE,{minDegree:e1("degree",function(e,t){return et}),minIndegree:e1("indegree",function(e,t){return et}),minOutdegree:e1("outdegree",function(e,t){return et})});hr(rE,{totalDegree:o(function(t){for(var r=0,i=this.nodes(),n=0;n0,p=f;f&&(d=d[0]);var m=p?d.position():{x:0,y:0};r!==void 0?h.position(t,r+m[t]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=i.position(),y=l?i.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},t===void 0?a:a[t]}else if(!s)return;return this},"relativePosition")};Fl.modelPosition=Fl.point=Fl.position;Fl.modelPositions=Fl.points=Fl.positions;Fl.renderedPoint=Fl.renderedPosition;Fl.relativePoint=Fl.relativePosition;eat=Ime;f1=Qd={};Qd.renderedBoundingBox=function(e){var t=this.boundingBox(e),r=this.cy(),i=r.zoom(),n=r.pan(),a=t.x1*i+n.x,s=t.x2*i+n.x,l=t.y1*i+n.y,u=t.y2*i+n.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Qd.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.cy();return!t.styleEnabled()||!t.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var i=r._private;i.compoundBoundsClean=!1,i.bbCache=null,e||r.emitAndNotify("bounds")}}),this)};Qd.updateCompoundBounds=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function r(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",d={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},f=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(f.w===0||f.h===0)&&(f={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},f.x1=p.x-f.w/2,f.x2=p.x+f.w/2,f.y1=p.y-f.h/2,f.y2=p.y+f.h/2);function m(N,P,I){var D=0,_=0,R=P+I;return N>0&&R>0&&(D=P/R*N,_=I/R*N),{biasDiff:D,biasComplementDiff:_}}o(m,"computeBiasValues");function g(N,P,I,D){if(I.units==="%")switch(D){case"width":return N>0?I.pfValue*N:0;case"height":return P>0?I.pfValue*P:0;case"average":return N>0&&P>0?I.pfValue*(N+P)/2:0;case"min":return N>0&&P>0?N>P?I.pfValue*P:I.pfValue*N:0;case"max":return N>0&&P>0?N>P?I.pfValue*N:I.pfValue*P:0;default:return 0}else return I.units==="px"?I.pfValue:0}o(g,"computePaddingValues");var y=d.width.left.value;d.width.left.units==="px"&&d.width.val>0&&(y=y*100/d.width.val);var v=d.width.right.value;d.width.right.units==="px"&&d.width.val>0&&(v=v*100/d.width.val);var x=d.height.top.value;d.height.top.units==="px"&&d.height.val>0&&(x=x*100/d.height.val);var b=d.height.bottom.value;d.height.bottom.units==="px"&&d.height.val>0&&(b=b*100/d.height.val);var T=m(d.width.val-f.w,y,v),w=T.biasDiff,C=T.biasComplementDiff,k=m(d.height.val-f.h,x,b),E=k.biasDiff,A=k.biasComplementDiff;l.autoPadding=g(f.w,f.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(f.w,d.width.val),p.x=(-w+f.x1+f.x2+C)/2,l.autoHeight=Math.max(f.h,d.height.val),p.y=(-E+f.y1+f.y2+A)/2}o(r,"update");for(var i=0;it.x2?n:t.x2,t.y1=it.y2?a:t.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1)},"updateBounds"),Fd=o(function(t,r){return r==null?t:Bl(t,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),Ib=o(function(t,r,i){return Ps(t,r,i)},"prefixedProperty"),m3=o(function(t,r,i){if(!r.cy().headless()){var n=r._private,a=n.rstyle,s=a.arrowWidth/2,l=r.pstyle(i+"-arrow-shape").value,u,h;if(l!=="none"){i==="source"?(u=a.srcX,h=a.srcY):i==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var d=n.arrowBounds=n.arrowBounds||{},f=d[i]=d[i]||{};f.x1=u-s,f.y1=h-s,f.x2=u+s,f.y2=h+s,f.w=f.x2-f.x1,f.h=f.y2-f.y1,k3(f,1),Bl(t,f.x1,f.y1,f.x2,f.y2)}}},"updateBoundsFromArrow"),NO=o(function(t,r,i){if(!r.cy().headless()){var n;i?n=i+"-":n="";var a=r._private,s=a.rstyle,l=r.pstyle(n+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),d=Ib(s,"labelWidth",i),f=Ib(s,"labelHeight",i),p=Ib(s,"labelX",i),m=Ib(s,"labelY",i),g=r.pstyle(n+"text-margin-x").pfValue,y=r.pstyle(n+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(n+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,T=r.pstyle("text-border-width").pfValue,w=T/2,C=r.pstyle("text-background-padding").pfValue,k=2,E=f,A=d,N=A/2,P=E/2,I,D,_,R;if(v)I=p-N,D=p+N,_=m-P,R=m+P;else{switch(u.value){case"left":I=p-A,D=p;break;case"center":I=p-N,D=p+N;break;case"right":I=p,D=p+A;break}switch(h.value){case"top":_=m-E,R=m;break;case"center":_=m-P,R=m+P;break;case"bottom":_=m,R=m+E;break}}var M=g-Math.max(b,w)-C-k,L=g+Math.max(b,w)+C+k,B=y-Math.max(b,w)-C-k,O=y+Math.max(b,w)+C+k;I+=M,D+=L,_+=B,R+=O;var $=i||"main",G=a.labelBounds,F=G[$]=G[$]||{};F.x1=I,F.y1=_,F.x2=D,F.y2=R,F.w=D-I,F.h=R-_,F.leftPad=M,F.rightPad=L,F.topPad=B,F.botPad=O;var V=v&&x.strValue==="autorotate",H=x.pfValue!=null&&x.pfValue!==0;if(V||H){var j=V?Ib(a.rstyle,"labelAngle",i):x.pfValue,U=Math.cos(j),Q=Math.sin(j),Y=(I+D)/2,ae=(_+R)/2;if(!v){switch(u.value){case"left":Y=D;break;case"right":Y=I;break}switch(h.value){case"top":ae=R;break;case"bottom":ae=_;break}}var J=o(function(Ee,we){return Ee=Ee-Y,we=we-ae,{x:Ee*U-we*Q+Y,y:Ee*Q+we*U+ae}},"rotate"),te=J(I,_),re=J(I,R),ee=J(D,_),Te=J(D,R);I=Math.min(te.x,re.x,ee.x,Te.x),D=Math.max(te.x,re.x,ee.x,Te.x),_=Math.min(te.y,re.y,ee.y,Te.y),R=Math.max(te.y,re.y,ee.y,Te.y)}var ue=$+"Rot",De=G[ue]=G[ue]||{};De.x1=I,De.y1=_,De.x2=D,De.y2=R,De.w=D-I,De.h=R-_,Bl(t,I,_,D,R),Bl(a.labelBounds.all,I,_,D,R)}return t}},"updateBoundsFromLabel"),Jpe=o(function(t,r){if(!r.cy().headless()){var i=r.pstyle("outline-opacity").value,n=r.pstyle("outline-width").value,a=r.pstyle("outline-offset").value,s=n+a;Pme(t,r,i,s,"outside",s/2)}},"updateBoundsFromOutline"),Pme=o(function(t,r,i,n,a,s){if(!(i===0||n<=0||a==="inside")){var l=r.cy(),u=r.pstyle("shape").value,h=l.renderer().nodeShapes[u],d=r.position(),f=d.x,p=d.y,m=r.width(),g=r.height();if(h.hasMiterBounds){a==="center"&&(n/=2);var y=h.miterBounds(f,p,m,g,n);Fd(t,y)}else s!=null&&s>0&&w3(t,[s,s,s,s])}},"updateBoundsFromMiter"),tat=o(function(t,r){if(!r.cy().headless()){var i=r.pstyle("border-opacity").value,n=r.pstyle("border-width").pfValue,a=r.pstyle("border-position").value;Pme(t,r,i,n,a)}},"updateBoundsFromMiterBorder"),rat=o(function(t,r){var i=t._private.cy,n=i.styleEnabled(),a=i.headless(),s=is(),l=t._private,u=t.isNode(),h=t.isEdge(),d,f,p,m,g,y,v=l.rstyle,x=u&&n?t.pstyle("bounds-expansion").pfValue:[0],b=o(function(Ie){return Ie.pstyle("display").value!=="none"},"isDisplayed"),T=!n||b(t)&&(!h||b(t.source())&&b(t.target()));if(T){var w=0,C=0;n&&r.includeOverlays&&(w=t.pstyle("overlay-opacity").value,w!==0&&(C=t.pstyle("overlay-padding").value));var k=0,E=0;n&&r.includeUnderlays&&(k=t.pstyle("underlay-opacity").value,k!==0&&(E=t.pstyle("underlay-padding").value));var A=Math.max(C,E),N=0,P=0;if(n&&(N=t.pstyle("width").pfValue,P=N/2),u&&r.includeNodes){var I=t.position();g=I.x,y=I.y;var D=t.outerWidth(),_=D/2,R=t.outerHeight(),M=R/2;d=g-_,f=g+_,p=y-M,m=y+M,Bl(s,d,p,f,m),n&&Jpe(s,t),n&&r.includeOutlines&&!a&&Jpe(s,t),n&&tat(s,t)}else if(h&&r.includeEdges)if(n&&!a){var L=t.pstyle("curve-style").strValue;if(d=Math.min(v.srcX,v.midX,v.tgtX),f=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),d-=P,f+=P,p-=P,m+=P,Bl(s,d,p,f,m),L==="haystack"){var B=v.haystackPts;if(B&&B.length===2){if(d=B[0].x,p=B[0].y,f=B[1].x,m=B[1].y,d>f){var O=d;d=f,f=O}if(p>m){var $=p;p=m,m=$}Bl(s,d-P,p-P,f+P,m+P)}}else if(L==="bezier"||L==="unbundled-bezier"||$d(L,"segments")||$d(L,"taxi")){var G;switch(L){case"bezier":case"unbundled-bezier":G=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":G=v.linePts;break}if(G!=null)for(var F=0;Ff){var Y=d;d=f,f=Y}if(p>m){var ae=p;p=m,m=ae}d-=P,f+=P,p-=P,m+=P,Bl(s,d,p,f,m)}if(n&&r.includeEdges&&h&&(m3(s,t,"mid-source"),m3(s,t,"mid-target"),m3(s,t,"source"),m3(s,t,"target")),n){var J=t.pstyle("ghost").value==="yes";if(J){var te=t.pstyle("ghost-offset-x").pfValue,re=t.pstyle("ghost-offset-y").pfValue;Bl(s,s.x1+te,s.y1+re,s.x2+te,s.y2+re)}}var ee=l.bodyBounds=l.bodyBounds||{};Ffe(ee,s),w3(ee,x),k3(ee,1),n&&(d=s.x1,f=s.x2,p=s.y1,m=s.y2,Bl(s,d-A,p-A,f+A,m+A));var Te=l.overlayBounds=l.overlayBounds||{};Ffe(Te,s),w3(Te,x),k3(Te,1);var ue=l.labelBounds=l.labelBounds||{};ue.all!=null?Brt(ue.all):ue.all=is(),n&&r.includeLabels&&(r.includeMainLabels&&NO(s,t,null),h&&(r.includeSourceLabels&&NO(s,t,"source"),r.includeTargetLabels&&NO(s,t,"target")))}return s.x1=jo(s.x1),s.y1=jo(s.y1),s.x2=jo(s.x2),s.y2=jo(s.y2),s.w=jo(s.x2-s.x1),s.h=jo(s.y2-s.y1),s.w>0&&s.h>0&&T&&(w3(s,x),k3(s,1)),s},"boundingBoxImpl"),Bme=o(function(t){var r=0,i=o(function(s){return(s?1:0)<=0;l--)s(l);return this};Xd.removeAllListeners=function(){return this.removeListener("*")};Xd.emit=Xd.trigger=function(e,t,r){var i=this.listeners,n=i.length;return this.emitting++,Si(t)||(t=[t]),vat(this,function(a,s){r!=null&&(i=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],n=i.length);for(var l=o(function(){var d=i[u];if(d.type===s.type&&(!d.namespace||d.namespace===s.namespace||d.namespace===gat)&&a.eventMatches(a.context,d,s)){var f=[s];t!=null&&lrt(f,t),a.beforeEmit(a.context,d,s),d.conf&&d.conf.one&&(a.listeners=a.listeners.filter(function(g){return g!==d}));var p=a.callbackContext(a.context,d,s),m=d.callback.apply(p,f);a.afterEmit(a.context,d,s),m===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[t]=u,a.set(h,{ele:u,index:t})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(t){t=t[0];var r=this._private,i=t._private.data.id,n=r.map,a=n.get(i);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(t){var r=this._private.cy;if(!t)return this;if(t&&sr(t)){var i=t;t=r.mutableElements().filter(i)}for(var n=0;n=0;r--){var i=this[r];t(i)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(t,r){for(var i=[],n=this,a=0;ai&&(i=u,n=l)}return{value:i,ele:n}},"max"),min:o(function(t,r){for(var i=1/0,n,a=this,s=0;s=0&&a"u"?"undefined":Wn(Symbol))!=t&&Wn(Symbol.iterator)!=t;r&&(z3[Symbol.iterator]=function(){var i=this,n={value:void 0,done:!1},a=0,s=this.length;return q0e({next:o(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,i=this[0],n=i.cy();if(n.styleEnabled()&&i){i._private.styleDirty&&(i._private.styleDirty=!1,n.style().apply(i));var a=i._private.style[t];return a??(r?n.style().getDefaultProperty(t):null)}},"parsedStyle"),numericStyle:o(function(t){var r=this[0];if(r.cy().styleEnabled()&&r){var i=r.pstyle(t);return i.pfValue!==void 0?i.pfValue:i.value}},"numericStyle"),numericStyleUnits:o(function(t){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(t).units},"numericStyleUnits"),renderedStyle:o(function(t){var r=this.cy();if(!r.styleEnabled())return this;var i=this[0];if(i)return r.style().getRenderedStyle(i,t)},"renderedStyle"),style:o(function(t,r){var i=this.cy();if(!i.styleEnabled())return this;var n=!1,a=i.style();if(Xr(t)){var s=t;a.applyBypass(this,s,n),this.emitAndNotify("style")}else if(sr(t))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,t):void 0}else a.applyBypass(this,t,r,n),this.emitAndNotify("style");else if(t===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(t){var r=this.cy();if(!r.styleEnabled())return this;var i=!1,n=r.style(),a=this;if(t===void 0)for(var s=0;s0&&t.push(d[0]),t.push(l[0])}return this.spawn(t,!0).filter(e)},"neighborhood"),closedNeighborhood:o(function(t){return this.neighborhood().add(this).filter(t)},"closedNeighborhood"),openNeighborhood:o(function(t){return this.neighborhood(t)},"openNeighborhood")});Oa.neighbourhood=Oa.neighborhood;Oa.closedNeighbourhood=Oa.closedNeighborhood;Oa.openNeighbourhood=Oa.openNeighborhood;hr(Oa,{source:Xo(o(function(t){var r=this[0],i;return r&&(i=r._private.source||r.cy().collection()),i&&t?i.filter(t):i},"sourceImpl"),"source"),target:Xo(o(function(t){var r=this[0],i;return r&&(i=r._private.target||r.cy().collection()),i&&t?i.filter(t):i},"targetImpl"),"target"),sources:u0e({attr:"source"}),targets:u0e({attr:"target"})});o(u0e,"defineSourceFunction");hr(Oa,{edgesWith:Xo(h0e(),"edgesWith"),edgesTo:Xo(h0e({thisIsSrc:!0}),"edgesTo")});o(h0e,"defineEdgesWithFunction");hr(Oa,{connectedEdges:Xo(function(e){for(var t=[],r=this,i=0;i0);return s},"components"),component:o(function(){var t=this[0];return t.cy().mutableElements().components(t)[0]},"component")});Oa.componentsOf=Oa.components;ya=o(function(t,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(t===void 0){Yi("A collection must have a reference to the core");return}var a=new Ku,s=!1;if(!r)r=[];else if(r.length>0&&Xr(r[0])&&!i2(r[0])){s=!0;for(var l=[],u=new y1,h=0,d=r.length;h0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,i=r.cy(),n=i._private,a=[],s=[],l,u=0,h=r.length;u0){for(var $=l.length===r.length?r:new ya(i,l),G=0;G<$.length;G++){var F=$[G];F.isNode()||(F.parallelEdges().clearTraversalCache(),F.source().clearTraversalCache(),F.target().clearTraversalCache())}var V;n.hasCompoundNodes?V=i.collection().merge($).merge($.connectedNodes()).merge($.parent()):V=$,V.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(e),e?$.emitAndNotify("add"):t&&$.emit("add")}return r};Mi.removed=function(){var e=this[0];return e&&e._private.removed};Mi.inside=function(){var e=this[0];return e&&!e._private.removed};Mi.remove=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,i=[],n={},a=r._private.cy;function s(R){for(var M=R._private.edges,L=0;L0&&(e?I.emitAndNotify("remove"):t&&I.emit("remove"));for(var D=0;Dd&&Math.abs(g.v)>d;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")})(),Li=o(function(t,r,i,n){var a=_at(t,r,i,n);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),A3={linear:o(function(t,r,i){return t+(r-t)*i},"linear"),ease:Li(.25,.1,.25,1),"ease-in":Li(.42,0,1,1),"ease-out":Li(0,0,.58,1),"ease-in-out":Li(.42,0,.58,1),"ease-in-sine":Li(.47,0,.745,.715),"ease-out-sine":Li(.39,.575,.565,1),"ease-in-out-sine":Li(.445,.05,.55,.95),"ease-in-quad":Li(.55,.085,.68,.53),"ease-out-quad":Li(.25,.46,.45,.94),"ease-in-out-quad":Li(.455,.03,.515,.955),"ease-in-cubic":Li(.55,.055,.675,.19),"ease-out-cubic":Li(.215,.61,.355,1),"ease-in-out-cubic":Li(.645,.045,.355,1),"ease-in-quart":Li(.895,.03,.685,.22),"ease-out-quart":Li(.165,.84,.44,1),"ease-in-out-quart":Li(.77,0,.175,1),"ease-in-quint":Li(.755,.05,.855,.06),"ease-out-quint":Li(.23,1,.32,1),"ease-in-out-quint":Li(.86,0,.07,1),"ease-in-expo":Li(.95,.05,.795,.035),"ease-out-expo":Li(.19,1,.22,1),"ease-in-out-expo":Li(1,0,0,1),"ease-in-circ":Li(.6,.04,.98,.335),"ease-out-circ":Li(.075,.82,.165,1),"ease-in-out-circ":Li(.785,.135,.15,.86),spring:o(function(t,r,i){if(i===0)return A3.linear;var n=Dat(t,r,i);return function(a,s,l){return a+(s-a)*n(l)}},"spring"),"cubic-bezier":Li};o(f0e,"getEasedValue");o(p0e,"getValue");o(t1,"ease");o(Rat,"step$1");o(Pb,"valid");o(Lat,"startAnimation");o(m0e,"stepAll");Mat={animate:hi.animate(),animation:hi.animation(),animated:hi.animated(),clearQueue:hi.clearQueue(),delay:hi.delay(),delayAnimation:hi.delayAnimation(),stop:hi.stop(),addToAnimationPool:o(function(t){var r=this;r.styleEnabled()&&r._private.aniEles.merge(t)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var t=this;if(t._private.animationsRunning=!0,!t.styleEnabled())return;function r(){t._private.animationsRunning&&O3(o(function(a){m0e(a,t),r()},"animationStep"))}o(r,"headlessStep");var i=t.renderer();i&&i.beforeRender?i.beforeRender(o(function(a,s){m0e(s,t)},"rendererAnimationStep"),i.beforeRenderPriorities.animations):r()},"startAnimationLoop")},Nat={qualifierCompare:o(function(t,r){return t==null||r==null?t==null&&r==null:t.sameText(r)},"qualifierCompare"),eventMatches:o(function(t,r,i){var n=r.qualifier;return n!=null?t!==i.target&&i2(i.target)&&n.matches(i.target):!0},"eventMatches"),addEventFields:o(function(t,r){r.cy=t,r.target=t},"addEventFields"),callbackContext:o(function(t,r,i){return r.qualifier!=null?i.target:t},"callbackContext")},v3=o(function(t){return sr(t)?new Yd(t):t},"argSelector"),jme={createEmitter:o(function(){var t=this._private;return t.emitter||(t.emitter=new iE(Nat,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(t,r,i){return this.emitter().on(t,v3(r),i),this},"on"),removeListener:o(function(t,r,i){return this.emitter().removeListener(t,v3(r),i),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(t,r,i){return this.emitter().one(t,v3(r),i),this},"one"),once:o(function(t,r,i){return this.emitter().one(t,v3(r),i),this},"once"),emit:o(function(t,r){return this.emitter().emit(t,r),this},"emit"),emitAndNotify:o(function(t,r){return this.emit(t),this.notify(t,r),this},"emitAndNotify")};hi.eventAliasesOn(jme);JO={png:o(function(t){var r=this._private.renderer;return t=t||{},r.png(t)},"png"),jpg:o(function(t){var r=this._private.renderer;return t=t||{},t.bg=t.bg||"#fff",r.jpg(t)},"jpg")};JO.jpeg=JO.jpg;_3={layout:o(function(t){var r=this;if(t==null){Yi("Layout options must be specified to make a layout");return}if(t.name==null){Yi("A `name` must be specified to make a layout");return}var i=t.name,n=r.extension("layout",i);if(n==null){Yi("No such layout `"+i+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;sr(t.eles)?a=r.$(t.eles):a=t.eles!=null?t.eles:r.$();var s=new n(hr({},t,{cy:r,eles:a}));return s},"layout")};_3.createLayout=_3.makeLayout=_3.layout;Iat={notify:o(function(t,r){var i=this._private;if(this.batching()){i.batchNotifications=i.batchNotifications||{};var n=i.batchNotifications[t]=i.batchNotifications[t]||this.collection();r!=null&&n.merge(r);return}if(i.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(t,r)}},"notify"),notifications:o(function(t){var r=this._private;return t===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!t,this)},"notifications"),noNotifications:o(function(t){this.notifications(!1),t(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var t=this._private;return t.batchCount==null&&(t.batchCount=0),t.batchCount===0&&(t.batchStyleEles=this.collection(),t.batchNotifications={}),t.batchCount++,this},"startBatch"),endBatch:o(function(){var t=this._private;if(t.batchCount===0)return this;if(t.batchCount--,t.batchCount===0){t.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(t.batchNotifications).forEach(function(i){var n=t.batchNotifications[i];n.empty()?r.notify(i):r.notify(i,n)})}return this},"endBatch"),batch:o(function(t){return this.startBatch(),t(),this.endBatch(),this},"batch"),batchData:o(function(t){var r=this;return this.batch(function(){for(var i=Object.keys(t),n=0;n0;)r.removeChild(r.childNodes[0]);t._private.renderer=null,t.mutableElements().forEach(function(i){var n=i._private;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},"destroyRenderer"),onRender:o(function(t){return this.on("render",t)},"onRender"),offRender:o(function(t){return this.off("render",t)},"offRender")};eP.invalidateDimensions=eP.resize;D3={collection:o(function(t,r){return sr(t)?this.$(t):uo(t)?t.collection():Si(t)?(r||(r={}),new ya(this,t,r.unique,r.removed)):new ya(this)},"collection"),nodes:o(function(t){var r=this.$(function(i){return i.isNode()});return t?r.filter(t):r},"nodes"),edges:o(function(t){var r=this.$(function(i){return i.isEdge()});return t?r.filter(t):r},"edges"),$:o(function(t){var r=this._private.elements;return t?r.filter(t):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};D3.elements=D3.filter=D3.$;sa={},Wb="t",Pat="f";sa.apply=function(e){for(var t=this,r=t._private,i=r.cy,n=i.collection(),a=0;a0;if(p||f&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y1&&(w=1),l.color){var k=i.valueMin[0],E=i.valueMax[0],A=i.valueMin[1],N=i.valueMax[1],P=i.valueMin[2],I=i.valueMax[2],D=i.valueMin[3]==null?1:i.valueMin[3],_=i.valueMax[3]==null?1:i.valueMax[3],R=[Math.round(k+(E-k)*w),Math.round(A+(N-A)*w),Math.round(P+(I-P)*w),Math.round(D+(_-D)*w)];a={bypass:i.bypass,name:i.name,value:R,strValue:"rgb("+R[0]+", "+R[1]+", "+R[2]+")"}}else if(l.number){var M=i.valueMin+(i.valueMax-i.valueMin)*w;a=this.parse(i.name,M,i.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=i,i=a;break}case s.data:{for(var L=i.field.split("."),B=f.data,O=0;O0&&a>0){for(var l={},u=!1,h=0;h0?e.delayAnimation(s).play().promise().then(T):T()}).then(function(){return e.animation({style:l,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(e,n),e.emitAndNotify("style"),i.transitioning=!1})}else i.transitioning&&(this.removeBypasses(e,n),e.emitAndNotify("style"),i.transitioning=!1)};sa.checkTrigger=function(e,t,r,i,n,a){var s=this.properties[t],l=n(s);e.removed()||l!=null&&l(r,i,e)&&a(s)};sa.checkZOrderTrigger=function(e,t,r,i){var n=this;this.checkTrigger(e,t,r,i,function(a){return a.triggersZOrder},function(){n._private.cy.notify("zorder",e)})};sa.checkBoundsTrigger=function(e,t,r,i){this.checkTrigger(e,t,r,i,function(n){return n.triggersBounds},function(n){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache()})};sa.checkConnectedEdgesBoundsTrigger=function(e,t,r,i){this.checkTrigger(e,t,r,i,function(n){return n.triggersBoundsOfConnectedEdges},function(n){e.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};sa.checkParallelEdgesBoundsTrigger=function(e,t,r,i){this.checkTrigger(e,t,r,i,function(n){return n.triggersBoundsOfParallelEdges},function(n){e.parallelEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};sa.checkTriggers=function(e,t,r,i){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,r,i),this.checkBoundsTrigger(e,t,r,i),this.checkConnectedEdgesBoundsTrigger(e,t,r,i),this.checkParallelEdgesBoundsTrigger(e,t,r,i)};u2={};u2.applyBypass=function(e,t,r,i){var n=this,a=[],s=!0;if(t==="*"||t==="**"){if(r!==void 0)for(var l=0;ln.length?i=i.substr(n.length):i=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=i.match(/^\s*$/);if(h)break;var d=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!d){di("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}n=d[0];var f=d[1];if(f!=="core"){var p=new Yd(f);if(p.invalid){di("Skipping parsing of block: Invalid selector found in string stylesheet: "+f),l();continue}}var m=d[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){di("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],T=x[2],w=t.properties[b];if(!w){di("Skipping property: Invalid property name in: "+s),u();continue}var C=r.parse(b,T);if(!C){di("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:T}),u()}if(g){l();break}r.selector(f);for(var k=0;k=7&&t[0]==="d"&&(d=new RegExp(l.data.regex).exec(t))){if(r)return!1;var p=l.data;return{name:e,value:d,strValue:""+t,mapped:p,field:d[1],bypass:r}}else if(t.length>=10&&t[0]==="m"&&(f=new RegExp(l.mapData.regex).exec(t))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(e,f[4]);if(!g||g.mapped)return!1;var y=this.parse(e,f[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return di("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+g.strValue+"`"),this.parse(e,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:e,value:f,strValue:""+t,mapped:m,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&i!=="multiple"){var T;if(u?T=t.split(/\s+/):Si(t)?T=t:T=[t],h.evenMultiple&&T.length%2!==0)return null;for(var w=[],C=[],k=[],E="",A=!1,N=0;N0?" ":"")+P.strValue}return h.validate&&!h.validate(w,C)?null:h.singleEnum&&A?w.length===1&&sr(w[0])?{name:e,value:w[0],strValue:w[0],bypass:r}:null:{name:e,value:w,pfValue:k,strValue:E,bypass:r,units:C}}var I=o(function(){for(var J=0;Jh.max||h.strictMax&&t===h.max))return null;var L={name:e,value:t,strValue:""+t+(D||""),units:D,bypass:r};return h.unitless||D!=="px"&&D!=="em"?L.pfValue=t:L.pfValue=D==="px"||!D?t:this.getEmSizeInPixels()*t,(D==="ms"||D==="s")&&(L.pfValue=D==="ms"?t:1e3*t),(D==="deg"||D==="rad")&&(L.pfValue=D==="rad"?t:Nrt(t)),D==="%"&&(L.pfValue=t/100),L}else if(h.propList){var B=[],O=""+t;if(O!=="none"){for(var $=O.split(/\s*,\s*|\s+/),G=0;G<$.length;G++){var F=$[G].trim();n.properties[F]?B.push(F):di("`"+F+"` is not a valid property name")}if(B.length===0)return null}return{name:e,value:B,strValue:B.length===0?"none":B.join(" "),bypass:r}}else if(h.color){var V=Z0e(t);return V?{name:e,value:V,pfValue:V,strValue:"rgb("+V[0]+","+V[1]+","+V[2]+")",bypass:r}:null}else if(h.regex||h.regexes){if(h.enums){var H=I();if(H)return H}for(var j=h.regexes?h.regexes:[h.regex],U=0;U0&&l>0&&!isNaN(i.w)&&!isNaN(i.h)&&i.w>0&&i.h>0){u=Math.min((s-2*r)/i.w,(l-2*r)/i.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=i.minZoom&&(i.maxZoom=r),this},"zoomRange"),minZoom:o(function(t){return t===void 0?this._private.minZoom:this.zoomRange({min:t})},"minZoom"),maxZoom:o(function(t){return t===void 0?this._private.maxZoom:this.zoomRange({max:t})},"maxZoom"),getZoomedViewport:o(function(t){var r=this._private,i=r.pan,n=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),Ot(t)?s=t:Xr(t)&&(s=t.level,t.position!=null?a=K3(t.position,n,i):t.renderedPosition!=null&&(a=t.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(n&&(!s||!t.cancelOnFailedZoom)&&r.panningEnabled){var h=t.pan;Ot(h.x)&&(r.pan.x=h.x,l=!1),Ot(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(t){var r=this.getCenterPan(t);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(t,r){if(this._private.panningEnabled){if(sr(t)){var i=t;t=this.mutableElements().filter(i)}else uo(t)||(t=this.mutableElements());if(t.length!==0){var n=t.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(n.x1+n.x2))/2,y:(s-r*(n.y1+n.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var t=this._private,r=t.container,i=this;return t.sizeCache=t.sizeCache||(r?(function(){var n=i.window().getComputedStyle(r),a=o(function(l){return parseFloat(n.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}})():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var t=this._private.pan,r=this._private.zoom,i=this.renderedExtent(),n={x1:(i.x1-t.x)/r,x2:(i.x2-t.x)/r,y1:(i.y1-t.y)/r,y2:(i.y2-t.y)/r};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},"extent"),renderedExtent:o(function(){var t=this.width(),r=this.height();return{x1:0,y1:0,x2:t,y2:r,w:t,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(t){if(t)this._private.multiClickDebounceTime=t;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};r0.centre=r0.center;r0.autolockNodes=r0.autolock;r0.autoungrabifyNodes=r0.autoungrabify;Jb={data:hi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:hi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:hi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:hi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Jb.attr=Jb.data;Jb.removeAttr=Jb.removeData;e2=o(function(t){var r=this;t=hr({},t);var i=t.container;i&&!I3(i)&&I3(i[0])&&(i=i[0]);var n=i?i._cyreg:null;n=n||{},n&&n.cy&&(n.cy.destroy(),n={});var a=n.readies=n.readies||[];i&&(i._cyreg=n),n.cy=r;var s=Gn!==void 0&&i!==void 0&&!t.headless,l=t;l.layout=hr({name:s?"grid":"null"},l.layout),l.renderer=hr({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:i,ready:!1,options:l,elements:new ya(this),listeners:[],aniEles:new ya(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:Ot(l.zoom)?l.zoom:1,pan:{x:Xr(l.pan)&&Ot(l.pan.x)?l.pan.x:0,y:Xr(l.pan)&&Ot(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var d=o(function(g,y){var v=g.some(Att);if(v)return v1.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var f=hr({},l,l.renderer);r.initRenderer(f);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(Xr(g)||Si(g))&&r.add(g),r.one("layoutready",function(T){r.notifications(!0),r.emit(T),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=hr({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");d([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,Ji(l.ready)&&r.on("ready",l.ready);for(var v=0;v0,l=!!e.boundingBox,u=is(l?e.boundingBox:structuredClone(t.extent())),h;if(uo(e.roots))h=e.roots;else if(Si(e.roots)){for(var d=[],f=0;f0;){var R=_(),M=N(R,I);if(M)R.outgoers().filter(function(Me){return Me.isNode()&&r.has(Me)}).forEach(D);else if(M===null){di("Detected double maximal shift for node `"+R.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var L=0;if(e.avoidOverlap)for(var B=0;B0&&x[0].length<=3?Fe/2:0),at=2*Math.PI/x[rt].length*ke;return rt===0&&x[0].length===1&&(He=1),{x:ee.x+He*Math.cos(at),y:ee.y+He*Math.sin(at)}}else{var qe=x[rt].length,Ue=Math.max(qe===1?0:l?(u.w-e.padding*2-Te.w)/((e.grid?De:qe)-1):(u.w-e.padding*2-Te.w)/((e.grid?De:qe)+1),L),ye={x:ee.x+(ke+1-(qe+1)/2)*Ue,y:ee.y+(rt+1-(U+1)/2)*ue};return ye}},"getPositionTopBottom"),Ee={downward:0,leftward:90,upward:180,rightward:-90};Object.keys(Ee).indexOf(e.direction)===-1&&Yi("Invalid direction '".concat(e.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(Ee).join(", ")));var we=o(function($e){return rrt(Ie($e),u,Ee[e.direction])},"getPosition");return r.nodes().layoutPositions(this,e,we),this};Gat={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(t,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(t,r){return r},"transform")};o(Kme,"CircleLayout");Kme.prototype.run=function(){var e=this.options,t=e,r=e.cy,i=t.eles,n=t.counterclockwise!==void 0?!t.counterclockwise:t.clockwise,a=i.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var s=is(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=t.sweep===void 0?2*Math.PI-2*Math.PI/a.length:t.sweep,h=u/Math.max(1,a.length-1),d,f=0,p=0;p1&&t.avoidOverlap){f*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),T=Math.sqrt(f*f/(x*x+b*b));d=Math.max(T,d)}var w=o(function(k,E){var A=t.startAngle+E*h*(n?1:-1),N=d*Math.cos(A),P=d*Math.sin(A),I={x:l.x+N,y:l.y+P};return I},"getPos");return i.nodes().layoutPositions(this,t,w),this};Vat={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:o(function(t){return t.degree()},"concentric"),levelWidth:o(function(t){return t.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(t,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(t,r){return r},"transform")};o(Zme,"ConcentricLayout");Zme.prototype.run=function(){for(var e=this.options,t=e,r=t.counterclockwise!==void 0?!t.counterclockwise:t.clockwise,i=e.cy,n=t.eles,a=n.nodes().not(":parent"),s=is(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:i.width(),h:i.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,d=0;d0){var C=Math.abs(b[0].value-w.value);C>=v&&(b=[],x.push(b))}b.push(w)}var k=h+t.minNodeSpacing;if(!t.avoidOverlap){var E=x.length>0&&x[0].length>1,A=Math.min(s.w,s.h)/2-k,N=A/(x.length+E?1:0);k=Math.min(k,N)}for(var P=0,I=0;I1&&t.avoidOverlap){var M=Math.cos(R)-Math.cos(0),L=Math.sin(R)-Math.sin(0),B=Math.sqrt(k*k/(M*M+L*L));P=Math.max(B,P)}D.r=P,P+=k}if(t.equidistant){for(var O=0,$=0,G=0;G=e.numIter||(Xat(i,e),i.temperature=i.temperature*e.coolingFactor,i.temperature=e.animationThreshold&&a(),O3(d)}},"frame");d()}else{for(;h;)h=s(u),u++;v0e(i,e),l()}return this};lE.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};lE.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};qat=o(function(t,r,i){for(var n=i.eles.edges(),a=i.eles.nodes(),s=is(i.boundingBox?i.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),l={isCompound:t.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:i.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=i.eles.components(),h={},d=0;d0){l.graphSet.push(A);for(var d=0;dn.count?0:n.graph},"findLCA"),Qme=o(function(t,r,i,n){var a=n.graphSet[i];if(-10)var f=n.nodeOverlap*d,p=Math.sqrt(l*l+u*u),m=f*l/p,g=f*u/p;else var y=V3(t,l,u),v=V3(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,T=x*x+b*b,p=Math.sqrt(T),f=(t.nodeRepulsion+r.nodeRepulsion)/T,m=f*x/p,g=f*b/p;t.isLocked||(t.offsetX-=m,t.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),Qat=o(function(t,r,i,n){if(i>0)var a=t.maxX-r.minX;else var a=r.maxX-t.minX;if(n>0)var s=t.maxY-r.minY;else var s=r.maxY-t.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),V3=o(function(t,r,i){var n=t.positionX,a=t.positionY,s=t.height||1,l=t.width||1,u=i/r,h=s/l,d={};return r===0&&0i?(d.x=n,d.y=a+s/2,d):0r&&-1*h<=u&&u<=h?(d.x=n-l/2,d.y=a-l*i/2/r,d):0=h)?(d.x=n+s*r/2/i,d.y=a+s/2,d):(0>i&&(u<=-1*h||u>=h)&&(d.x=n-s*r/2/i,d.y=a-s/2),d)},"findClippingPoint"),Jat=o(function(t,r){for(var i=0;ii){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),tst=o(function(t,r){var i=[],n=0,a=-1;for(i.push.apply(i,t.graphSet[0]),a+=t.graphSet[0].length;n<=a;){var s=i[n++],l=t.idToIndex[s],u=t.layoutNodes[l],h=u.children;if(0i)var a={x:i*t/n,y:i*r/n};else var a={x:t,y:r};return a},"limitForce"),ege=o(function(t,r){var i=t.parentId;if(i!=null){var n=r.layoutNodes[r.idToIndex[i]],a=!1;if((n.maxX==null||t.maxX+n.padRight>n.maxX)&&(n.maxX=t.maxX+n.padRight,a=!0),(n.minX==null||t.minX-n.padLeftn.maxY)&&(n.maxY=t.maxY+n.padBottom,a=!0),(n.minY==null||t.minY-n.padTopx&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),nst={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:o(function(t){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(t,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(t,r){return r},"transform")};o(tge,"GridLayout");tge.prototype.run=function(){var e=this.options,t=e,r=e.cy,i=t.eles,n=i.nodes().not(":parent");t.sort&&(n=n.sort(t.sort));var a=is(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)i.nodes().layoutPositions(this,t,function(H){return{x:a.x1,y:a.y1}});else{var s=n.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),d=o(function(j){if(j==null)return Math.min(u,h);var U=Math.min(u,h);U==u?u=j:h=j},"small"),f=o(function(j){if(j==null)return Math.max(u,h);var U=Math.max(u,h);U==u?u=j:h=j},"large"),p=t.rows,m=t.cols!=null?t.cols:t.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=d(),y=f();(g-1)*y>=s?d(g-1):(y-1)*g>=s&&f(y-1)}else for(;h*u=s?f(x+1):d(v+1)}var b=a.w/h,T=a.h/u;if(t.condense&&(b=0,T=0),t.avoidOverlap)for(var w=0;w=h&&(M=0,R++)},"moveToNextCell"),B={},O=0;O(M=Yrt(e,t,L[B],L[B+1],L[B+2],L[B+3])))return v(E,M),!0}else if(N.edgeType==="bezier"||N.edgeType==="multibezier"||N.edgeType==="self"||N.edgeType==="compound"){for(var L=N.allpts,B=0;B+5(M=Hrt(e,t,L[B],L[B+1],L[B+2],L[B+3],L[B+4],L[B+5])))return v(E,M),!0}for(var O=O||A.source,$=$||A.target,G=n.getArrowWidth(P,I),F=[{name:"source",x:N.arrowStartX,y:N.arrowStartY,angle:N.srcArrowAngle},{name:"target",x:N.arrowEndX,y:N.arrowEndY,angle:N.tgtArrowAngle},{name:"mid-source",x:N.midX,y:N.midY,angle:N.midsrcArrowAngle},{name:"mid-target",x:N.midX,y:N.midY,angle:N.midtgtArrowAngle}],B=0;B0&&(x(O),x($))}o(b,"checkEdge");function T(E,A,N){return Ps(E,A,N)}o(T,"preprop");function w(E,A){var N=E._private,P=p,I;A?I=A+"-":I="",E.boundingBox();var D=N.labelBounds[A||"main"],_=E.pstyle(I+"label").value,R=E.pstyle("text-events").strValue==="yes";if(!(!R||!_)){var M=T(N.rscratch,"labelX",A),L=T(N.rscratch,"labelY",A),B=T(N.rscratch,"labelAngle",A),O=E.pstyle(I+"text-margin-x").pfValue,$=E.pstyle(I+"text-margin-y").pfValue,G=D.x1-P-O,F=D.x2+P-O,V=D.y1-P-$,H=D.y2+P-$;if(B){var j=Math.cos(B),U=Math.sin(B),Q=o(function(Te,ue){return Te=Te-M,ue=ue-L,{x:Te*j-ue*U+M,y:Te*U+ue*j+L}},"rotate"),Y=Q(G,V),ae=Q(G,H),J=Q(F,V),te=Q(F,H),re=[Y.x+O,Y.y+$,J.x+O,J.y+$,te.x+O,te.y+$,ae.x+O,ae.y+$];if(Bs(e,t,re))return v(E),!0}else if(zd(D,e,t))return v(E),!0}}o(w,"checkLabel");for(var C=s.length-1;C>=0;C--){var k=s[C];k.isNode()?x(k)||w(k):b(k)||w(k)||w(k,"source")||w(k,"target")}return l};n0.getAllInBox=function(e,t,r,i){var n=this.getCachedZSortedEles().interactive,a=this.cy.zoom(),s=2/a,l=[],u=Math.min(e,r),h=Math.max(e,r),d=Math.min(t,i),f=Math.max(t,i);e=u,r=h,t=d,i=f;var p=is({x1:e,y1:t,x2:r,y2:i}),m=[{x:p.x1,y:p.y1},{x:p.x2,y:p.y1},{x:p.x2,y:p.y2},{x:p.x1,y:p.y2}],g=[[m[0],m[1]],[m[1],m[2]],[m[2],m[3]],[m[3],m[0]]];function y(Te,ue,De){return Ps(Te,ue,De)}o(y,"preprop");function v(Te,ue){var De=Te._private,Ie=s,Ee="";Te.boundingBox();var we=De.labelBounds.main;if(!we)return null;var Me=y(De.rscratch,"labelX",ue),$e=y(De.rscratch,"labelY",ue),de=y(De.rscratch,"labelAngle",ue),rt=Te.pstyle(Ee+"text-margin-x").pfValue,ke=Te.pstyle(Ee+"text-margin-y").pfValue,Fe=we.x1-Ie-rt,He=we.x2+Ie-rt,at=we.y1-Ie-ke,qe=we.y2+Ie-ke;if(de){var Ue=Math.cos(de),ye=Math.sin(de),ve=o(function(fe,W){return fe=fe-Me,W=W-$e,{x:fe*Ue-W*ye+Me,y:fe*ye+W*Ue+$e}},"rotate");return[ve(Fe,at),ve(He,at),ve(He,qe),ve(Fe,qe)]}else return[{x:Fe,y:at},{x:He,y:at},{x:He,y:qe},{x:Fe,y:qe}]}o(v,"getRotatedLabelBox");function x(Te,ue,De,Ie){function Ee(we,Me,$e){return($e.y-we.y)*(Me.x-we.x)>(Me.y-we.y)*($e.x-we.x)}return o(Ee,"ccw"),Ee(Te,De,Ie)!==Ee(ue,De,Ie)&&Ee(Te,ue,De)!==Ee(Te,ue,Ie)}o(x,"doLinesIntersect");for(var b=0;b0?-(Math.PI-t.ang):Math.PI+t.ang},"invertVec"),ust=o(function(t,r,i,n,a){if(t!==k0e?w0e(r,t,Pc):cst(Yo,Pc),w0e(r,i,Yo),T0e=Pc.nx*Yo.ny-Pc.ny*Yo.nx,C0e=Pc.nx*Yo.nx-Pc.ny*-Yo.ny,ju=Math.asin(Math.max(-1,Math.min(1,T0e))),Math.abs(ju)<1e-6){tP=r.x,rP=r.y,Xp=i1=0;return}Zp=1,R3=!1,C0e<0?ju<0?ju=Math.PI+ju:(ju=Math.PI-ju,Zp=-1,R3=!0):ju>0&&(Zp=-1,R3=!0),r.radius!==void 0?i1=r.radius:i1=n,Up=ju/2,x3=Math.min(Pc.len/2,Yo.len/2),a?(Ic=Math.abs(Math.cos(Up)*i1/Math.sin(Up)),Ic>x3?(Ic=x3,Xp=Math.abs(Ic*Math.sin(Up)/Math.cos(Up))):Xp=i1):(Ic=Math.min(x3,i1),Xp=Math.abs(Ic*Math.sin(Up)/Math.cos(Up))),iP=r.x+Yo.nx*Ic,nP=r.y+Yo.ny*Ic,tP=iP-Yo.ny*Xp*Zp,rP=nP+Yo.nx*Xp*Zp,age=r.x+Pc.nx*Ic,sge=r.y+Pc.ny*Ic,k0e=r},"calcCornerArc");o(oge,"drawPreparedRoundCorner");o(LP,"getRoundCorner");t2=.01,hst=Math.sqrt(2*t2),Ba={};Ba.findMidptPtsEtc=function(e,t){var r=t.posPts,i=t.intersectionPts,n=t.vectorNormInverse,a,s=e.pstyle("source-endpoint"),l=e.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(C,k,E,A){var N=A-k,P=E-C,I=Math.sqrt(P*P+N*N);return{x:-N/I,y:P/I}},"recalcVectorNormInverse"),d=e.pstyle("edge-distances").value;switch(d){case"node-position":a=r;break;case"intersection":a=i;break;case"endpoints":{if(u){var f=this.manualEndptToPx(e.source()[0],s),p=Dn(f,2),m=p[0],g=p[1],y=this.manualEndptToPx(e.target()[0],l),v=Dn(y,2),x=v[0],b=v[1],T={x1:m,y1:g,x2:x,y2:b};n=h(m,g,x,b),a=T}else di("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),a=i;break}}return{midptPts:a,vectorNormInverse:n}};Ba.findHaystackPoints=function(e){for(var t=0;t0?Math.max(W-ce,0):Math.min(W+ce,0)},"subDWH"),_=D(P,A),R=D(I,N),M=!1;b===h?x=Math.abs(_)>Math.abs(R)?n:i:b===u||b===l?(x=i,M=!0):(b===a||b===s)&&(x=n,M=!0);var L=x===i,B=L?R:_,O=L?I:P,$=vP(O),G=!1;!(M&&(w||k))&&(b===l&&O<0||b===u&&O>0||b===a&&O>0||b===s&&O<0)&&($*=-1,B=$*Math.abs(B),G=!0);var F;if(w){var V=C<0?1+C:C;F=V*B}else{var H=C<0?B:0;F=H+C*$}var j=o(function(W){return Math.abs(W)=Math.abs(B)},"getIsTooClose"),U=j(F),Q=j(Math.abs(B)-Math.abs(F)),Y=U||Q;if(Y&&!G)if(L){var ae=Math.abs(O)<=p/2,J=Math.abs(P)<=m/2;if(ae){var te=(d.x1+d.x2)/2,re=d.y1,ee=d.y2;r.segpts=[te,re,te,ee]}else if(J){var Te=(d.y1+d.y2)/2,ue=d.x1,De=d.x2;r.segpts=[ue,Te,De,Te]}else r.segpts=[d.x1,d.y2]}else{var Ie=Math.abs(O)<=f/2,Ee=Math.abs(I)<=g/2;if(Ie){var we=(d.y1+d.y2)/2,Me=d.x1,$e=d.x2;r.segpts=[Me,we,$e,we]}else if(Ee){var de=(d.x1+d.x2)/2,rt=d.y1,ke=d.y2;r.segpts=[de,rt,de,ke]}else r.segpts=[d.x2,d.y1]}else if(L){var Fe=d.y1+F+(v?p/2*$:0),He=d.x1,at=d.x2;r.segpts=[He,Fe,at,Fe]}else{var qe=d.x1+F+(v?f/2*$:0),Ue=d.y1,ye=d.y2;r.segpts=[qe,Ue,qe,ye]}if(r.isRound){var ve=e.pstyle("taxi-radius").value,ie=e.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ve),r.isArcRadius=new Array(r.segpts.length/2).fill(ie)}};Ba.tryToCorrectInvalidPoints=function(e,t){var r=e._private.rscratch;if(r.edgeType==="bezier"){var i=t.srcPos,n=t.tgtPos,a=t.srcW,s=t.srcH,l=t.tgtW,u=t.tgtH,h=t.srcShape,d=t.tgtShape,f=t.srcCornerRadius,p=t.tgtCornerRadius,m=t.srcRs,g=t.tgtRs,y=!Ot(r.startX)||!Ot(r.startY),v=!Ot(r.arrowStartX)||!Ot(r.arrowStartY),x=!Ot(r.endX)||!Ot(r.endY),b=!Ot(r.arrowEndX)||!Ot(r.arrowEndY),T=3,w=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth,C=T*w,k=e0({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),E=kO.poolIndex()){var $=B;B=O,O=$}var G=_.srcPos=B.position(),F=_.tgtPos=O.position(),V=_.srcW=B.outerWidth(),H=_.srcH=B.outerHeight(),j=_.tgtW=O.outerWidth(),U=_.tgtH=O.outerHeight(),Q=_.srcShape=r.nodeShapes[t.getNodeShape(B)],Y=_.tgtShape=r.nodeShapes[t.getNodeShape(O)],ae=_.srcCornerRadius=B.pstyle("corner-radius").value==="auto"?"auto":B.pstyle("corner-radius").pfValue,J=_.tgtCornerRadius=O.pstyle("corner-radius").value==="auto"?"auto":O.pstyle("corner-radius").pfValue,te=_.tgtRs=O._private.rscratch,re=_.srcRs=B._private.rscratch;_.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var ee=0;ee<_.eles.length;ee++){var Te=_.eles[ee],ue=Te[0]._private.rscratch,De=Te.pstyle("curve-style").value,Ie=De==="unbundled-bezier"||$d(De,"segments")||$d(De,"taxi"),Ee=!B.same(Te.source());if(!_.calculatedIntersection&&B!==O&&(_.hasBezier||_.hasUnbundled)){_.calculatedIntersection=!0;var we=Q.intersectLine(G.x,G.y,V,H,F.x,F.y,0,ae,re),Me=_.srcIntn=we,$e=Y.intersectLine(F.x,F.y,j,U,G.x,G.y,0,J,te),de=_.tgtIntn=$e,rt=_.intersectionPts={x1:we[0],x2:$e[0],y1:we[1],y2:$e[1]},ke=_.posPts={x1:G.x,x2:F.x,y1:G.y,y2:F.y},Fe=$e[1]-we[1],He=$e[0]-we[0],at=Math.sqrt(He*He+Fe*Fe);Ot(at)&&at>=hst||(at=Math.sqrt(Math.max(He*He,t2)+Math.max(Fe*Fe,t2)));var qe=_.vector={x:He,y:Fe},Ue=_.vectorNorm={x:qe.x/at,y:qe.y/at},ye={x:-Ue.y,y:Ue.x};_.nodesOverlap=!Ot(at)||Y.checkPoint(we[0],we[1],0,j,U,F.x,F.y,J,te)||Q.checkPoint($e[0],$e[1],0,V,H,G.x,G.y,ae,re),_.vectorNormInverse=ye,R={nodesOverlap:_.nodesOverlap,dirCounts:_.dirCounts,calculatedIntersection:!0,hasBezier:_.hasBezier,hasUnbundled:_.hasUnbundled,eles:_.eles,srcPos:F,srcRs:te,tgtPos:G,tgtRs:re,srcW:j,srcH:U,tgtW:V,tgtH:H,srcIntn:de,tgtIntn:Me,srcShape:Y,tgtShape:Q,posPts:{x1:ke.x2,y1:ke.y2,x2:ke.x1,y2:ke.y1},intersectionPts:{x1:rt.x2,y1:rt.y2,x2:rt.x1,y2:rt.y1},vector:{x:-qe.x,y:-qe.y},vectorNorm:{x:-Ue.x,y:-Ue.y},vectorNormInverse:{x:-ye.x,y:-ye.y}}}var ve=Ee?R:_;ue.nodesOverlap=ve.nodesOverlap,ue.srcIntn=ve.srcIntn,ue.tgtIntn=ve.tgtIntn,ue.isRound=De.startsWith("round"),n&&(B.isParent()||B.isChild()||O.isParent()||O.isChild())&&(B.parents().anySame(O)||O.parents().anySame(B)||B.same(O)&&B.isParent())?t.findCompoundLoopPoints(Te,ve,ee,Ie):B===O?t.findLoopPoints(Te,ve,ee,Ie):De.endsWith("segments")?t.findSegmentsPoints(Te,ve):De.endsWith("taxi")?t.findTaxiPoints(Te,ve):De==="straight"||!Ie&&_.eles.length%2===1&&ee===Math.floor(_.eles.length/2)?t.findStraightEdgePoints(Te):t.findBezierPoints(Te,ve,ee,Ie,Ee),t.findEndpoints(Te),t.tryToCorrectInvalidPoints(Te,ve),t.checkForInvalidEdgeWarning(Te),t.storeAllpts(Te),t.storeEdgeProjections(Te),t.calculateArrowAngles(Te),t.recalculateEdgeLabelProjections(Te),t.calculateLabelAngles(Te)}},"_loop"),E=0;E0){var we=h,Me=jp(we,o1(s)),$e=jp(we,o1(Ee)),de=Me;if($e2){var rt=jp(we,{x:Ee[2],y:Ee[3]});rt0){var K=d,Re=jp(K,o1(s)),xe=jp(K,o1(ce)),Oe=Re;if(xe2){var be=jp(K,{x:ce[2],y:ce[3]});be=g||E){v={cp:w,segment:k};break}}if(v)break}var A=v.cp,N=v.segment,P=(g-x)/N.length,I=N.t1-N.t0,D=m?N.t0+I*P:N.t1-I*P;D=Xb(0,D,1),t=u1(A.p0,A.p1,A.p2,D),p=fst(A.p0,A.p1,A.p2,D);break}case"straight":case"segments":case"haystack":{for(var _=0,R,M,L,B,O=i.allpts.length,$=0;$+3=g));$+=2);var G=g-M,F=G/R;F=Xb(0,F,1),t=Ort(L,B,F),p=uge(L,B);break}}s("labelX",f,t.x),s("labelY",f,t.y),s("labelAutoAngle",f,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(e)}};$c.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))};$c.applyPrefixedLabelDimensions=function(e,t){var r=e._private,i=this.getLabelText(e,t),n=Jp(i,e._private.labelDimsKey);if(Ps(r.rscratch,"prefixedLabelDimsKey",t)!==n){Xu(r.rscratch,"prefixedLabelDimsKey",t,n);var a=this.calculateLabelDimensions(e,i),s=e.pstyle("line-height").pfValue,l=e.pstyle("text-wrap").strValue,u=Ps(r.rscratch,"labelWrapCachedLines",t)||[],h=l!=="wrap"?1:Math.max(u.length,1),d=a.height/h,f=d*s,p=a.width,m=a.height+(h-1)*(s-1)*d;Xu(r.rstyle,"labelWidth",t,p),Xu(r.rscratch,"labelWidth",t,p),Xu(r.rstyle,"labelHeight",t,m),Xu(r.rscratch,"labelHeight",t,m),Xu(r.rscratch,"labelLineHeight",t,f)}};$c.getLabelText=function(e,t){var r=e._private,i=t?t+"-":"",n=e.pstyle(i+"label").strValue,a=e.pstyle("text-transform").value,s=o(function(H,j){return j?(Xu(r.rscratch,H,t,j),j):Ps(r.rscratch,H,t)},"rscratch");if(!n)return"";a=="none"||(a=="uppercase"?n=n.toUpperCase():a=="lowercase"&&(n=n.toLowerCase()));var l=e.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",d=n.split(` +`),f=e.pstyle("text-max-width").pfValue,p=e.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;vf){var C=x.matchAll(y),k="",E=0,A=Fs(C),N;try{for(A.s();!(N=A.n()).done;){var P=N.value,I=P[0],D=x.substring(E,P.index);E=P.index+I.length;var _=k.length===0?D:k+D+I,R=this.calculateLabelDimensions(e,_),M=R.width;M<=f?k+=D+I:(k&&g.push(k),k=D+I)}}catch(V){A.e(V)}finally{A.f()}k.match(/^[\s\u200b]+$/)||g.push(k)}else g.push(x)}s("labelWrapCachedLines",g),n=s("labelWrapCachedText",g.join(` +`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var L=e.pstyle("text-max-width").pfValue,B="",O="\u2026",$=!1;if(this.calculateLabelDimensions(e,n).widthL)break;B+=n[G],G===n.length-1&&($=!0)}return $||(B+=O),B}return n};$c.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,r=e.pstyle("text-halign").strValue;if(t==="auto")if(e.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return t};$c.calculateLabelDimensions=function(e,t){var r=this,i=r.cy.window(),n=i.document,a=0,s=e.pstyle("font-style").strValue,l=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,h=e.pstyle("font-weight").strValue,d=this.labelCalcCanvas,f=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=n.createElement("canvas"),f=this.labelCalcCanvasContext=d.getContext("2d");var p=d.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}f.font="".concat(s," ").concat(h," ").concat(l,"px ").concat(u);for(var m=0,g=0,y=t.split(` +`),v=0;v1&&arguments[1]!==void 0?arguments[1]:!0;if(t.merge(s),l)for(var u=0;u=e.desktopTapThreshold2}var oe=a(W);ot&&(e.hoverData.tapholdCancelled=!0);var ht=o(function(){var pt=e.hoverData.dragDelta=e.hoverData.dragDelta||[];pt.length===0?(pt.push(st[0]),pt.push(st[1])):(pt[0]+=st[0],pt[1]+=st[1])},"updateDragDelta");K=!0,n(Pe,["mousemove","vmousemove","tapdrag"],W,{x:be[0],y:be[1]});var gt=o(function(pt){return{originalEvent:W,type:pt,position:{x:be[0],y:be[1]}}},"makeEvent"),et=o(function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||Re.emit(gt("boxstart")),Ve[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()},"goIntoBoxMode");if(e.hoverData.which===3){if(ot){var pe=gt("cxtdrag");le?le.emit(pe):Re.emit(pe),e.hoverData.cxtDragged=!0,(!e.hoverData.cxtOver||Pe!==e.hoverData.cxtOver)&&(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit(gt("cxtdragout")),e.hoverData.cxtOver=Pe,Pe&&Pe.emit(gt("cxtdragover")))}}else if(e.hoverData.dragging){if(K=!0,Re.panningEnabled()&&Re.userPanningEnabled()){var Qe;if(e.hoverData.justStartedPan){var nt=e.hoverData.mdownPos;Qe={x:(be[0]-nt[0])*xe,y:(be[1]-nt[1])*xe},e.hoverData.justStartedPan=!1}else Qe={x:st[0]*xe,y:st[1]*xe};Re.panBy(Qe),Re.emit(gt("dragpan")),e.hoverData.dragged=!0}be=e.projectIntoViewport(W.clientX,W.clientY)}else if(Ve[4]==1&&(le==null||le.pannable())){if(ot){if(!e.hoverData.dragging&&Re.boxSelectionEnabled()&&(oe||!Re.panningEnabled()||!Re.userPanningEnabled()))et();else if(!e.hoverData.selecting&&Re.panningEnabled()&&Re.userPanningEnabled()){var dt=s(le,e.hoverData.downs);dt&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,Ve[4]=0,e.data.bgActivePosistion=o1(Be),e.redrawHint("select",!0),e.redraw())}le&&le.pannable()&&le.active()&&le.unactivate()}}else{if(le&&le.pannable()&&le.active()&&le.unactivate(),(!le||!le.grabbed())&&Pe!=Ye&&(Ye&&n(Ye,["mouseout","tapdragout"],W,{x:be[0],y:be[1]}),Pe&&n(Pe,["mouseover","tapdragover"],W,{x:be[0],y:be[1]}),e.hoverData.last=Pe),le)if(ot){if(Re.boxSelectionEnabled()&&oe)le&&le.grabbed()&&(x(me),le.emit(gt("freeon")),me.emit(gt("free")),e.dragData.didDrag&&(le.emit(gt("dragfreeon")),me.emit(gt("dragfree")))),et();else if(le&&le.grabbed()&&e.nodeIsDraggable(le)){var Ft=!e.dragData.didDrag;Ft&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||y(me,{inDragLayer:!0});var Rt={x:0,y:0};if(Ot(st[0])&&Ot(st[1])&&(Rt.x+=st[0],Rt.y+=st[1],Ft)){var $t=e.hoverData.dragDelta;$t&&Ot($t[0])&&Ot($t[1])&&(Rt.x+=$t[0],Rt.y+=$t[1])}e.hoverData.draggingEles=!0,me.silentShift(Rt).emit(gt("position")).emit(gt("drag")),e.redrawHint("drag",!0),e.redraw()}}else ht();K=!0}if(Ve[2]=be[0],Ve[3]=be[1],K)return W.stopPropagation&&W.stopPropagation(),W.preventDefault&&W.preventDefault(),!1}},"mousemoveHandler"),!1);var D,_,R;e.registerBinding(t,"mouseup",o(function(W){if(!(e.hoverData.which===1&&W.which!==1&&e.hoverData.capture)){var ce=e.hoverData.capture;if(ce){e.hoverData.capture=!1;var K=e.cy,Re=e.projectIntoViewport(W.clientX,W.clientY),xe=e.selection,Oe=e.findNearestElement(Re[0],Re[1],!0,!1),be=e.dragData.possibleDragElements,Be=e.hoverData.down,Ae=a(W);e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,Be&&Be.unactivate();var Ve=o(function(kt){return{originalEvent:W,type:kt,position:{x:Re[0],y:Re[1]}}},"makeEvent");if(e.hoverData.which===3){var Pe=Ve("cxttapend");if(Be?Be.emit(Pe):K.emit(Pe),!e.hoverData.cxtDragged){var Ye=Ve("cxttap");Be?Be.emit(Ye):K.emit(Ye)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(e.hoverData.which===1){if(n(Oe,["mouseup","tapend","vmouseup"],W,{x:Re[0],y:Re[1]}),!e.dragData.didDrag&&!e.hoverData.dragged&&!e.hoverData.selecting&&!e.hoverData.isOverThresholdDrag&&(n(Be,["click","tap","vclick"],W,{x:Re[0],y:Re[1]}),_=!1,W.timeStamp-R<=K.multiClickDebounceTime()?(D&&clearTimeout(D),_=!0,R=null,n(Be,["dblclick","dbltap","vdblclick"],W,{x:Re[0],y:Re[1]})):(D=setTimeout(function(){_||n(Be,["oneclick","onetap","voneclick"],W,{x:Re[0],y:Re[1]})},K.multiClickDebounceTime()),R=W.timeStamp)),Be==null&&!e.dragData.didDrag&&!e.hoverData.selecting&&!e.hoverData.dragged&&!a(W)&&(K.$(r).unselect(["tapunselect"]),be.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=be=K.collection()),Oe==Be&&!e.dragData.didDrag&&!e.hoverData.selecting&&Oe!=null&&Oe._private.selectable&&(e.hoverData.dragging||(K.selectionType()==="additive"||Ae?Oe.selected()?Oe.unselect(["tapunselect"]):Oe.select(["tapselect"]):Ae||(K.$(r).unmerge(Oe).unselect(["tapunselect"]),Oe.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var le=K.collection(e.getAllInBox(xe[0],xe[1],xe[2],xe[3]));e.redrawHint("select",!0),le.length>0&&e.redrawHint("eles",!0),K.emit(Ve("boxend"));var st=o(function(kt){return kt.selectable()&&!kt.selected()},"eleWouldBeSelected");K.selectionType()==="additive"||Ae||K.$(r).unmerge(le).unselect(),le.emit(Ve("box")).stdFilter(st).select().emit(Ve("boxselect")),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!xe[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var me=Be&&Be.grabbed();x(be),me&&(Be.emit(Ve("freeon")),be.emit(Ve("free")),e.dragData.didDrag&&(Be.emit(Ve("dragfreeon")),be.emit(Ve("dragfree"))))}}xe[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null,e.hoverData.which=null}}},"mouseupHandler"),!1);var M=[],L=4,B,O=1e5,$=o(function(W,ce){for(var K=0;K=L){var Re=M;if(B=$(Re,5),!B){var xe=Math.abs(Re[0]);B=G(Re)&&xe>5}if(B)for(var Oe=0;Oe5&&(K=vP(K)*5),Ye=K/-250,B&&(Ye/=O,Ye*=3),Ye=Ye*e.wheelSensitivity;var le=W.deltaMode===1;le&&(Ye*=33);var st=be.zoom()*Math.pow(10,Ye);W.type==="gesturechange"&&(st=e.gestureStartZoom*W.scale),be.zoom({level:st,renderedPosition:{x:Pe[0],y:Pe[1]}}),be.emit({type:W.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:W,position:{x:Ve[0],y:Ve[1]}})}}}},"wheelHandler");e.registerBinding(e.container,"wheel",F,!0),e.registerBinding(t,"scroll",o(function(W){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout(function(){e.scrollingPage=!1},250)},"scrollHandler"),!0),e.registerBinding(e.container,"gesturestart",o(function(W){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||W.preventDefault()},"gestureStartHandler"),!0),e.registerBinding(e.container,"gesturechange",function(fe){e.hasTouchStarted||F(fe)},!0),e.registerBinding(e.container,"mouseout",o(function(W){var ce=e.projectIntoViewport(W.clientX,W.clientY);e.cy.emit({originalEvent:W,type:"mouseout",position:{x:ce[0],y:ce[1]}})},"mouseOutHandler"),!1),e.registerBinding(e.container,"mouseover",o(function(W){var ce=e.projectIntoViewport(W.clientX,W.clientY);e.cy.emit({originalEvent:W,type:"mouseover",position:{x:ce[0],y:ce[1]}})},"mouseOverHandler"),!1);var V,H,j,U,Q,Y,ae,J,te,re,ee,Te,ue,De=o(function(W,ce,K,Re){return Math.sqrt((K-W)*(K-W)+(Re-ce)*(Re-ce))},"distance"),Ie=o(function(W,ce,K,Re){return(K-W)*(K-W)+(Re-ce)*(Re-ce)},"distanceSq"),Ee;e.registerBinding(e.container,"touchstart",Ee=o(function(W){if(e.hasTouchStarted=!0,!!P(W)){T(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var ce=e.cy,K=e.touchData.now,Re=e.touchData.earlier;if(W.touches[0]){var xe=e.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);K[0]=xe[0],K[1]=xe[1]}if(W.touches[1]){var xe=e.projectIntoViewport(W.touches[1].clientX,W.touches[1].clientY);K[2]=xe[0],K[3]=xe[1]}if(W.touches[2]){var xe=e.projectIntoViewport(W.touches[2].clientX,W.touches[2].clientY);K[4]=xe[0],K[5]=xe[1]}var Oe=o(function(oe){return{originalEvent:W,type:oe,position:{x:K[0],y:K[1]}}},"makeEvent");if(W.touches[1]){e.touchData.singleTouchMoved=!0,x(e.dragData.touchDragEles);var be=e.findContainerClientCoords();te=be[0],re=be[1],ee=be[2],Te=be[3],V=W.touches[0].clientX-te,H=W.touches[0].clientY-re,j=W.touches[1].clientX-te,U=W.touches[1].clientY-re,ue=0<=V&&V<=ee&&0<=j&&j<=ee&&0<=H&&H<=Te&&0<=U&&U<=Te;var Be=ce.pan(),Ae=ce.zoom();Q=De(V,H,j,U),Y=Ie(V,H,j,U),ae=[(V+j)/2,(H+U)/2],J=[(ae[0]-Be.x)/Ae,(ae[1]-Be.y)/Ae];var Ve=200,Pe=Ve*Ve;if(Y=1){for(var Gt=e.touchData.startPosition=[null,null,null,null,null,null],Tt=0;Tt=e.touchTapThreshold2}if(ce&&e.touchData.cxt){W.preventDefault();var Tt=W.touches[0].clientX-te,Et=W.touches[0].clientY-re,yt=W.touches[1].clientX-te,oe=W.touches[1].clientY-re,ht=Ie(Tt,Et,yt,oe),gt=ht/Y,et=150,pe=et*et,Qe=1.5,nt=Qe*Qe;if(gt>=nt||ht>=pe){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var dt=Ae("cxttapend");e.touchData.start?(e.touchData.start.unactivate().emit(dt),e.touchData.start=null):Re.emit(dt)}}if(ce&&e.touchData.cxt){var dt=Ae("cxtdrag");e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(dt):Re.emit(dt),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var Ft=e.findNearestElement(xe[0],xe[1],!0,!0);(!e.touchData.cxtOver||Ft!==e.touchData.cxtOver)&&(e.touchData.cxtOver&&e.touchData.cxtOver.emit(Ae("cxtdragout")),e.touchData.cxtOver=Ft,Ft&&Ft.emit(Ae("cxtdragover")))}else if(ce&&W.touches[2]&&Re.boxSelectionEnabled())W.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||Re.emit(Ae("boxstart")),e.touchData.selecting=!0,e.touchData.didSelect=!0,K[4]=1,!K||K.length===0||K[0]===void 0?(K[0]=(xe[0]+xe[2]+xe[4])/3,K[1]=(xe[1]+xe[3]+xe[5])/3,K[2]=(xe[0]+xe[2]+xe[4])/3+1,K[3]=(xe[1]+xe[3]+xe[5])/3+1):(K[2]=(xe[0]+xe[2]+xe[4])/3,K[3]=(xe[1]+xe[3]+xe[5])/3),e.redrawHint("select",!0),e.redraw();else if(ce&&W.touches[1]&&!e.touchData.didSelect&&Re.zoomingEnabled()&&Re.panningEnabled()&&Re.userZoomingEnabled()&&Re.userPanningEnabled()){W.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var Rt=e.dragData.touchDragEles;if(Rt){e.redrawHint("drag",!0);for(var $t=0;$t0&&!e.hoverData.draggingEles&&!e.swipePanning&&e.data.bgActivePosistion!=null&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},"touchmoveHandler"),!1);var Me;e.registerBinding(t,"touchcancel",Me=o(function(W){var ce=e.touchData.start;e.touchData.capture=!1,ce&&ce.unactivate()},"touchcancelHandler"));var $e,de,rt,ke;if(e.registerBinding(t,"touchend",$e=o(function(W){var ce=e.touchData.start,K=e.touchData.capture;if(K)W.touches.length===0&&(e.touchData.capture=!1),W.preventDefault();else return;var Re=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var xe=e.cy,Oe=xe.zoom(),be=e.touchData.now,Be=e.touchData.earlier;if(W.touches[0]){var Ae=e.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);be[0]=Ae[0],be[1]=Ae[1]}if(W.touches[1]){var Ae=e.projectIntoViewport(W.touches[1].clientX,W.touches[1].clientY);be[2]=Ae[0],be[3]=Ae[1]}if(W.touches[2]){var Ae=e.projectIntoViewport(W.touches[2].clientX,W.touches[2].clientY);be[4]=Ae[0],be[5]=Ae[1]}var Ve=o(function(pe){return{originalEvent:W,type:pe,position:{x:be[0],y:be[1]}}},"makeEvent");ce&&ce.unactivate();var Pe;if(e.touchData.cxt){if(Pe=Ve("cxttapend"),ce?ce.emit(Pe):xe.emit(Pe),!e.touchData.cxtDragged){var Ye=Ve("cxttap");ce?ce.emit(Ye):xe.emit(Ye)}e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,e.redraw();return}if(!W.touches[2]&&xe.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var le=xe.collection(e.getAllInBox(Re[0],Re[1],Re[2],Re[3]));Re[0]=void 0,Re[1]=void 0,Re[2]=void 0,Re[3]=void 0,Re[4]=0,e.redrawHint("select",!0),xe.emit(Ve("boxend"));var st=o(function(pe){return pe.selectable()&&!pe.selected()},"eleWouldBeSelected");le.emit(Ve("box")).stdFilter(st).select().emit(Ve("boxselect")),le.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(ce?.unactivate(),W.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(!W.touches[1]){if(!W.touches[0]){if(!W.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var me=e.dragData.touchDragEles;if(ce!=null){var ot=ce._private.grabbed;x(me),e.redrawHint("drag",!0),e.redrawHint("eles",!0),ot&&(ce.emit(Ve("freeon")),me.emit(Ve("free")),e.dragData.didDrag&&(ce.emit(Ve("dragfreeon")),me.emit(Ve("dragfree")))),n(ce,["touchend","tapend","vmouseup","tapdragout"],W,{x:be[0],y:be[1]}),ce.unactivate(),e.touchData.start=null}else{var kt=e.findNearestElement(be[0],be[1],!0,!0);n(kt,["touchend","tapend","vmouseup","tapdragout"],W,{x:be[0],y:be[1]})}var Gt=e.touchData.startPosition[0]-be[0],Tt=Gt*Gt,Et=e.touchData.startPosition[1]-be[1],yt=Et*Et,oe=Tt+yt,ht=oe*Oe*Oe;e.touchData.singleTouchMoved||(ce||xe.$(":selected").unselect(["tapunselect"]),n(ce,["tap","vclick"],W,{x:be[0],y:be[1]}),de=!1,W.timeStamp-ke<=xe.multiClickDebounceTime()?(rt&&clearTimeout(rt),de=!0,ke=null,n(ce,["dbltap","vdblclick"],W,{x:be[0],y:be[1]})):(rt=setTimeout(function(){de||n(ce,["onetap","voneclick"],W,{x:be[0],y:be[1]})},xe.multiClickDebounceTime()),ke=W.timeStamp)),ce!=null&&!e.dragData.didDrag&&ce._private.selectable&&ht"u"){var Fe=[],He=o(function(W){return{clientX:W.clientX,clientY:W.clientY,force:1,identifier:W.pointerId,pageX:W.pageX,pageY:W.pageY,radiusX:W.width/2,radiusY:W.height/2,screenX:W.screenX,screenY:W.screenY,target:W.target}},"makeTouch"),at=o(function(W){return{event:W,touch:He(W)}},"makePointer"),qe=o(function(W){Fe.push(at(W))},"addPointer"),Ue=o(function(W){for(var ce=0;ce0)return V[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y0?m:dme(a,s,t,r,i,n,l,u)},"intersectLine"),checkPoint:o(function(t,r,i,n,a,s,l,u){u=u==="auto"?Hd(n,a):u;var h=2*u;if(Qu(t,r,this.points,s,l,n,a-h,[0,-1],i)||Qu(t,r,this.points,s,l,n-h,a,[0,-1],i))return!0;var d=n/2+2*i,f=a/2+2*i,p=[s-d,l-f,s-d,l,s+d,l,s+d,l-f];return!!(Bs(t,r,p)||Qp(t,r,h,h,s+n/2-u,l+a/2-u,i)||Qp(t,r,h,h,s-n/2+u,l+a/2-u,i))},"checkPoint")}};Ju.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",rs(3,0)),this.generateRoundPolygon("round-triangle",rs(3,0)),this.generatePolygon("rectangle",rs(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",rs(5,0)),this.generateRoundPolygon("round-pentagon",rs(5,0)),this.generatePolygon("hexagon",rs(6,0)),this.generateRoundPolygon("round-hexagon",rs(6,0)),this.generatePolygon("heptagon",rs(7,0)),this.generateRoundPolygon("round-heptagon",rs(7,0)),this.generatePolygon("octagon",rs(8,0)),this.generateRoundPolygon("round-octagon",rs(8,0));var i=new Array(20);{var n=UO(5,0),a=UO(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l=t.deqFastCost*w)break}else if(h){if(b>=t.deqCost*m||b>=t.deqAvgCost*p)break}else if(T>=t.deqNoDrawCost*PO)break;var C=t.deq(i,v,y);if(C.length>0)for(var k=0;k0&&(t.onDeqd(i,g),!h&&t.shouldRedraw(i,g,v,y)&&a())},"dequeue"),l=t.priority||mP;n.beforeRender(s,l(i))}},"setupDequeueingImpl")},"setupDequeueing")},mst=(function(){function e(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P3;Kd(this,e),this.idsByKey=new Ku,this.keyForId=new Ku,this.cachesByLvl=new Ku,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=r}return o(e,"ElementTextureCacheLookup"),Zd(e,[{key:"getIdsFor",value:o(function(r){r==null&&Yi("Can not get id list for null key");var i=this.idsByKey,n=this.idsByKey.get(r);return n||(n=new y1,i.set(r,n)),n},"getIdsFor")},{key:"addIdForKey",value:o(function(r,i){r!=null&&this.getIdsFor(r).add(i)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,i){r!=null&&this.getIdsFor(r).delete(i)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var i=r.id(),n=this.keyForId.get(i),a=this.getKey(r);this.deleteIdForKey(n,i),this.addIdForKey(a,i),this.keyForId.set(i,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var i=r.id(),n=this.keyForId.get(i);this.deleteIdForKey(n,i),this.keyForId.delete(i)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var i=r.id(),n=this.keyForId.get(i),a=this.getKey(r);return n!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var i=this.cachesByLvl,n=this.lvls,a=i.get(r);return a||(a=new Ku,i.set(r,a),n.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,i){return this.getCachesAt(i).get(r)},"getCache")},{key:"get",value:o(function(r,i){var n=this.getKey(r),a=this.getCache(n,i);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,i){var n=this.keyForId.get(r.id()),a=this.getCache(n,i);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,i){return this.getCachesAt(i).has(r)},"hasCache")},{key:"has",value:o(function(r,i){var n=this.getKey(r);return this.hasCache(n,i)},"has")},{key:"setCache",value:o(function(r,i,n){n.key=r,this.getCachesAt(i).set(r,n)},"setCache")},{key:"set",value:o(function(r,i,n){var a=this.getKey(r);this.setCache(a,i,n),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,i){this.getCachesAt(i).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,i){var n=this.getKey(r);this.deleteCache(n,i)},"_delete")},{key:"invalidateKey",value:o(function(r){var i=this;this.lvls.forEach(function(n){return i.deleteCache(r,n)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var i=r.id(),n=this.keyForId.get(i);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(n),a||this.getNumberOfIdsForKey(n)===0},"invalidate")}])})(),_0e=25,b3=50,L3=-4,aP=3,gge=7.99,gst=8,yst=1024,vst=1024,xst=1024,bst=.2,Tst=.8,Cst=10,kst=.15,wst=.1,Sst=.9,Est=.9,Ast=100,_st=1,c1={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Dst=va({getKey:null,doesEleInvalidateKey:P3,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:ame,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Vb=o(function(t,r){var i=this;i.renderer=t,i.onDequeues=[];var n=Dst(r);hr(i,n),i.lookup=new mst(n.getKey,n.doesEleInvalidateKey),i.setupDequeueing()},"ElementTextureCache"),qn=Vb.prototype;qn.reasons=c1;qn.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]};qn.getRetiredTextureQueue=function(e){var t=this,r=t.eleImgCaches.retired=t.eleImgCaches.retired||{},i=r[e]=r[e]||[];return i};qn.getElementQueue=function(){var e=this,t=e.eleCacheQueue=e.eleCacheQueue||new l2(function(r,i){return i.reqs-r.reqs});return t};qn.getElementKeyToQueue=function(){var e=this,t=e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{};return t};qn.getElement=function(e,t,r,i,n){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!t||t.w===0||t.h===0||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()||!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(i==null&&(i=Math.ceil(yP(l*r))),i=gge||i>aP)return null;var h=Math.pow(2,i),d=t.h*h,f=t.w*h,p=s.eleTextBiggerThanMin(e,h);if(!this.isVisible(e,p))return null;var m=u.get(e,i);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(d<=_0e?g=_0e:d<=b3?g=b3:g=Math.ceil(d/b3)*b3,d>xst||f>vst)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,f)||a.addTexture(g,f)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidthi;I--)N=a.getElement(e,t,r,I,c1.downscale);P()}else return a.queueElement(e,k.level-1),k;else{var D;if(!T&&!w&&!C)for(var _=i-1;_>=L3;_--){var R=u.get(e,_);if(R){D=R;break}}if(b(D))return a.queueElement(e,i),D;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,e,t,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:i,scale:h,width:f,height:d,scaledLabelShown:p},v.usedWidth+=Math.ceil(f+gst),v.eleCaches.push(m),u.set(e,i,m),a.checkTextureFullness(v),m};qn.invalidateElements=function(e){for(var t=0;t=bst*e.width&&this.retireTexture(e)};qn.checkTextureFullness=function(e){var t=this,r=t.getTextureQueue(e.height);e.usedWidth/e.width>Tst&&e.fullnessChecks>=Cst?Ud(r,e):e.fullnessChecks++};qn.retireTexture=function(e){var t=this,r=e.height,i=t.getTextureQueue(r),n=this.lookup;Ud(i,e),e.retired=!0;for(var a=e.eleCaches,s=0;s=t)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,gP(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),Ud(n,s),i.push(s),s}};qn.queueElement=function(e,t){var r=this,i=r.getElementQueue(),n=r.getElementKeyToQueue(),a=this.getKey(e),s=n[a];if(s)s.level=Math.max(s.level,t),s.eles.merge(e),s.reqs++,i.updateItem(s);else{var l={eles:e.spawn().merge(e),level:t,reqs:1,key:a};i.push(l),n[a]=l}};qn.dequeue=function(e){for(var t=this,r=t.getElementQueue(),i=t.getElementKeyToQueue(),n=[],a=t.lookup,s=0;s<_st&&r.size()>0;s++){var l=r.pop(),u=l.key,h=l.eles[0],d=a.hasCache(h,l.level);if(i[u]=null,d)continue;n.push(l);var f=t.getBoundingBox(h);t.getElement(h,f,e,l.level,c1.dequeue)}return n};qn.removeFromQueue=function(e){var t=this,r=t.getElementQueue(),i=t.getElementKeyToQueue(),n=this.getKey(e),a=i[n];a!=null&&(a.eles.length===1?(a.reqs=pP,r.updateItem(a),r.pop(),i[n]=null):a.eles.unmerge(e))};qn.onDequeue=function(e){this.onDequeues.push(e)};qn.offDequeue=function(e){Ud(this.onDequeues,e)};qn.setupDequeueing=mge.setupDequeueing({deqRedrawThreshold:Ast,deqCost:kst,deqAvgCost:wst,deqNoDrawCost:Sst,deqFastCost:Est,deq:o(function(t,r,i){return t.dequeue(r,i)},"deq"),onDeqd:o(function(t,r){for(var i=0;i=Lst||r>q3)return null}i.validateLayersElesOrdering(r,e);var u=i.layersByLevel,h=Math.pow(2,r),d=u[r]=u[r]||[],f,p=i.levelIsComplete(r,e),m,g=o(function(){var P=o(function(M){if(i.validateLayersElesOrdering(M,e),i.levelIsComplete(M,e))return m=u[M],!0},"canUseAsTmpLvl"),I=o(function(M){if(!m)for(var L=r+M;qb<=L&&L<=q3&&!P(L);L+=M);},"checkLvls");I(1),I(-1);for(var D=d.length-1;D>=0;D--){var _=d[D];_.invalid&&Ud(d,_)}},"checkTempLevels");if(!p)g();else return d;var y=o(function(){if(!f){f=is();for(var P=0;PR0e||_>R0e)return null;var R=D*_;if(R>$st)return null;var M=i.makeLayer(f,r);if(I!=null){var L=d.indexOf(I)+1;d.splice(L,0,M)}else(P.insert===void 0||P.insert)&&d.unshift(M);return M},"makeLayer");if(i.skipping&&!l)return null;for(var x=null,b=e.length/Rst,T=!l,w=0;w=b||!hme(x.bb,C.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||T?i.queueLayer(x,C):i.drawEleInLayer(x,C,r,t),x.eles.push(C),E[r]=x}return m||(T?null:d)};xa.getEleLevelForLayerLevel=function(e,t){return e};xa.drawEleInLayer=function(e,t,r,i){var n=this,a=this.renderer,s=e.context,l=t.boundingBox();l.w===0||l.h===0||!t.visible()||(r=n.getEleLevelForLayerLevel(r,i),a.setImgSmoothing(s,!1),a.drawCachedElement(s,t,null,null,r,zst),a.setImgSmoothing(s,!0))};xa.levelIsComplete=function(e,t){var r=this,i=r.layersByLevel[e];if(!i||i.length===0)return!1;for(var n=0,a=0;a0||s.invalid)return!1;n+=s.eles.length}return n===t.length};xa.validateLayersElesOrdering=function(e,t){var r=this.layersByLevel[e];if(r)for(var i=0;i0){t=!0;break}}return t};xa.invalidateElements=function(e){var t=this;e.length!==0&&(t.lastInvalidationTime=Zu(),!(e.length===0||!t.haveLayers())&&t.updateElementsInLayers(e,o(function(i,n,a){t.invalidateLayer(i)},"invalAssocLayers")))};xa.invalidateLayer=function(e){if(this.lastInvalidationTime=Zu(),!e.invalid){var t=e.level,r=e.eles,i=this.layersByLevel[t];Ud(i,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var n=0;n3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=t._private.rscratch;if(!(a&&!t.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,e.translate(-u.x1,-u.y1));var h=a?t.pstyle("opacity").value:1,d=a?t.pstyle("line-opacity").value:1,f=t.pstyle("curve-style").value,p=t.pstyle("line-style").value,m=t.pstyle("width").pfValue,g=t.pstyle("line-cap").value,y=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,x=h*d,b=h*d,T=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;f==="straight-triangle"?(s.eleStrokeStyle(e,t,M),s.drawEdgeTrianglePath(t,e,l.allpts)):(e.lineWidth=m,e.lineCap=g,s.eleStrokeStyle(e,t,M),s.drawEdgePath(t,e,l.allpts,p),e.lineCap="butt")},"drawLine"),w=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(e.lineWidth=m+y,e.lineCap=g,y>0)s.colorStrokeStyle(e,v[0],v[1],v[2],M);else{e.lineCap="butt";return}f==="straight-triangle"?s.drawEdgeTrianglePath(t,e,l.allpts):(s.drawEdgePath(t,e,l.allpts,p),e.lineCap="butt")},"drawLineOutline"),C=o(function(){n&&s.drawEdgeOverlay(e,t)},"drawOverlay"),k=o(function(){n&&s.drawEdgeUnderlay(e,t)},"drawUnderlay"),E=o(function(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(e,t,M)},"drawArrows"),A=o(function(){s.drawElementText(e,t,null,i)},"drawText");e.lineJoin="round";var N=t.pstyle("ghost").value==="yes";if(N){var P=t.pstyle("ghost-offset-x").pfValue,I=t.pstyle("ghost-offset-y").pfValue,D=t.pstyle("ghost-opacity").value,_=x*D;e.translate(P,I),T(_),E(_),e.translate(-P,-I)}else w();k(),T(),E(),C(),A(),r&&e.translate(u.x1,u.y1)}};xge=o(function(t){if(!["overlay","underlay"].includes(t))throw new Error("Invalid state");return function(r,i){if(i.visible()){var n=i.pstyle("".concat(t,"-opacity")).value;if(n!==0){var a=this,s=a.usePaths(),l=i._private.rscratch,u=i.pstyle("".concat(t,"-padding")).pfValue,h=2*u,d=i.pstyle("".concat(t,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,d[0],d[1],d[2],n),a.drawEdgePath(i,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");eh.drawEdgeOverlay=xge("overlay");eh.drawEdgeUnderlay=xge("underlay");eh.drawEdgePath=function(e,t,r,i){var n=e._private.rscratch,a=t,s,l=!1,u=this.usePaths(),h=e.pstyle("line-dash-pattern").pfValue,d=e.pstyle("line-dash-offset").pfValue;if(u){var f=r.join("$"),p=n.pathCacheKey&&n.pathCacheKey===f;p?(s=t=n.pathCache,l=!0):(s=t=new Path2D,n.pathCacheKey=f,n.pathCache=s)}if(a.setLineDash)switch(i){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=d;break;case"solid":a.setLineDash([]);break}if(!l&&!n.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(r[0],r[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(i==null){if(a&&!s.eleTextBiggerThanMin(t))return}else if(i===!1)return;if(t.isNode()){var l=t.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(t);e.textAlign=u,e.textBaseline="bottom"}else{var h=t.element()._private.rscratch.badLine,d=t.pstyle("label"),f=t.pstyle("source-label"),p=t.pstyle("target-label");if(h||(!d||!d.value)&&(!f||!f.value)&&(!p||!p.value))return;e.textAlign="center",e.textBaseline="bottom"}var m=!r,g;r&&(g=r,e.translate(-g.x1,-g.y1)),n==null?(s.drawText(e,t,null,m,a),t.isEdge()&&(s.drawText(e,t,"source",m,a),s.drawText(e,t,"target",m,a))):s.drawText(e,t,n,m,a),r&&e.translate(g.x1,g.y1)};a0.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,i=t.pstyle("font-style").strValue,n=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,s=t.pstyle("font-weight").strValue,l=r?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,u=t.pstyle("text-outline-opacity").value*l,h=t.pstyle("color").value,d=t.pstyle("text-outline-color").value;e.font=i+" "+s+" "+n+" "+a,e.lineJoin="round",this.colorFillStyle(e,h[0],h[1],h[2],l),this.colorStrokeStyle(e,d[0],d[1],d[2],u)};o(Zst,"circle");o(I0e,"roundRect");a0.getTextAngle=function(e,t){var r,i=e._private,n=i.rscratch,a=t?t+"-":"",s=e.pstyle(a+"text-rotation");if(s.strValue==="autorotate"){var l=Ps(n,"labelAngle",t);r=e.isEdge()?l:0}else s.strValue==="none"?r=0:r=s.pfValue;return r};a0.drawText=function(e,t,r){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=t._private,s=a.rscratch,l=n?t.effectiveOpacity():1;if(!(n&&(l===0||t.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=Ps(s,"labelX",r),h=Ps(s,"labelY",r),d,f,p=this.getLabelText(t,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(e,t,n);var m=r?r+"-":"",g=Ps(s,"labelWidth",r),y=Ps(s,"labelHeight",r),v=t.pstyle(m+"text-margin-x").pfValue,x=t.pstyle(m+"text-margin-y").pfValue,b=t.isEdge(),T=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;b&&(T="center",w="center"),u+=v,h+=x;var C;switch(i?C=this.getTextAngle(t,r):C=0,C!==0&&(d=u,f=h,e.translate(d,f),e.rotate(C),u=0,h=0),w){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var k=t.pstyle("text-background-opacity").value,E=t.pstyle("text-border-opacity").value,A=t.pstyle("text-border-width").pfValue,N=t.pstyle("text-background-padding").pfValue,P=t.pstyle("text-background-shape").strValue,I=P==="round-rectangle"||P==="roundrectangle",D=P==="circle",_=2;if(k>0||A>0&&E>0){var R=e.fillStyle,M=e.strokeStyle,L=e.lineWidth,B=t.pstyle("text-background-color").value,O=t.pstyle("text-border-color").value,$=t.pstyle("text-border-style").value,G=k>0,F=A>0&&E>0,V=u-N;switch(T){case"left":V-=g;break;case"center":V-=g/2;break}var H=h-y-N,j=g+2*N,U=y+2*N;if(G&&(e.fillStyle="rgba(".concat(B[0],",").concat(B[1],",").concat(B[2],",").concat(k*l,")")),F&&(e.strokeStyle="rgba(".concat(O[0],",").concat(O[1],",").concat(O[2],",").concat(E*l,")"),e.lineWidth=A,e.setLineDash))switch($){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=A/4,e.setLineDash([]);break;case"solid":default:e.setLineDash([]);break}if(I?(e.beginPath(),I0e(e,V,H,j,U,_)):D?(e.beginPath(),Zst(e,V,H,j,U)):(e.beginPath(),e.rect(V,H,j,U)),G&&e.fill(),F&&e.stroke(),F&&$==="double"){var Q=A/2;e.beginPath(),I?I0e(e,V+Q,H+Q,j-2*Q,U-2*Q,_):e.rect(V+Q,H+Q,j-2*Q,U-2*Q),e.stroke()}e.fillStyle=R,e.strokeStyle=M,e.lineWidth=L,e.setLineDash&&e.setLineDash([])}var Y=2*t.pstyle("text-outline-width").pfValue;if(Y>0&&(e.lineWidth=Y),t.pstyle("text-wrap").value==="wrap"){var ae=Ps(s,"labelWrapCachedLines",r),J=Ps(s,"labelLineHeight",r),te=g/2,re=this.getLabelJustification(t);switch(re==="auto"||(T==="left"?re==="left"?u+=-g:re==="center"&&(u+=-te):T==="center"?re==="left"?u+=-te:re==="right"&&(u+=te):T==="right"&&(re==="center"?u+=te:re==="right"&&(u+=g))),w){case"top":h-=(ae.length-1)*J;break;case"center":case"bottom":h-=(ae.length-1)*J;break}for(var ee=0;ee0&&e.strokeText(ae[ee],u,h),e.fillText(ae[ee],u,h),h+=J}else Y>0&&e.strokeText(p,u,h),e.fillText(p,u,h);C!==0&&(e.rotate(-C),e.translate(-d,-f))}}};Jd={};Jd.drawNode=function(e,t,r){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=t._private,d=h.rscratch,f=t.position();if(!(!Ot(f.x)||!Ot(f.y))&&!(a&&!t.visible())){var p=a?t.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=t.padding();l=t.width()+2*v,u=t.height()+2*v;var x;r&&(x=r,e.translate(-x.x1,-x.y1));for(var b=t.pstyle("background-image"),T=b.value,w=new Array(T.length),C=new Array(T.length),k=0,E=0;E0&&arguments[0]!==void 0?arguments[0]:_;s.eleFillStyle(e,t,ie)},"setupShapeColor"),J=o(function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:F;s.colorStrokeStyle(e,R[0],R[1],R[2],ie)},"setupBorderColor"),te=o(function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:U;s.colorStrokeStyle(e,H[0],H[1],H[2],ie)},"setupOutlineColor"),re=o(function(ie,fe,W,ce){var K=s.nodePathCache=s.nodePathCache||[],Re=nme(W==="polygon"?W+","+ce.join(","):W,""+fe,""+ie,""+Y),xe=K[Re],Oe,be=!1;return xe!=null?(Oe=xe,be=!0,d.pathCache=Oe):(Oe=new Path2D,K[Re]=d.pathCache=Oe),{path:Oe,cacheHit:be}},"getPath"),ee=t.pstyle("shape").strValue,Te=t.pstyle("shape-polygon-points").pfValue;if(m){e.translate(f.x,f.y);var ue=re(l,u,ee,Te);g=ue.path,y=ue.cacheHit}var De=o(function(){if(!y){var ie=f;m&&(ie={x:0,y:0}),s.nodeShapes[s.getNodeShape(t)].draw(g||e,ie.x,ie.y,l,u,Y,d)}m?e.fill(g):e.fill()},"drawShape"),Ie=o(function(){for(var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,fe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,W=h.backgrounding,ce=0,K=0;K0&&arguments[0]!==void 0?arguments[0]:!1,fe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(t)&&(s.drawPie(e,t,fe),ie&&(m||s.nodeShapes[s.getNodeShape(t)].draw(e,f.x,f.y,l,u,Y,d)))},"drawPie"),we=o(function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,fe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasStripe(t)&&(e.save(),m?e.clip(d.pathCache):(s.nodeShapes[s.getNodeShape(t)].draw(e,f.x,f.y,l,u,Y,d),e.clip()),s.drawStripe(e,t,fe),e.restore(),ie&&(m||s.nodeShapes[s.getNodeShape(t)].draw(e,f.x,f.y,l,u,Y,d)))},"drawStripe"),Me=o(function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,fe=(I>0?I:-I)*ie,W=I>0?0:255;I!==0&&(s.colorFillStyle(e,W,W,W,fe),m?e.fill(g):e.fill())},"darken"),$e=o(function(){if(D>0){if(e.lineWidth=D,e.lineCap=B,e.lineJoin=L,e.setLineDash)switch(M){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash($),e.lineDashOffset=G;break;case"solid":case"double":e.setLineDash([]);break}if(O!=="center"){if(e.save(),e.lineWidth*=2,O==="inside")m?e.clip(g):e.clip();else{var ie=new Path2D;ie.rect(-l/2-D,-u/2-D,l+2*D,u+2*D),ie.addPath(g),e.clip(ie,"evenodd")}m?e.stroke(g):e.stroke(),e.restore()}else m?e.stroke(g):e.stroke();if(M==="double"){e.lineWidth=D/3;var fe=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",m?e.stroke(g):e.stroke(),e.globalCompositeOperation=fe}e.setLineDash&&e.setLineDash([])}},"drawBorder"),de=o(function(){if(V>0){if(e.lineWidth=V,e.lineCap="butt",e.setLineDash)switch(j){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([]);break}var ie=f;m&&(ie={x:0,y:0});var fe=s.getNodeShape(t),W=D;O==="inside"&&(W=0),O==="outside"&&(W*=2);var ce=(l+W+(V+Q))/l,K=(u+W+(V+Q))/u,Re=l*ce,xe=u*K,Oe=s.nodeShapes[fe].points,be;if(m){var Be=re(Re,xe,fe,Oe);be=Be.path}if(fe==="ellipse")s.drawEllipsePath(be||e,ie.x,ie.y,Re,xe);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(fe)){var Ae=0,Ve=0,Pe=0;fe==="round-diamond"?Ae=(W+Q+V)*1.4:fe==="round-heptagon"?(Ae=(W+Q+V)*1.075,Pe=-(W/2+Q+V)/35):fe==="round-hexagon"?Ae=(W+Q+V)*1.12:fe==="round-pentagon"?(Ae=(W+Q+V)*1.13,Pe=-(W/2+Q+V)/15):fe==="round-tag"?(Ae=(W+Q+V)*1.12,Ve=(W/2+V+Q)*.07):fe==="round-triangle"&&(Ae=(W+Q+V)*(Math.PI/2),Pe=-(W+Q/2+V)/Math.PI),Ae!==0&&(ce=(l+Ae)/l,Re=l*ce,["round-hexagon","round-tag"].includes(fe)||(K=(u+Ae)/u,xe=u*K)),Y=Y==="auto"?pme(Re,xe):Y;for(var Ye=Re/2,le=xe/2,st=Y+(W+V+Q)/2,me=new Array(Oe.length/2),ot=new Array(Oe.length/2),kt=0;kt0){if(n=n||i.position(),a==null||s==null){var m=i.padding();a=i.width()+2*m,s=i.height()+2*m}l.colorFillStyle(r,d[0],d[1],d[2],h),l.nodeShapes[f].draw(r,n.x,n.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");Jd.drawNodeOverlay=bge("overlay");Jd.drawNodeUnderlay=bge("underlay");Jd.hasPie=function(e){return e=e[0],e._private.hasPie};Jd.hasStripe=function(e){return e=e[0],e._private.hasStripe};Jd.drawPie=function(e,t,r,i){t=t[0],i=i||t.position();var n=t.cy().style(),a=t.pstyle("pie-size"),s=t.pstyle("pie-hole"),l=t.pstyle("pie-start-angle").pfValue,u=i.x,h=i.y,d=t.width(),f=t.height(),p=Math.min(d,f)/2,m,g=0,y=this.usePaths();if(y&&(u=0,h=0),a.units==="%"?p=p*a.pfValue:a.pfValue!==void 0&&(p=a.pfValue/2),s.units==="%"?m=p*s.pfValue:s.pfValue!==void 0&&(m=s.pfValue/2),!(m>=p))for(var v=1;v<=n.pieBackgroundN;v++){var x=t.pstyle("pie-"+v+"-background-size").value,b=t.pstyle("pie-"+v+"-background-color").value,T=t.pstyle("pie-"+v+"-background-opacity").value*r,w=x/100;w+g>1&&(w=1-g);var C=1.5*Math.PI+2*Math.PI*g;C+=l;var k=2*Math.PI*w,E=C+k;x===0||g>=1||g+w>1||(m===0?(e.beginPath(),e.moveTo(u,h),e.arc(u,h,p,C,E),e.closePath()):(e.beginPath(),e.arc(u,h,p,C,E),e.arc(u,h,m,E,C,!0),e.closePath()),this.colorFillStyle(e,b[0],b[1],b[2],T),e.fill(),g+=w)}};Jd.drawStripe=function(e,t,r,i){t=t[0],i=i||t.position();var n=t.cy().style(),a=i.x,s=i.y,l=t.width(),u=t.height(),h=0,d=this.usePaths();e.save();var f=t.pstyle("stripe-direction").value,p=t.pstyle("stripe-size");switch(f){case"vertical":break;case"righward":e.rotate(-Math.PI/2);break}var m=l,g=u;p.units==="%"?(m=m*p.pfValue,g=g*p.pfValue):p.pfValue!==void 0&&(m=p.pfValue,g=p.pfValue),d&&(a=0,s=0),s-=m/2,a-=g/2;for(var y=1;y<=n.stripeBackgroundN;y++){var v=t.pstyle("stripe-"+y+"-background-size").value,x=t.pstyle("stripe-"+y+"-background-color").value,b=t.pstyle("stripe-"+y+"-background-opacity").value*r,T=v/100;T+h>1&&(T=1-h),!(v===0||h>=1||h+T>1)&&(e.beginPath(),e.rect(a,s+g*h,m,g*T),e.closePath(),this.colorFillStyle(e,x[0],x[1],x[2],b),e.fill(),h+=T)}e.restore()};ns={},Qst=100;ns.getPixelRatio=function(){var e=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var t=this.cy.window(),r=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/r};ns.paintCache=function(e){for(var t=this.paintCaches=this.paintCaches||[],r=!0,i,n=0;nt.minMbLowQualFrames&&(t.motionBlurPxRatio=t.mbPxRBlurry)),t.clearingMotionBlur&&(t.motionBlurPxRatio=1),t.textureDrawLastFrame&&!f&&(d[t.NODE]=!0,d[t.SELECT_BOX]=!0);var b=r.style(),T=r.zoom(),w=s!==void 0?s:T,C=r.pan(),k={x:C.x,y:C.y},E={zoom:T,pan:{x:C.x,y:C.y}},A=t.prevViewport,N=A===void 0||E.zoom!==A.zoom||E.pan.x!==A.pan.x||E.pan.y!==A.pan.y;!N&&!(y&&!g)&&(t.motionBlurPxRatio=1),l&&(k=l),w*=u,k.x*=u,k.y*=u;var P=t.getCachedZSortedEles();function I(J,te,re,ee,Te){var ue=J.globalCompositeOperation;J.globalCompositeOperation="destination-out",t.colorFillStyle(J,255,255,255,t.motionBlurTransparency),J.fillRect(te,re,ee,Te),J.globalCompositeOperation=ue}o(I,"mbclear");function D(J,te){var re,ee,Te,ue;!t.clearingMotionBlur&&(J===h.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]||J===h.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG])?(re={x:C.x*m,y:C.y*m},ee=T*m,Te=t.canvasWidth*m,ue=t.canvasHeight*m):(re=k,ee=w,Te=t.canvasWidth,ue=t.canvasHeight),J.setTransform(1,0,0,1,0,0),te==="motionBlur"?I(J,0,0,Te,ue):!i&&(te===void 0||te)&&J.clearRect(0,0,Te,ue),n||(J.translate(re.x,re.y),J.scale(ee,ee)),l&&J.translate(l.x,l.y),s&&J.scale(s,s)}if(o(D,"setContextTransform"),f||(t.textureDrawLastFrame=!1),f){if(t.textureDrawLastFrame=!0,!t.textureCache){t.textureCache={},t.textureCache.bb=r.mutableElements().boundingBox(),t.textureCache.texture=t.data.bufferCanvases[t.TEXTURE_BUFFER];var _=t.data.bufferContexts[t.TEXTURE_BUFFER];_.setTransform(1,0,0,1,0,0),_.clearRect(0,0,t.canvasWidth*t.textureMult,t.canvasHeight*t.textureMult),t.render({forcedContext:_,drawOnlyNodeLayer:!0,forcedPxRatio:u*t.textureMult});var E=t.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:t.canvasWidth,height:t.canvasHeight};E.mpan={x:(0-E.pan.x)/E.zoom,y:(0-E.pan.y)/E.zoom}}d[t.DRAG]=!1,d[t.NODE]=!1;var R=h.contexts[t.NODE],M=t.textureCache.texture,E=t.textureCache.viewport;R.setTransform(1,0,0,1,0,0),p?I(R,0,0,E.width,E.height):R.clearRect(0,0,E.width,E.height);var L=b.core("outside-texture-bg-color").value,B=b.core("outside-texture-bg-opacity").value;t.colorFillStyle(R,L[0],L[1],L[2],B),R.fillRect(0,0,E.width,E.height);var T=r.zoom();D(R,!1),R.clearRect(E.mpan.x,E.mpan.y,E.width/E.zoom/u,E.height/E.zoom/u),R.drawImage(M,E.mpan.x,E.mpan.y,E.width/E.zoom/u,E.height/E.zoom/u)}else t.textureOnViewport&&!i&&(t.textureCache=null);var O=r.extent(),$=t.pinching||t.hoverData.dragging||t.swipePanning||t.data.wheelZooming||t.hoverData.draggingEles||t.cy.animated(),G=t.hideEdgesOnViewport&&$,F=[];if(F[t.NODE]=!d[t.NODE]&&p&&!t.clearedForMotionBlur[t.NODE]||t.clearingMotionBlur,F[t.NODE]&&(t.clearedForMotionBlur[t.NODE]=!0),F[t.DRAG]=!d[t.DRAG]&&p&&!t.clearedForMotionBlur[t.DRAG]||t.clearingMotionBlur,F[t.DRAG]&&(t.clearedForMotionBlur[t.DRAG]=!0),d[t.NODE]||n||a||F[t.NODE]){var V=p&&!F[t.NODE]&&m!==1,R=i||(V?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]:h.contexts[t.NODE]),H=p&&!V?"motionBlur":void 0;D(R,H),G?t.drawCachedNodes(R,P.nondrag,u,O):t.drawLayeredElements(R,P.nondrag,u,O),t.debug&&t.drawDebugPoints(R,P.nondrag),!n&&!p&&(d[t.NODE]=!1)}if(!a&&(d[t.DRAG]||n||F[t.DRAG])){var V=p&&!F[t.DRAG]&&m!==1,R=i||(V?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG]:h.contexts[t.DRAG]);D(R,p&&!V?"motionBlur":void 0),G?t.drawCachedNodes(R,P.drag,u,O):t.drawCachedElements(R,P.drag,u,O),t.debug&&t.drawDebugPoints(R,P.drag),!n&&!p&&(d[t.DRAG]=!1)}if(this.drawSelectionRectangle(e,D),p&&m!==1){var j=h.contexts[t.NODE],U=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE],Q=h.contexts[t.DRAG],Y=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG],ae=o(function(te,re,ee){te.setTransform(1,0,0,1,0,0),ee||!x?te.clearRect(0,0,t.canvasWidth,t.canvasHeight):I(te,0,0,t.canvasWidth,t.canvasHeight);var Te=m;te.drawImage(re,0,0,t.canvasWidth*Te,t.canvasHeight*Te,0,0,t.canvasWidth,t.canvasHeight)},"drawMotionBlur");(d[t.NODE]||F[t.NODE])&&(ae(j,U,F[t.NODE]),d[t.NODE]=!1),(d[t.DRAG]||F[t.DRAG])&&(ae(Q,Y,F[t.DRAG]),d[t.DRAG]=!1)}t.prevViewport=E,t.clearingMotionBlur&&(t.clearingMotionBlur=!1,t.motionBlurCleared=!0,t.motionBlur=!0),p&&(t.motionBlurTimeout=setTimeout(function(){t.motionBlurTimeout=null,t.clearedForMotionBlur[t.NODE]=!1,t.clearedForMotionBlur[t.DRAG]=!1,t.motionBlur=!1,t.clearingMotionBlur=!f,t.mbFrames=0,d[t.NODE]=!0,d[t.DRAG]=!0,t.redraw()},Qst)),i||r.emit("render")};ns.drawSelectionRectangle=function(e,t){var r=this,i=r.cy,n=r.data,a=i.style(),s=e.drawOnlyNodeLayer,l=e.drawAllLayers,u=n.canvasNeedsRedraw,h=e.forcedContext;if(r.showFps||!s&&u[r.SELECT_BOX]&&!l){var d=h||n.contexts[r.SELECT_BOX];if(t(d),r.selection[4]==1&&(r.hoverData.selecting||r.touchData.selecting)){var f=r.cy.zoom(),p=a.core("selection-box-border-width").value/f;d.lineWidth=p,d.fillStyle="rgba("+a.core("selection-box-color").value[0]+","+a.core("selection-box-color").value[1]+","+a.core("selection-box-color").value[2]+","+a.core("selection-box-opacity").value+")",d.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]),p>0&&(d.strokeStyle="rgba("+a.core("selection-box-border-color").value[0]+","+a.core("selection-box-border-color").value[1]+","+a.core("selection-box-border-color").value[2]+","+a.core("selection-box-opacity").value+")",d.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]))}if(n.bgActivePosistion&&!r.hoverData.selecting){var f=r.cy.zoom(),m=n.bgActivePosistion;d.fillStyle="rgba("+a.core("active-bg-color").value[0]+","+a.core("active-bg-color").value[1]+","+a.core("active-bg-color").value[2]+","+a.core("active-bg-opacity").value+")",d.beginPath(),d.arc(m.x,m.y,a.core("active-bg-size").pfValue/f,0,2*Math.PI),d.fill()}var g=r.lastRedrawTime;if(r.showFps&&g){g=Math.round(g);var y=Math.round(1e3/g),v="1 frame = "+g+" ms = "+y+" fps";if(d.setTransform(1,0,0,1,0,0),d.fillStyle="rgba(255, 0, 0, 0.75)",d.strokeStyle="rgba(255, 0, 0, 0.75)",d.font="30px Arial",!Bb){var x=d.measureText(v);Bb=x.actualBoundingBoxAscent}d.fillText(v,0,Bb);var b=60;d.strokeRect(0,Bb+10,250,20),d.fillRect(0,Bb+10,250*Math.min(y/b,1),20)}l||(u[r.SELECT_BOX]=!1)}};o(O0e,"compileShader");o(Jst,"createProgram");o(eot,"createTextureCanvas");o(IP,"getEffectivePanZoom");o(tot,"getEffectiveZoom");o(rot,"modelToRenderedPosition");o(iot,"isSimpleShape");o(not,"arrayEqual");o(Hp,"toWebGLColor");o(n1,"indexToVec4");o(aot,"vec4ToIndex");o(sot,"createTexture");o(Tge,"getTypeInfo");o(Cge,"createTypedArray");o(oot,"createTypedArrayView");o(lot,"createBufferStaticDraw");o(Oc,"createBufferDynamicDraw");o(cot,"create3x3MatrixBufferDynamicDraw");o(uot,"createPickingFrameBuffer");P0e=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});o(FO,"create");o(B0e,"identity");o(hot,"multiply");o(M3,"translate");o(F0e,"rotate");o(sP,"scale");o(dot,"projection");fot=(function(){function e(t,r,i,n){Kd(this,e),this.debugID=Math.floor(Math.random()*1e4),this.r=t,this.texSize=r,this.texRows=i,this.texHeight=Math.floor(r/i),this.enableWrapping=!0,this.locked=!1,this.texture=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=n(t,r,r),this.scratch=n(t,r,this.texHeight,"scratch")}return o(e,"Atlas"),Zd(e,[{key:"lock",value:o(function(){this.locked=!0},"lock")},{key:"getKeys",value:o(function(){return new Set(this.keyToLocation.keys())},"getKeys")},{key:"getScale",value:o(function(r){var i=r.w,n=r.h,a=this.texHeight,s=this.texSize,l=a/n,u=i*l,h=n*l;return u>s&&(l=s/i,u=i*l,h=n*l),{scale:l,texW:u,texH:h}},"getScale")},{key:"draw",value:o(function(r,i,n){var a=this;if(this.locked)throw new Error("can't draw, atlas is locked");var s=this.texSize,l=this.texRows,u=this.texHeight,h=this.getScale(i),d=h.scale,f=h.texW,p=h.texH,m=o(function(T,w){if(n&&w){var C=w.context,k=T.x,E=T.row,A=k,N=u*E;C.save(),C.translate(A,N),C.scale(d,d),n(C,i),C.restore()}},"drawAt"),g=[null,null],y=o(function(){m(a.freePointer,a.canvas),g[0]={x:a.freePointer.x,y:a.freePointer.row*u,w:f,h:p},g[1]={x:a.freePointer.x+f,y:a.freePointer.row*u,w:0,h:p},a.freePointer.x+=f,a.freePointer.x==s&&(a.freePointer.x=0,a.freePointer.row++)},"drawNormal"),v=o(function(){var T=a.scratch,w=a.canvas;T.clear(),m({x:0,row:0},T);var C=s-a.freePointer.x,k=f-C,E=u;{var A=a.freePointer.x,N=a.freePointer.row*u,P=C;w.context.drawImage(T,0,0,P,E,A,N,P,E),g[0]={x:A,y:N,w:P,h:p}}{var I=C,D=(a.freePointer.row+1)*u,_=k;w&&w.context.drawImage(T,I,0,_,E,0,D,_,E),g[1]={x:0,y:D,w:_,h:p}}a.freePointer.x=k,a.freePointer.row++},"drawWrapped"),x=o(function(){a.freePointer.x=0,a.freePointer.row++},"moveToStartOfNextRow");if(this.freePointer.x+f<=s)y();else{if(this.freePointer.row>=l-1)return!1;this.freePointer.x===s?(x(),y()):this.enableWrapping?v():(x(),y())}return this.keyToLocation.set(r,g),this.needsBuffer=!0,g},"draw")},{key:"getOffsets",value:o(function(r){return this.keyToLocation.get(r)},"getOffsets")},{key:"isEmpty",value:o(function(){return this.freePointer.x===0&&this.freePointer.row===0},"isEmpty")},{key:"canFit",value:o(function(r){if(this.locked)return!1;var i=this.texSize,n=this.texRows,a=this.getScale(r),s=a.texW;return this.freePointer.x+s>i?this.freePointer.row1&&arguments[1]!==void 0?arguments[1]:{},a=n.forceRedraw,s=a===void 0?!1:a,l=n.filterEle,u=l===void 0?function(){return!0}:l,h=n.filterType,d=h===void 0?function(){return!0}:h,f=!1,p=!1,m=Fs(r),g;try{for(m.s();!(g=m.n()).done;){var y=g.value;if(u(y)){var v=Fs(this.renderTypes.values()),x;try{var b=o(function(){var w=x.value,C=w.type;if(d(C)){var k=i.collections.get(w.collection),E=w.getKey(y),A=Array.isArray(E)?E:[E];if(s)A.forEach(function(D){return k.markKeyForGC(D)}),p=!0;else{var N=w.getID?w.getID(y):y.id(),P=i._key(C,N),I=i.typeAndIdToKey.get(P);I!==void 0&&!not(A,I)&&(f=!0,i.typeAndIdToKey.delete(P),I.forEach(function(D){return k.markKeyForGC(D)}))}}},"_loop2");for(v.s();!(x=v.n()).done;)b()}catch(T){v.e(T)}finally{v.f()}}}}catch(T){m.e(T)}finally{m.f()}return p&&(this.gc(),f=!1),f},"invalidate")},{key:"gc",value:o(function(){var r=Fs(this.collections.values()),i;try{for(r.s();!(i=r.n()).done;){var n=i.value;n.gc()}}catch(a){r.e(a)}finally{r.f()}},"gc")},{key:"getOrCreateAtlas",value:o(function(r,i,n,a){var s=this.renderTypes.get(i),l=this.collections.get(s.collection),u=!1,h=l.draw(a,n,function(p){s.drawClipped?(p.save(),p.beginPath(),p.rect(0,0,n.w,n.h),p.clip(),s.drawElement(p,r,n,!0,!0),p.restore()):s.drawElement(p,r,n,!0,!0),u=!0});if(u){var d=s.getID?s.getID(r):r.id(),f=this._key(i,d);this.typeAndIdToKey.has(f)?this.typeAndIdToKey.get(f).push(a):this.typeAndIdToKey.set(f,[a])}return h},"getOrCreateAtlas")},{key:"getAtlasInfo",value:o(function(r,i){var n=this,a=this.renderTypes.get(i),s=a.getKey(r),l=Array.isArray(s)?s:[s];return l.map(function(u){var h=a.getBoundingBox(r,u),d=n.getOrCreateAtlas(r,i,h,u),f=d.getOffsets(u),p=Dn(f,2),m=p[0],g=p[1];return{atlas:d,tex:m,tex1:m,tex2:g,bb:h}})},"getAtlasInfo")},{key:"getDebugInfo",value:o(function(){var r=[],i=Fs(this.collections),n;try{for(i.s();!(n=i.n()).done;){var a=Dn(n.value,2),s=a[0],l=a[1],u=l.getCounts(),h=u.keyCount,d=u.atlasCount;r.push({type:s,keyCount:h,atlasCount:d})}}catch(f){i.e(f)}finally{i.f()}return r},"getDebugInfo")}])})(),yot=(function(){function e(t){Kd(this,e),this.globalOptions=t,this.atlasSize=t.webglTexSize,this.maxAtlasesPerBatch=t.webglTexPerBatch,this.batchAtlases=[]}return o(e,"AtlasBatchManager"),Zd(e,[{key:"getMaxAtlasesPerBatch",value:o(function(){return this.maxAtlasesPerBatch},"getMaxAtlasesPerBatch")},{key:"getAtlasSize",value:o(function(){return this.atlasSize},"getAtlasSize")},{key:"getIndexArray",value:o(function(){return Array.from({length:this.maxAtlasesPerBatch},function(r,i){return i})},"getIndexArray")},{key:"startBatch",value:o(function(){this.batchAtlases=[]},"startBatch")},{key:"getAtlasCount",value:o(function(){return this.batchAtlases.length},"getAtlasCount")},{key:"getAtlases",value:o(function(){return this.batchAtlases},"getAtlases")},{key:"canAddToCurrentBatch",value:o(function(r){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(r):!0},"canAddToCurrentBatch")},{key:"getAtlasIndexForBatch",value:o(function(r){var i=this.batchAtlases.indexOf(r);if(i<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw new Error("cannot add more atlases to batch");this.batchAtlases.push(r),i=this.batchAtlases.length-1}return i},"getAtlasIndexForBatch")}])})(),vot=` + float circleSD(vec2 p, float r) { + return distance(vec2(0), p) - r; // signed distance + } +`,xot=` + float rectangleSD(vec2 p, vec2 b) { + vec2 d = abs(p)-b; + return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0); + } +`,bot=` + float roundRectangleSD(vec2 p, vec2 b, vec4 cr) { + cr.xy = (p.x > 0.0) ? cr.xy : cr.zw; + cr.x = (p.y > 0.0) ? cr.x : cr.y; + vec2 q = abs(p) - b + cr.x; + return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x; + } +`,Tot=` + float ellipseSD(vec2 p, vec2 ab) { + p = abs( p ); // symmetry + + // find root with Newton solver + vec2 q = ab*(p-ab); + float w = (q.x1.0) ? d : -d; + } +`,Ub={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},U3={IGNORE:1,USE_BB:2},$O=0,$0e=1,z0e=2,zO=3,a1=4,T3=5,Fb=6,$b=7,Cot=(function(){function e(t,r,i){Kd(this,e),this.r=t,this.gl=r,this.maxInstances=i.webglBatchSize,this.atlasSize=i.webglTexSize,this.bgColor=i.bgColor,this.debug=i.webglDebug,this.batchDebugInfo=[],i.enableWrapping=!0,i.createTextureCanvas=eot,this.atlasManager=new got(t,i),this.batchManager=new yot(i),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(Ub.SCREEN),this.pickingProgram=this._createShaderProgram(Ub.PICKING),this.vao=this._createVAO()}return o(e,"ElementDrawingWebGL"),Zd(e,[{key:"addAtlasCollection",value:o(function(r,i){this.atlasManager.addAtlasCollection(r,i)},"addAtlasCollection")},{key:"addTextureAtlasRenderType",value:o(function(r,i){this.atlasManager.addRenderType(r,i)},"addTextureAtlasRenderType")},{key:"addSimpleShapeRenderType",value:o(function(r,i){this.simpleShapeOptions.set(r,i)},"addSimpleShapeRenderType")},{key:"invalidate",value:o(function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=i.type,a=this.atlasManager;return n?a.invalidate(r,{filterType:o(function(l){return l===n},"filterType"),forceRedraw:!0}):a.invalidate(r)},"invalidate")},{key:"gc",value:o(function(){this.atlasManager.gc()},"gc")},{key:"_createShaderProgram",value:o(function(r){var i=this.gl,n=`#version 300 es + precision highp float; + + uniform mat3 uPanZoomMatrix; + uniform int uAtlasSize; + + // instanced + in vec2 aPosition; // a vertex from the unit square + + in mat3 aTransform; // used to transform verticies, eg into a bounding box + in int aVertType; // the type of thing we are rendering + + // the z-index that is output when using picking mode + in vec4 aIndex; + + // For textures + in int aAtlasId; // which shader unit/atlas to use + in vec4 aTex; // x/y/w/h of texture in atlas + + // for edges + in vec4 aPointAPointB; + in vec4 aPointCPointD; + in vec2 aLineWidth; // also used for node border width + + // simple shapes + in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left] + in vec4 aColor; // also used for edges + in vec4 aBorderColor; // aLineWidth is used for border width + + // output values passed to the fragment shader + out vec2 vTexCoord; + out vec4 vColor; + out vec2 vPosition; + // flat values are not interpolated + flat out int vAtlasId; + flat out int vVertType; + flat out vec2 vTopRight; + flat out vec2 vBotLeft; + flat out vec4 vCornerRadius; + flat out vec4 vBorderColor; + flat out vec2 vBorderWidth; + flat out vec4 vIndex; + + void main(void) { + int vid = gl_VertexID; + vec2 position = aPosition; // TODO make this a vec3, simplifies some code below + + if(aVertType == `.concat($O,`) { + float texX = aTex.x; // texture coordinates + float texY = aTex.y; + float texW = aTex.z; + float texH = aTex.w; + + if(vid == 1 || vid == 2 || vid == 4) { + texX += texW; + } + if(vid == 2 || vid == 4 || vid == 5) { + texY += texH; + } + + float d = float(uAtlasSize); + vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1 + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(a1," || aVertType == ").concat($b,` + || aVertType == `).concat(T3," || aVertType == ").concat(Fb,`) { // simple shapes + + // the bounding box is needed by the fragment shader + vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat + vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat + vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated + + // calculations are done in the fragment shader, just pass these along + vColor = aColor; + vCornerRadius = aCornerRadius; + vBorderColor = aBorderColor; + vBorderWidth = aLineWidth; + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat($0e,`) { + vec2 source = aPointAPointB.xy; + vec2 target = aPointAPointB.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + // stretch the unit square into a long skinny rectangle + vec2 xBasis = target - source; + vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x)); + vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y; + + gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0); + vColor = aColor; + } + else if(aVertType == `).concat(z0e,`) { + vec2 pointA = aPointAPointB.xy; + vec2 pointB = aPointAPointB.zw; + vec2 pointC = aPointCPointD.xy; + vec2 pointD = aPointCPointD.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + vec2 p0, p1, p2, pos; + if(position.x == 0.0) { // The left side of the unit square + p0 = pointA; + p1 = pointB; + p2 = pointC; + pos = position; + } else { // The right side of the unit square, use same approach but flip the geometry upside down + p0 = pointD; + p1 = pointC; + p2 = pointB; + pos = vec2(0.0, -position.y); + } + + vec2 p01 = p1 - p0; + vec2 p12 = p2 - p1; + vec2 p21 = p1 - p2; + + // Find the normal vector. + vec2 tangent = normalize(normalize(p12) + normalize(p01)); + vec2 normal = vec2(-tangent.y, tangent.x); + + // Find the vector perpendicular to p0 -> p1. + vec2 p01Norm = normalize(vec2(-p01.y, p01.x)); + + // Determine the bend direction. + float sigma = sign(dot(p01 + p21, normal)); + float width = aLineWidth[0]; + + if(sign(pos.y) == -sigma) { + // This is an intersecting vertex. Adjust the position so that there's no overlap. + vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } else { + // This is a non-intersecting vertex. Treat it like a mitre join. + vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } + + vColor = aColor; + } + else if(aVertType == `).concat(zO,` && vid < 3) { + // massage the first triangle into an edge arrow + if(vid == 0) + position = vec2(-0.15, -0.3); + if(vid == 1) + position = vec2( 0.0, 0.0); + if(vid == 2) + position = vec2( 0.15, -0.3); + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + vColor = aColor; + } + else { + gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space + } + + vAtlasId = aAtlasId; + vVertType = aVertType; + vIndex = aIndex; + } + `),a=this.batchManager.getIndexArray(),s=`#version 300 es + precision highp float; + + // declare texture unit for each texture atlas in the batch + `.concat(a.map(function(h){return"uniform sampler2D uTexture".concat(h,";")}).join(` + `),` + + uniform vec4 uBGColor; + uniform float uZoom; + + in vec2 vTexCoord; + in vec4 vColor; + in vec2 vPosition; // model coordinates + + flat in int vAtlasId; + flat in vec4 vIndex; + flat in int vVertType; + flat in vec2 vTopRight; + flat in vec2 vBotLeft; + flat in vec4 vCornerRadius; + flat in vec4 vBorderColor; + flat in vec2 vBorderWidth; + + out vec4 outColor; + + `).concat(vot,` + `).concat(xot,` + `).concat(bot,` + `).concat(Tot,` + + vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha + return vec4( + top.rgb + (bot.rgb * (1.0 - top.a)), + top.a + (bot.a * (1.0 - top.a)) + ); + } + + vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance + // scale to the zoom level so that borders don't look blurry when zoomed in + // note 1.5 is an aribitrary value chosen because it looks good + return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); + } + + void main(void) { + if(vVertType == `).concat($O,`) { + // look up the texel from the texture unit + `).concat(a.map(function(h){return"if(vAtlasId == ".concat(h,") outColor = texture(uTexture").concat(h,", vTexCoord);")}).join(` + else `),` + } + else if(vVertType == `).concat(zO,`) { + // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out'; + outColor = blend(vColor, uBGColor); + outColor.a = 1.0; // make opaque, masks out line under arrow + } + else if(vVertType == `).concat(a1,` && vBorderWidth == vec2(0.0)) { // simple rectangle with no border + outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done + } + else if(vVertType == `).concat(a1," || vVertType == ").concat($b,` + || vVertType == `).concat(T3," || vVertType == ").concat(Fb,`) { // use SDF + + float outerBorder = vBorderWidth[0]; + float innerBorder = vBorderWidth[1]; + float borderPadding = outerBorder * 2.0; + float w = vTopRight.x - vBotLeft.x - borderPadding; + float h = vTopRight.y - vBotLeft.y - borderPadding; + vec2 b = vec2(w/2.0, h/2.0); // half width, half height + vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center + + float d; // signed distance + if(vVertType == `).concat(a1,`) { + d = rectangleSD(p, b); + } else if(vVertType == `).concat($b,` && w == h) { + d = circleSD(p, b.x); // faster than ellipse + } else if(vVertType == `).concat($b,`) { + d = ellipseSD(p, b); + } else { + d = roundRectangleSD(p, b, vCornerRadius.wzyx); + } + + // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling + // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box + if(d > 0.0) { + if(d > outerBorder) { + discard; + } else { + outColor = distInterp(vBorderColor, vec4(0), d - outerBorder); + } + } else { + if(d > innerBorder) { + vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor; + vec4 innerBorderColor = blend(vBorderColor, vColor); + outColor = distInterp(innerBorderColor, outerColor, d); + } + else { + vec4 outerColor; + if(innerBorder == 0.0 && outerBorder == 0.0) { + outerColor = vec4(0); + } else if(innerBorder == 0.0) { + outerColor = vBorderColor; + } else { + outerColor = blend(vBorderColor, vColor); + } + outColor = distInterp(vColor, outerColor, d - innerBorder); + } + } + } + else { + outColor = vColor; + } + + `).concat(r.picking?`if(outColor.a == 0.0) discard; + else outColor = vIndex;`:"",` + } + `),l=Jst(i,n,s);l.aPosition=i.getAttribLocation(l,"aPosition"),l.aIndex=i.getAttribLocation(l,"aIndex"),l.aVertType=i.getAttribLocation(l,"aVertType"),l.aTransform=i.getAttribLocation(l,"aTransform"),l.aAtlasId=i.getAttribLocation(l,"aAtlasId"),l.aTex=i.getAttribLocation(l,"aTex"),l.aPointAPointB=i.getAttribLocation(l,"aPointAPointB"),l.aPointCPointD=i.getAttribLocation(l,"aPointCPointD"),l.aLineWidth=i.getAttribLocation(l,"aLineWidth"),l.aColor=i.getAttribLocation(l,"aColor"),l.aCornerRadius=i.getAttribLocation(l,"aCornerRadius"),l.aBorderColor=i.getAttribLocation(l,"aBorderColor"),l.uPanZoomMatrix=i.getUniformLocation(l,"uPanZoomMatrix"),l.uAtlasSize=i.getUniformLocation(l,"uAtlasSize"),l.uBGColor=i.getUniformLocation(l,"uBGColor"),l.uZoom=i.getUniformLocation(l,"uZoom"),l.uTextures=[];for(var u=0;u1&&arguments[1]!==void 0?arguments[1]:Ub.SCREEN;this.panZoomMatrix=r,this.renderTarget=i,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()},"startFrame")},{key:"startBatch",value:o(function(){this.instanceCount=0,this.batchManager.startBatch()},"startBatch")},{key:"endFrame",value:o(function(){this.endBatch()},"endFrame")},{key:"_isVisible",value:o(function(r,i){return r.visible()?i&&i.isVisible?i.isVisible(r):!0:!1},"_isVisible")},{key:"drawTexture",value:o(function(r,i,n){var a=this.atlasManager,s=this.batchManager,l=a.getRenderTypeOpts(n);if(this._isVisible(r,l)&&!(r.isEdge()&&!this._isValidEdge(r))){if(this.renderTarget.picking&&l.getTexPickingMode){var u=l.getTexPickingMode(r);if(u===U3.IGNORE)return;if(u==U3.USE_BB){this.drawPickingRectangle(r,i,n);return}}var h=a.getAtlasInfo(r,n),d=Fs(h),f;try{for(d.s();!(f=d.n()).done;){var p=f.value,m=p.atlas,g=p.tex1,y=p.tex2;s.canAddToCurrentBatch(m)||this.endBatch();for(var v=s.getAtlasIndexForBatch(m),x=0,b=[[g,!0],[y,!1]];x=this.maxInstances&&this.endBatch()}}}}catch(I){d.e(I)}finally{d.f()}}},"drawTexture")},{key:"setTransformMatrix",value:o(function(r,i,n,a){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,l=0;if(n.shapeProps&&n.shapeProps.padding&&(l=r.pstyle(n.shapeProps.padding).pfValue),a){var u=a.bb,h=a.tex1,d=a.tex2,f=h.w/(h.w+d.w);s||(f=1-f);var p=this._getAdjustedBB(u,l,s,f);this._applyTransformMatrix(i,p,n,r)}else{var m=n.getBoundingBox(r),g=this._getAdjustedBB(m,l,!0,1);this._applyTransformMatrix(i,g,n,r)}},"setTransformMatrix")},{key:"_applyTransformMatrix",value:o(function(r,i,n,a){var s,l;B0e(r);var u=n.getRotation?n.getRotation(a):0;if(u!==0){var h=n.getRotationPoint(a),d=h.x,f=h.y;M3(r,r,[d,f]),F0e(r,r,u);var p=n.getRotationOffset(a);s=p.x+(i.xOffset||0),l=p.y+(i.yOffset||0)}else s=i.x1,l=i.y1;M3(r,r,[s,l]),sP(r,r,[i.w,i.h])},"_applyTransformMatrix")},{key:"_getAdjustedBB",value:o(function(r,i,n,a){var s=r.x1,l=r.y1,u=r.w,h=r.h,d=r.yOffset;i&&(s-=i,l-=i,u+=2*i,h+=2*i);var f=0,p=u*a;return n&&a<1?u=p:!n&&a<1&&(f=u-p,s+=f,u=p),{x1:s,y1:l,w:u,h,xOffset:f,yOffset:d}},"_getAdjustedBB")},{key:"drawPickingRectangle",value:o(function(r,i,n){var a=this.atlasManager.getRenderTypeOpts(n),s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=a1;var l=this.indexBuffer.getView(s);n1(i,l);var u=this.colorBuffer.getView(s);Hp([0,0,0],1,u);var h=this.transformBuffer.getMatrixView(s);this.setTransformMatrix(r,h,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()},"drawPickingRectangle")},{key:"drawNode",value:o(function(r,i,n){var a=this.simpleShapeOptions.get(n);if(this._isVisible(r,a)){var s=a.shapeProps,l=this._getVertTypeForShape(r,s.shape);if(l===void 0||a.isSimple&&!a.isSimple(r)){this.drawTexture(r,i,n);return}var u=this.instanceCount;if(this.vertTypeBuffer.getView(u)[0]=l,l===T3||l===Fb){var h=a.getBoundingBox(r),d=this._getCornerRadius(r,s.radius,h),f=this.cornerRadiusBuffer.getView(u);f[0]=d,f[1]=d,f[2]=d,f[3]=d,l===Fb&&(f[0]=0,f[2]=0)}var p=this.indexBuffer.getView(u);n1(i,p);var m=r.pstyle(s.color).value,g=r.pstyle(s.opacity).value,y=this.colorBuffer.getView(u);Hp(m,g,y);var v=this.lineWidthBuffer.getView(u);if(v[0]=0,v[1]=0,s.border){var x=r.pstyle("border-width").value;if(x>0){var b=r.pstyle("border-color").value,T=r.pstyle("border-opacity").value,w=this.borderColorBuffer.getView(u);Hp(b,T,w);var C=r.pstyle("border-position").value;if(C==="inside")v[0]=0,v[1]=-x;else if(C==="outside")v[0]=x,v[1]=0;else{var k=x/2;v[0]=k,v[1]=-k}}}var E=this.transformBuffer.getMatrixView(u);this.setTransformMatrix(r,E,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},"drawNode")},{key:"_getVertTypeForShape",value:o(function(r,i){var n=r.pstyle(i).value;switch(n){case"rectangle":return a1;case"ellipse":return $b;case"roundrectangle":case"round-rectangle":return T3;case"bottom-round-rectangle":return Fb;default:return}},"_getVertTypeForShape")},{key:"_getCornerRadius",value:o(function(r,i,n){var a=n.w,s=n.h;if(r.pstyle(i).value==="auto")return Hd(a,s);var l=r.pstyle(i).pfValue,u=a/2,h=s/2;return Math.min(l,h,u)},"_getCornerRadius")},{key:"drawEdgeArrow",value:o(function(r,i,n){if(r.visible()){var a=r._private.rscratch,s,l,u;if(n==="source"?(s=a.arrowStartX,l=a.arrowStartY,u=a.srcArrowAngle):(s=a.arrowEndX,l=a.arrowEndY,u=a.tgtArrowAngle),!(isNaN(s)||s==null||isNaN(l)||l==null||isNaN(u)||u==null)){var h=r.pstyle(n+"-arrow-shape").value;if(h!=="none"){var d=r.pstyle(n+"-arrow-color").value,f=r.pstyle("opacity").value,p=r.pstyle("line-opacity").value,m=f*p,g=r.pstyle("width").pfValue,y=r.pstyle("arrow-scale").value,v=this.r.getArrowWidth(g,y),x=this.instanceCount,b=this.transformBuffer.getMatrixView(x);B0e(b),M3(b,b,[s,l]),sP(b,b,[v,v]),F0e(b,b,u),this.vertTypeBuffer.getView(x)[0]=zO;var T=this.indexBuffer.getView(x);n1(i,T);var w=this.colorBuffer.getView(x);Hp(d,m,w),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},"drawEdgeArrow")},{key:"drawEdgeLine",value:o(function(r,i){if(r.visible()){var n=this._getEdgePoints(r);if(n){var a=r.pstyle("opacity").value,s=r.pstyle("line-opacity").value,l=r.pstyle("width").pfValue,u=r.pstyle("line-color").value,h=a*s;if(n.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),n.length==4){var d=this.instanceCount;this.vertTypeBuffer.getView(d)[0]=$0e;var f=this.indexBuffer.getView(d);n1(i,f);var p=this.colorBuffer.getView(d);Hp(u,h,p);var m=this.lineWidthBuffer.getView(d);m[0]=l;var g=this.pointAPointBBuffer.getView(d);g[0]=n[0],g[1]=n[1],g[2]=n[2],g[3]=n[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var y=0;y=this.maxInstances&&this.endBatch()}}}},"drawEdgeLine")},{key:"_isValidEdge",value:o(function(r){var i=r._private.rscratch;return!(i.badLine||i.allpts==null||isNaN(i.allpts[0]))},"_isValidEdge")},{key:"_getEdgePoints",value:o(function(r){var i=r._private.rscratch;if(this._isValidEdge(r)){var n=i.allpts;if(n.length==4)return n;var a=this._getNumSegments(r);return this._getCurveSegmentPoints(n,a)}},"_getEdgePoints")},{key:"_getNumSegments",value:o(function(r){var i=15;return Math.min(Math.max(i,5),this.maxInstances)},"_getNumSegments")},{key:"_getCurveSegmentPoints",value:o(function(r,i){if(r.length==4)return r;for(var n=Array((i+1)*2),a=0;a<=i;a++)if(a==0)n[0]=r[0],n[1]=r[1];else if(a==i)n[a*2]=r[r.length-2],n[a*2+1]=r[r.length-1];else{var s=a/i;this._setCurvePoint(r,s,n,a*2)}return n},"_getCurveSegmentPoints")},{key:"_setCurvePoint",value:o(function(r,i,n,a){if(r.length<=2)n[a]=r[0],n[a+1]=r[1];else{for(var s=Array(r.length-2),l=0;l0}},"isLayerVisible"),l=o(function(f){var p=f.pstyle("text-events").strValue==="yes";return p?U3.USE_BB:U3.IGNORE},"getTexPickingMode"),u=o(function(f){var p=f.position(),m=p.x,g=p.y,y=f.outerWidth(),v=f.outerHeight();return{w:y,h:v,x1:m-y/2,y1:g-v/2}},"getBBForSimpleShape");r.drawing.addAtlasCollection("node",{texRows:e.webglTexRowsNodes}),r.drawing.addAtlasCollection("label",{texRows:e.webglTexRows}),r.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:t.getStyleKey,getBoundingBox:t.getElementBox,drawElement:t.drawElement}),r.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:u,isSimple:iot,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),r.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:u,isVisible:s("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),r.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:u,isVisible:s("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),r.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:l,getKey:GO(t.getLabelKey,null),getBoundingBox:VO(t.getLabelBox,null),drawClipped:!0,drawElement:t.drawLabel,getRotation:n(null),getRotationPoint:t.getLabelRotationPoint,getRotationOffset:t.getLabelRotationOffset,isVisible:a("label")}),r.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:l,getKey:GO(t.getSourceLabelKey,"source"),getBoundingBox:VO(t.getSourceLabelBox,"source"),drawClipped:!0,drawElement:t.drawSourceLabel,getRotation:n("source"),getRotationPoint:t.getSourceLabelRotationPoint,getRotationOffset:t.getSourceLabelRotationOffset,isVisible:a("source-label")}),r.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:l,getKey:GO(t.getTargetLabelKey,"target"),getBoundingBox:VO(t.getTargetLabelBox,"target"),drawClipped:!0,drawElement:t.drawTargetLabel,getRotation:n("target"),getRotationPoint:t.getTargetLabelRotationPoint,getRotationOffset:t.getTargetLabelRotationOffset,isVisible:a("target-label")});var h=o2(function(){console.log("garbage collect flag set"),r.data.gc=!0},1e4);r.onUpdateEleCalcs(function(d,f){var p=!1;f&&f.length>0&&(p|=r.drawing.invalidate(f)),p&&h()}),wot(r)};o(kot,"getBGColor");o(wge,"getLabelLines");GO=o(function(t,r){return function(i){var n=t(i),a=wge(i,r);return a.length>1?a.map(function(s,l){return"".concat(n,"_").concat(l)}):n}},"getStyleKeysForLabel"),VO=o(function(t,r){return function(i,n){var a=t(i);if(typeof n=="string"){var s=n.indexOf("_");if(s>0){var l=Number(n.substring(s+1)),u=wge(i,r),h=a.h/u.length,d=h*l,f=a.y1+d;return{x1:a.x1,w:a.w,y1:f,h,yOffset:d}}}return a}},"getBoundingBoxForLabel");o(wot,"overrideCanvasRendererFunctions");o(Sot,"clearWebgl");o(Eot,"clearCanvas");o(Aot,"createPanZoomMatrix");o(Sge,"setContextTransform");o(_ot,"drawSelectionRectangle");o(Dot,"drawAxes");o(Rot,"drawAtlases");o(Lot,"getPickingIndexes");o(Mot,"findNearestElementsWebgl");o(WO,"drawEle");o(Ege,"renderWebgl");ef={};ef.drawPolygonPath=function(e,t,r,i,n,a){var s=i/2,l=n/2;e.beginPath&&e.beginPath(),e.moveTo(t+s*a[0],r+l*a[1]);for(var u=1;u0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(e.full)m.translate(-i.x1*h,-i.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(i.x1*h,i.y1*h);else{var y=t.pan(),v={x:y.x*h,y:y.y*h};h*=t.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}e.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=e.bg,m.rect(0,0,a,s),m.fill())}return p};o(Not,"b64ToBlob");o(W0e,"b64UriToB64");o(_ge,"output");f2.png=function(e){return _ge(e,this.bufferCanvasImage(e),"image/png")};f2.jpg=function(e){return _ge(e,this.bufferCanvasImage(e),"image/jpeg")};Dge={};Dge.nodeShapeImpl=function(e,t,r,i,n,a,s,l){switch(e){case"ellipse":return this.drawEllipsePath(t,r,i,n,a);case"polygon":return this.drawPolygonPath(t,r,i,n,a,s);case"round-polygon":return this.drawRoundPolygonPath(t,r,i,n,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,r,i,n,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,r,i,n,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,r,i,n,a,l);case"barrel":return this.drawBarrelPath(t,r,i,n,a)}};Iot=Rge,Fr=Rge.prototype;Fr.CANVAS_LAYERS=3;Fr.SELECT_BOX=0;Fr.DRAG=1;Fr.NODE=2;Fr.WEBGL=3;Fr.CANVAS_TYPES=["2d","2d","2d","webgl2"];Fr.BUFFER_COUNT=3;Fr.TEXTURE_BUFFER=0;Fr.MOTIONBLUR_BUFFER_NODE=1;Fr.MOTIONBLUR_BUFFER_DRAG=2;o(Rge,"CanvasRenderer");Fr.redrawHint=function(e,t){var r=this;switch(e){case"eles":r.data.canvasNeedsRedraw[Fr.NODE]=t;break;case"drag":r.data.canvasNeedsRedraw[Fr.DRAG]=t;break;case"select":r.data.canvasNeedsRedraw[Fr.SELECT_BOX]=t;break;case"gc":r.data.gc=!0;break}};Oot=typeof Path2D<"u";Fr.path2dEnabled=function(e){if(e===void 0)return this.pathsEnabled;this.pathsEnabled=!!e};Fr.usePaths=function(){return Oot&&this.pathsEnabled};Fr.setImgSmoothing=function(e,t){e.imageSmoothingEnabled!=null?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)};Fr.getImgSmoothing=function(e){return e.imageSmoothingEnabled!=null?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled};Fr.makeOffscreenCanvas=function(e,t){var r;if((typeof OffscreenCanvas>"u"?"undefined":Wn(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(e,t);else{var i=this.cy.window(),n=i.document;r=n.createElement("canvas"),r.width=e,r.height=t}return r};[vge,zc,eh,NP,a0,Jd,ns,kge,ef,f2,Dge].forEach(function(e){hr(Fr,e)});Pot=[{name:"null",impl:nge},{name:"base",impl:pge},{name:"canvas",impl:Iot}],Bot=[{type:"layout",extensions:lst},{type:"renderer",extensions:Pot}],Lge={},Mge={};o(Nge,"setExtension");o(Ige,"getExtension");o(Fot,"setModule");o($ot,"getModule");cP=o(function(){if(arguments.length===2)return Ige.apply(null,arguments);if(arguments.length===3)return Nge.apply(null,arguments);if(arguments.length===4)return $ot.apply(null,arguments);if(arguments.length===5)return Fot.apply(null,arguments);Yi("Invalid extension access syntax")},"extension");e2.prototype.extension=cP;Bot.forEach(function(e){e.extensions.forEach(function(t){Nge(e.type,t.name,t.impl)})});H3=o(function(){if(!(this instanceof H3))return new H3;this.length=0},"Stylesheet"),i0=H3.prototype;i0.instanceString=function(){return"stylesheet"};i0.selector=function(e){var t=this.length++;return this[t]={selector:e,properties:[]},this};i0.css=function(e,t){var r=this.length-1;if(sr(e))this[r].properties.push({name:e,value:t});else if(Xr(e))for(var i=e,n=Object.keys(i),a=0;a{"use strict";o((function(t,r){typeof p2=="object"&&typeof PP=="object"?PP.exports=r():typeof define=="function"&&define.amd?define([],r):typeof p2=="object"?p2.layoutBase=r():t.layoutBase=r()}),"webpackUniversalModuleDefinition")(p2,function(){return(function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return o(r,"__webpack_require__"),r.m=e,r.c=t,r.i=function(i){return i},r.d=function(i,n,a){r.o(i,n)||Object.defineProperty(i,n,{configurable:!1,enumerable:!0,get:a})},r.n=function(i){var n=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return r.d(n,"a",n),n},r.o=function(i,n){return Object.prototype.hasOwnProperty.call(i,n)},r.p="",r(r.s=26)})([(function(e,t,r){"use strict";function i(){}o(i,"LayoutConstants"),i.QUALITY=1,i.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,i.DEFAULT_INCREMENTAL=!1,i.DEFAULT_ANIMATION_ON_LAYOUT=!0,i.DEFAULT_ANIMATION_DURING_LAYOUT=!1,i.DEFAULT_ANIMATION_PERIOD=50,i.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,i.DEFAULT_GRAPH_MARGIN=15,i.NODE_DIMENSIONS_INCLUDE_LABELS=!1,i.SIMPLE_NODE_SIZE=40,i.SIMPLE_NODE_HALF_SIZE=i.SIMPLE_NODE_SIZE/2,i.EMPTY_COMPOUND_NODE_SIZE=40,i.MIN_EDGE_LENGTH=1,i.WORLD_BOUNDARY=1e6,i.INITIAL_WORLD_BOUNDARY=i.WORLD_BOUNDARY/1e3,i.WORLD_CENTER_X=1200,i.WORLD_CENTER_Y=900,e.exports=i}),(function(e,t,r){"use strict";var i=r(2),n=r(8),a=r(9);function s(u,h,d){i.call(this,d),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=d,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var d=this.getOtherEnd(u),f=h.getGraphManager().getRoot();;){if(d.getOwner()==h)return d;if(d.getOwner()==f)break;d=d.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=n.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},e.exports=s}),(function(e,t,r){"use strict";function i(n){this.vGraphObject=n}o(i,"LGraphObject"),e.exports=i}),(function(e,t,r){"use strict";var i=r(2),n=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(f,p,m,g){m==null&&g==null&&(g=p),i.call(this,g),f.graphManager!=null&&(f=f.graphManager),this.estimatedSize=n.MIN_VALUE,this.inclusionTreeDepth=n.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=f,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(i.prototype);for(var d in i)h[d]=i[d];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(f){this.rect.width=f},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(f){this.rect.height=f},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(f,p){this.rect.x=f.x,this.rect.y=f.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(f,p){this.rect.x=f-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(f,p){this.rect.x=f,this.rect.y=p},h.prototype.moveBy=function(f,p){this.rect.x+=f,this.rect.y+=p},h.prototype.getEdgeListToNode=function(f){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==f){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(f){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==f||y.source==f)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var f=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)f.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";f.add(m.source)}}),f},h.prototype.withChildren=function(){var f=new Set,p,m;if(f.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==n.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(f){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=f.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},e.exports=h}),(function(e,t,r){"use strict";function i(n,a){n==null&&a==null?(this.x=0,this.y=0):(this.x=n,this.y=a)}o(i,"PointD"),i.prototype.getX=function(){return this.x},i.prototype.getY=function(){return this.y},i.prototype.setX=function(n){this.x=n},i.prototype.setY=function(n){this.y=n},i.prototype.getDifference=function(n){return new DimensionD(this.x-n.x,this.y-n.y)},i.prototype.getCopy=function(){return new i(this.x,this.y)},i.prototype.translate=function(n){return this.x+=n.width,this.y+=n.height,this},e.exports=i}),(function(e,t,r){"use strict";var i=r(2),n=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),d=r(12),f=r(11);function p(g,y,v){i.call(this,v),this.estimatedSize=n.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(i.prototype);for(var m in i)p[m]=i[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,T=0;T-1&&k>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(C,1),x.target!=x.source&&x.target.edges.splice(k,1);var w=x.source.owner.getEdges().indexOf(x);if(w==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(w,1)}},p.prototype.updateLeftTop=function(){for(var g=n.MAX_VALUE,y=n.MAX_VALUE,v,x,b,T=this.getNodes(),w=T.length,C=0;Cv&&(g=v),y>x&&(y=x)}return g==n.MAX_VALUE?null:(T[0].getParent().paddingLeft!=null?b=T[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new d(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=n.MAX_VALUE,v=-n.MAX_VALUE,x=n.MAX_VALUE,b=-n.MAX_VALUE,T,w,C,k,E,A=this.nodes,N=A.length,P=0;PT&&(y=T),vC&&(x=C),bT&&(y=T),vC&&(x=C),b=this.nodes.length){var N=0;v.forEach(function(P){P.owner==g&&N++}),N==this.nodes.length&&(this.isConnected=!0)}},e.exports=p}),(function(e,t,r){"use strict";var i,n=r(1);function a(s){i=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,d){if(u==null&&h==null&&d==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{d=u,h=l,u=s;var f=h.getOwner(),p=d.getOwner();if(!(f!=null&&f.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(f==p)return u.isInterGraph=!1,f.add(u,h,d);if(u.isInterGraph=!0,u.source=h,u.target=d,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof i){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,d=u.length,f=0;f=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var d=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(d=1);var f=d*l[0],p=l[1]/d;l[0]f)return l[0]=u,l[1]=m,l[2]=d,l[3]=A,!1;if(hd)return l[0]=p,l[1]=h,l[2]=k,l[3]=f,!1;if(ud?(l[0]=y,l[1]=v,D=!0):(l[0]=g,l[1]=m,D=!0):R===L&&(u>d?(l[0]=p,l[1]=m,D=!0):(l[0]=x,l[1]=v,D=!0)),-M===L?d>u?(l[2]=E,l[3]=A,_=!0):(l[2]=k,l[3]=C,_=!0):M===L&&(d>u?(l[2]=w,l[3]=C,_=!0):(l[2]=N,l[3]=A,_=!0)),D&&_)return!1;if(u>d?h>f?(B=this.getCardinalDirection(R,L,4),O=this.getCardinalDirection(M,L,2)):(B=this.getCardinalDirection(-R,L,3),O=this.getCardinalDirection(-M,L,1)):h>f?(B=this.getCardinalDirection(-R,L,1),O=this.getCardinalDirection(-M,L,3)):(B=this.getCardinalDirection(R,L,2),O=this.getCardinalDirection(M,L,4)),!D)switch(B){case 1:G=m,$=u+-T/L,l[0]=$,l[1]=G;break;case 2:$=x,G=h+b*L,l[0]=$,l[1]=G;break;case 3:G=v,$=u+T/L,l[0]=$,l[1]=G;break;case 4:$=y,G=h+-b*L,l[0]=$,l[1]=G;break}if(!_)switch(O){case 1:V=C,F=d+-I/L,l[2]=F,l[3]=V;break;case 2:F=N,V=f+P*L,l[2]=F,l[3]=V;break;case 3:V=A,F=d+I/L,l[2]=F,l[3]=V;break;case 4:F=E,V=f+-P*L,l[2]=F,l[3]=V;break}}return!1},n.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},n.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,d=a.y,f=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,T=void 0,w=void 0,C=void 0,k=void 0,E=void 0,A=void 0,N=void 0;return T=p-d,C=h-f,E=f*d-h*p,w=v-g,k=m-y,A=y*g-m*v,N=T*k-w*C,N===0?null:(x=(C*A-k*E)/N,b=(w*E-T*A)/N,new i(x,b))},n.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l0?1:n<0?-1:0},i.floor=function(n){return n<0?Math.ceil(n):Math.floor(n)},i.ceil=function(n){return n<0?Math.floor(n):Math.ceil(n)},e.exports=i}),(function(e,t,r){"use strict";function i(){}o(i,"Integer"),i.MAX_VALUE=2147483647,i.MIN_VALUE=-2147483648,e.exports=i}),(function(e,t,r){"use strict";var i=(function(){function h(d,f){for(var p=0;p"u"?"undefined":i(a);return a==null||s!="object"&&s!="function"},e.exports=n}),(function(e,t,r){"use strict";function i(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(T.push(C[0]);T.length>0&&g;){var k=T[0];T.splice(0,1),b.add(k);for(var E=k.getEdges(),x=0;x-1&&C.splice(I,1)}b=new Set,w=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var N=w.getNeighborsList();N.forEach(function(D){if(y.indexOf(D)<0){var _=v.get(D),R=_-1;R==1&&k.push(D),v.set(D,R)}})}y=y.concat(k),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},e.exports=p}),(function(e,t,r){"use strict";function i(){}o(i,"RandomSeed"),i.seed=1,i.x=0,i.nextDouble=function(){return i.x=Math.sin(i.seed++)*1e4,i.x-Math.floor(i.x)},e.exports=i}),(function(e,t,r){"use strict";var i=r(4);function n(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(n,"Transform"),n.prototype.getWorldOrgX=function(){return this.lworldOrgX},n.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},n.prototype.getWorldOrgY=function(){return this.lworldOrgY},n.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},n.prototype.getWorldExtX=function(){return this.lworldExtX},n.prototype.setWorldExtX=function(a){this.lworldExtX=a},n.prototype.getWorldExtY=function(){return this.lworldExtY},n.prototype.setWorldExtY=function(a){this.lworldExtY=a},n.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},n.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},n.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},n.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},n.prototype.getDeviceExtX=function(){return this.ldeviceExtX},n.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},n.prototype.getDeviceExtY=function(){return this.ldeviceExtY},n.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},n.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},n.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},n.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},n.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},n.prototype.inverseTransformPoint=function(a){var s=new i(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},e.exports=n}),(function(e,t,r){"use strict";function i(f){if(Array.isArray(f)){for(var p=0,m=Array(f.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(f-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(f>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(f-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var f=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&f&&this.updateGrid(),b=new Set,m=0;mT||b>T)&&(f.gravitationForceX=-this.gravityConstant*y,f.gravitationForceY=-this.gravityConstant*v)):(T=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>T||b>T)&&(f.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,f.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var f,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),f=this.totalDisplacement=x.length||T>=x[0].length)){for(var w=0;wh},"_defaultCompareFunction")}]),l})();e.exports=s}),(function(e,t,r){"use strict";var i=(function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,f=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;n(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=d,this.gap_penalty=f,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},n.emit=function(a,s){for(var l=0;l{"use strict";o((function(t,r){typeof m2=="object"&&typeof FP=="object"?FP.exports=r(BP()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof m2=="object"?m2.coseBase=r(BP()):t.coseBase=r(t.layoutBase)}),"webpackUniversalModuleDefinition")(m2,function(e){return(function(t){var r={};function i(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return t[n].call(a.exports,a,a.exports,i),a.l=!0,a.exports}return o(i,"__webpack_require__"),i.m=t,i.c=r,i.i=function(n){return n},i.d=function(n,a,s){i.o(n,a)||Object.defineProperty(n,a,{configurable:!1,enumerable:!0,get:s})},i.n=function(n){var a=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return i.d(a,"a",a),a},i.o=function(n,a){return Object.prototype.hasOwnProperty.call(n,a)},i.p="",i(i.s=7)})([(function(t,r){t.exports=e}),(function(t,r,i){"use strict";var n=i(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in n)a[s]=n[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=n.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,t.exports=a}),(function(t,r,i){"use strict";var n=i(0).FDLayoutEdge;function a(l,u,h){n.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(n.prototype);for(var s in n)a[s]=n[s];t.exports=a}),(function(t,r,i){"use strict";var n=i(0).LGraph;function a(l,u,h){n.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(n.prototype);for(var s in n)a[s]=n[s];t.exports=a}),(function(t,r,i){"use strict";var n=i(0).LGraphManager;function a(l){n.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(n.prototype);for(var s in n)a[s]=n[s];t.exports=a}),(function(t,r,i){"use strict";var n=i(0).FDLayoutNode,a=i(0).IMath;function s(u,h,d,f){n.call(this,u,h,d,f)}o(s,"CoSENode"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),u.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(u,h){for(var d=this.getChild().getNodes(),f,p=0;p0)this.positionNodesRadially(C);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(A){return k.has(A)});this.graphManager.setAllNodesToApplyGravitation(E),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},T.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var C=new Set(this.getAllNodes()),k=this.nodesWithGravity.filter(function(N){return C.has(N)});this.graphManager.setAllNodesToApplyGravitation(k),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var E=!this.isTreeGrowing&&!this.isGrowthFinished,A=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(E,A),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},T.prototype.getPositionsData=function(){for(var C=this.graphManager.getAllNodes(),k={},E=0;E1){var D;for(D=0;DA&&(A=Math.floor(I.y)),P=Math.floor(I.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(f.WORLD_CENTER_X-I.x/2,f.WORLD_CENTER_Y-I.y/2))},T.radialLayout=function(C,k,E){var A=Math.max(this.maxDiagonalInTree(C),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(k,null,0,359,0,A);var N=x.calculateBounds(C),P=new b;P.setDeviceOrgX(N.getMinX()),P.setDeviceOrgY(N.getMinY()),P.setWorldOrgX(E.x),P.setWorldOrgY(E.y);for(var I=0;I1;){var H=V[0];V.splice(0,1);var j=B.indexOf(H);j>=0&&B.splice(j,1),G--,O--}k!=null?F=(B.indexOf(V[0])+1)%G:F=0;for(var U=Math.abs(A-E)/O,Q=F;$!=O;Q=++Q%G){var Y=B[Q].getOtherEnd(C);if(Y!=k){var ae=(E+$*U)%360,J=(ae+U)%360;T.branchRadialLayout(Y,C,ae,J,N+P,P),$++}}},T.maxDiagonalInTree=function(C){for(var k=y.MIN_VALUE,E=0;Ek&&(k=N)}return k},T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},T.prototype.groupZeroDegreeMembers=function(){var C=this,k={};this.memberGroups={},this.idToDummyNode={};for(var E=[],A=this.graphManager.getAllNodes(),N=0;N"u"&&(k[D]=[]),k[D]=k[D].concat(P)}Object.keys(k).forEach(function(_){if(k[_].length>1){var R="DummyCompound_"+_;C.memberGroups[R]=k[_];var M=k[_][0].getParent(),L=new l(C.graphManager);L.id=R,L.paddingLeft=M.paddingLeft||0,L.paddingRight=M.paddingRight||0,L.paddingBottom=M.paddingBottom||0,L.paddingTop=M.paddingTop||0,C.idToDummyNode[R]=L;var B=C.getGraphManager().add(C.newGraph(),L),O=M.getChild();O.add(L);for(var $=0;$=0;C--){var k=this.compoundOrder[C],E=k.id,A=k.paddingLeft,N=k.paddingTop;this.adjustLocations(this.tiledMemberPack[E],k.rect.x,k.rect.y,A,N)}},T.prototype.repopulateZeroDegreeMembers=function(){var C=this,k=this.tiledZeroDegreePack;Object.keys(k).forEach(function(E){var A=C.idToDummyNode[E],N=A.paddingLeft,P=A.paddingTop;C.adjustLocations(k[E],A.rect.x,A.rect.y,N,P)})},T.prototype.getToBeTiled=function(C){var k=C.id;if(this.toBeTiled[k]!=null)return this.toBeTiled[k];var E=C.getChild();if(E==null)return this.toBeTiled[k]=!1,!1;for(var A=E.getNodes(),N=0;N0)return this.toBeTiled[k]=!1,!1;if(P.getChild()==null){this.toBeTiled[P.id]=!1;continue}if(!this.getToBeTiled(P))return this.toBeTiled[k]=!1,!1}return this.toBeTiled[k]=!0,!0},T.prototype.getNodeDegree=function(C){for(var k=C.id,E=C.getEdges(),A=0,N=0;N_&&(_=M.rect.height)}E+=_+C.verticalPadding}},T.prototype.tileCompoundMembers=function(C,k){var E=this;this.tiledMemberPack=[],Object.keys(C).forEach(function(A){var N=k[A];E.tiledMemberPack[A]=E.tileNodes(C[A],N.paddingLeft+N.paddingRight),N.rect.width=E.tiledMemberPack[A].width,N.rect.height=E.tiledMemberPack[A].height})},T.prototype.tileNodes=function(C,k){var E=h.TILING_PADDING_VERTICAL,A=h.TILING_PADDING_HORIZONTAL,N={rows:[],rowWidth:[],rowHeight:[],width:0,height:k,verticalPadding:E,horizontalPadding:A};C.sort(function(D,_){return D.rect.width*D.rect.height>_.rect.width*_.rect.height?-1:D.rect.width*D.rect.height<_.rect.width*_.rect.height?1:0});for(var P=0;P0&&(I+=C.horizontalPadding),C.rowWidth[E]=I,C.width0&&(D+=C.verticalPadding);var _=0;D>C.rowHeight[E]&&(_=C.rowHeight[E],C.rowHeight[E]=D,_=C.rowHeight[E]-_),C.height+=_,C.rows[E].push(k)},T.prototype.getShortestRowIndex=function(C){for(var k=-1,E=Number.MAX_VALUE,A=0;AE&&(k=A,E=C.rowWidth[A]);return k},T.prototype.canAddHorizontal=function(C,k,E){var A=this.getShortestRowIndex(C);if(A<0)return!0;var N=C.rowWidth[A];if(N+C.horizontalPadding+k<=C.width)return!0;var P=0;C.rowHeight[A]0&&(P=E+C.verticalPadding-C.rowHeight[A]);var I;C.width-N>=k+C.horizontalPadding?I=(C.height+P)/(N+k+C.horizontalPadding):I=(C.height+P)/C.width,P=E+C.verticalPadding;var D;return C.widthP&&k!=E){A.splice(-1,1),C.rows[E].push(N),C.rowWidth[k]=C.rowWidth[k]-P,C.rowWidth[E]=C.rowWidth[E]+P,C.width=C.rowWidth[instance.getLongestRowIndex(C)];for(var I=Number.MIN_VALUE,D=0;DI&&(I=A[D].height);k>0&&(I+=C.verticalPadding);var _=C.rowHeight[k]+C.rowHeight[E];C.rowHeight[k]=I,C.rowHeight[E]0)for(var O=N;O<=P;O++)B[0]+=this.grid[O][I-1].length+this.grid[O][I].length-1;if(P0)for(var O=I;O<=D;O++)B[3]+=this.grid[N-1][O].length+this.grid[N][O].length-1;for(var $=y.MAX_VALUE,G,F,V=0;V{"use strict";o((function(t,r){typeof g2=="object"&&typeof zP=="object"?zP.exports=r($P()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof g2=="object"?g2.cytoscapeCoseBilkent=r($P()):t.cytoscapeCoseBilkent=r(t.coseBase)}),"webpackUniversalModuleDefinition")(g2,function(e){return(function(t){var r={};function i(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return t[n].call(a.exports,a,a.exports,i),a.l=!0,a.exports}return o(i,"__webpack_require__"),i.m=t,i.c=r,i.i=function(n){return n},i.d=function(n,a,s){i.o(n,a)||Object.defineProperty(n,a,{configurable:!1,enumerable:!0,get:s})},i.n=function(n){var a=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return i.d(a,"a",a),a},i.o=function(n,a){return Object.prototype.hasOwnProperty.call(n,a)},i.p="",i(i.s=1)})([(function(t,r){t.exports=e}),(function(t,r,i){"use strict";var n=i(0).layoutBase.LayoutConstants,a=i(0).layoutBase.FDLayoutConstants,s=i(0).CoSEConstants,l=i(0).CoSELayout,u=i(0).CoSENode,h=i(0).layoutBase.PointD,d=i(0).layoutBase.DimensionD,f={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var T in v)b[T]=v[T];for(var T in x)b[T]=x[T];return b}o(p,"extend");function m(v){this.options=p(f,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?n.QUALITY=0:x.quality=="proof"?n.QUALITY=2:n.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=n.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=n.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=n.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,T=this.idToLNode={},w=this.layout=new l,C=this;C.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var k=w.newGraphManager();this.gm=k;var E=this.options.eles.nodes(),A=this.options.eles.edges();this.root=k.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(E),w);for(var N=0;N0){var D;D=b.getGraphManager().add(b.newGraph(),E),this.processChildrenList(D,k,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),t.exports=y})])})});function Got(e,t){e.forEach(r=>{let i={id:r.id,labelText:r.label,height:r.height,width:r.width,padding:r.padding??0};Object.keys(r).forEach(n=>{["id","label","height","width","padding","x","y"].includes(n)||(i[n]=r[n])}),t.add({group:"nodes",data:i,position:{x:r.x??0,y:r.y??0}})})}function Vot(e,t){e.forEach(r=>{let i={id:r.id,source:r.start,target:r.end};Object.keys(r).forEach(n=>{["id","start","end"].includes(n)||(i[n]=r[n])}),t.add({group:"edges",data:i})})}function Bge(e){return new Promise(t=>{let r=Je("body").append("div").attr("id","cy").attr("style","display:none"),i=Ko({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});r.remove(),Got(e.nodes,i),Vot(e.edges,i),i.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}});let n={name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1};i.layout(n).run(),i.ready(a=>{Z.info("Cytoscape ready",a),t(i)})})}function Fge(e){return e.nodes().map(t=>{let r=t.data(),i=t.position(),n={id:r.id,x:i.x,y:i.y};return Object.keys(r).forEach(a=>{a!=="id"&&(n[a]=r[a])}),n})}function $ge(e){return e.edges().map(t=>{let r=t.data(),i=t._private.rscratch,n={id:r.id,source:r.source,target:r.target,startX:i.startX,startY:i.startY,midX:i.midX,midY:i.midY,endX:i.endX,endY:i.endY};return Object.keys(r).forEach(a=>{["id","source","target"].includes(a)||(n[a]=r[a])}),n})}var Pge,zge=z(()=>{"use strict";OP();Pge=ys(Oge(),1);Rr();St();Ko.use(Pge.default);o(Got,"addNodes");o(Vot,"addEdges");o(Bge,"createCytoscapeInstance");o(Fge,"extractPositionedNodes");o($ge,"extractPositionedEdges")});async function Gge(e,t){Z.debug("Starting cose-bilkent layout algorithm");try{Wot(e);let r=await Bge(e),i=Fge(r),n=$ge(r);return Z.debug(`Layout completed: ${i.length} nodes, ${n.length} edges`),{nodes:i,edges:n}}catch(r){throw Z.error("Error in cose-bilkent layout algorithm:",r),r}}function Wot(e){if(!e)throw new Error("Layout data is required");if(!e.config)throw new Error("Configuration is required in layout data");if(!e.rootNode)throw new Error("Root node is required");if(!e.nodes||!Array.isArray(e.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(e.edges))throw new Error("Edges array is required in layout data");return!0}var Vge=z(()=>{"use strict";St();zge();o(Gge,"executeCoseBilkentLayout");o(Wot,"validateLayoutData")});var Wge,qge=z(()=>{"use strict";Vge();Wge=o(async(e,t,{insertCluster:r,insertEdge:i,insertEdgeLabel:n,insertMarkers:a,insertNode:s,log:l,positionEdgeLabel:u},{algorithm:h})=>{let d={},f={},p=t.select("g");a(p,e.markers,e.type,e.diagramId);let m=p.insert("g").attr("class","subgraphs"),g=p.insert("g").attr("class","edgePaths"),y=p.insert("g").attr("class","edgeLabels"),v=p.insert("g").attr("class","nodes");l.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(e.nodes.map(async T=>{if(T.isGroup){let w={...T};f[T.id]=w,d[T.id]=w,await r(m,T)}else{let w={...T};d[T.id]=w;let C=await s(v,T,{config:e.config,dir:e.direction||"TB"}),k=C.node().getBBox();w.width=k.width,w.height=k.height,w.domId=C,l.debug(`Node ${T.id} dimensions: ${k.width}x${k.height}`)}})),l.debug("Running cose-bilkent layout algorithm");let x={...e,nodes:e.nodes.map(T=>{let w=d[T.id];return{...T,width:w.width,height:w.height}})},b=await Gge(x,e.config);l.debug("Positioning nodes based on layout results"),b.nodes.forEach(T=>{let w=d[T.id];w?.domId&&(w.domId.attr("transform",`translate(${T.x}, ${T.y})`),w.x=T.x,w.y=T.y,l.debug(`Positioned node ${w.id} at center (${T.x}, ${T.y})`))}),b.edges.forEach(T=>{let w=e.edges.find(C=>C.id===T.id);w&&(w.points=[{x:T.startX,y:T.startY},{x:T.midX,y:T.midY},{x:T.endX,y:T.endY}])}),l.debug("Inserting and positioning edges"),await Promise.all(e.edges.map(async T=>{let w=await n(y,T),C=d[T.start??""],k=d[T.end??""];if(C&&k){let E=b.edges.find(A=>A.id===T.id);if(E){l.debug("APA01 positionedEdge",E);let A={...T},N=i(g,A,f,e.type,C,k,e.diagramId);u(A,N)}else{let A={...T,points:[{x:C.x||0,y:C.y||0},{x:k.x||0,y:k.y||0}]},N=i(g,A,f,e.type,C,k,e.diagramId);u(A,N)}}})),l.debug("Cose-bilkent rendering completed")},"render")});var Uge={};xr(Uge,{render:()=>qot});var qot,Hge=z(()=>{"use strict";qge();qot=Wge});var y2,GP,Uot,Zo,Gc,tf=z(()=>{"use strict";Hae();St();y2={},GP=o(e=>{for(let t of e)y2[t.name]=t},"registerLayoutLoaders"),Uot=o(()=>{GP([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>(mfe(),pfe)),"loader")},{name:"cose-bilkent",loader:o(async()=>await Promise.resolve().then(()=>(Hge(),Uge)),"loader")}])},"registerDefaultLayoutLoaders");Uot();Zo=o(async(e,t)=>{if(!(e.layoutAlgorithm in y2))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(let d of e.nodes){let f=d.domId||d.id;d.domId=`${e.diagramId}-${f}`}let r=y2[e.layoutAlgorithm],i=await r.loader(),{theme:n,themeVariables:a}=e.config,{useGradient:s,gradientStart:l,gradientStop:u}=a,h=t.attr("id");if(t.append("defs").append("filter").attr("id",`${h}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${n?.includes("dark")?"#FFFFFF":"#000000"}`),t.append("defs").append("filter").attr("id",`${h}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${n?.includes("dark")?"#FFFFFF":"#000000"}`),s){let d=t.append("linearGradient").attr("id",t.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");d.append("svg:stop").attr("offset","0%").attr("stop-color",l).attr("stop-opacity",1),d.append("svg:stop").attr("offset","100%").attr("stop-color",u).attr("stop-opacity",1)}return i.render(e,t,Uae,{algorithm:r.algorithm})},"render"),Gc=o((e="",{fallback:t="dagre"}={})=>{if(e in y2)return e;if(t in y2)return Z.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm")});var $s,Hot,Yot,rf=z(()=>{"use strict";Di();St();$s=o((e,t,r,i)=>{e.attr("class",r);let{width:n,height:a,x:s,y:l}=Hot(e,t);Br(e,a,n,i);let u=Yot(s,l,n,a,t);e.attr("viewBox",u),Z.debug(`viewBox configured: ${u} with padding: ${t}`)},"setupViewPortForSVG"),Hot=o((e,t)=>{let r=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+t*2,height:r.height+t*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),Yot=o((e,t,r,i,n)=>`${e-n} ${t-n} ${r} ${i}`,"createViewBox")});var jot,Xot,Yge,jge=z(()=>{"use strict";Ut();St();Lp();tf();rf();Xt();jot=o(function(e,t){return t.db.getClasses()},"getClasses"),Xot=o(async function(e,t,r,i){Z.info("REF0:"),Z.info("Drawing state diagram (v2)",t);let{securityLevel:n,flowchart:a,layout:s}=ge();i.db.setDiagramId(t),Z.debug("Before getData: ");let l=i.db.getData();Z.debug("Data: ",l);let u=Fo(t,n),h=i.db.getDirection();l.type=i.type,l.layoutAlgorithm=Gc(s),l.layoutAlgorithm==="dagre"&&s==="elk"&&Z.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),l.direction=h,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["point","circle","cross"],l.diagramId=t,Z.debug("REF1:",l),await Zo(l,u);let d=l.config.flowchart?.diagramPadding??8;Zt.insertTitle(u,"flowchartTitleText",a?.titleTopMargin||0,i.db.getDiagramTitle()),$s(u,d,"flowchart",a?.useMaxWidth||!1)},"draw"),Yge={getClasses:jot,draw:Xot}});var VP,WP,Xge=z(()=>{"use strict";VP=(function(){var e=o(function(zt,Mt,qt,Qt){for(qt=qt||{},Qt=zt.length;Qt--;qt[zt[Qt]]=Mt);return qt},"o"),t=[1,4],r=[1,3],i=[1,5],n=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],d=[1,23],f=[1,25],p=[1,26],m=[1,27],g=[1,50],y=[1,49],v=[1,29],x=[1,30],b=[1,31],T=[1,32],w=[1,33],C=[1,45],k=[1,47],E=[1,43],A=[1,48],N=[1,44],P=[1,51],I=[1,46],D=[1,52],_=[1,53],R=[1,34],M=[1,35],L=[1,36],B=[1,37],O=[1,38],$=[1,58],G=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],F=[1,62],V=[1,61],H=[1,63],j=[8,9,11,75,77,78],U=[1,79],Q=[1,92],Y=[1,97],ae=[1,96],J=[1,93],te=[1,89],re=[1,95],ee=[1,91],Te=[1,98],ue=[1,94],De=[1,99],Ie=[1,90],Ee=[8,9,10,11,40,75,77,78],we=[8,9,10,11,40,46,75,77,78],Me=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],$e=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],de=[44,60,89,102,105,106,109,111,114,115,116],rt=[1,122],ke=[1,123],Fe=[1,125],He=[1,124],at=[44,60,62,74,89,102,105,106,109,111,114,115,116],qe=[1,134],Ue=[1,148],ye=[1,149],ve=[1,150],ie=[1,151],fe=[1,136],W=[1,138],ce=[1,142],K=[1,143],Re=[1,144],xe=[1,145],Oe=[1,146],be=[1,147],Be=[1,152],Ae=[1,153],Ve=[1,132],Pe=[1,133],Ye=[1,140],le=[1,135],st=[1,139],me=[1,137],ot=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],kt=[1,155],Gt=[1,157],Tt=[8,9,11],Et=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],yt=[1,177],oe=[1,173],ht=[1,174],gt=[1,178],et=[1,175],pe=[1,176],Qe=[77,116,119],nt=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],dt=[10,106],Ft=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],Rt=[1,248],$t=[1,246],lr=[1,250],pt=[1,244],Se=[1,245],it=[1,247],xt=[1,249],rr=[1,251],_r=[1,269],Ur=[8,9,11,106],Dr=[8,9,10,11,60,84,105,106,109,110,111,112],Xi={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,direction_td:125,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"direction_lr",125:"direction_td"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(Mt,qt,Qt,_t,oi,Ce,Zs){var _e=Ce.length-1;switch(oi){case 2:this.$=[];break;case 3:(!Array.isArray(Ce[_e])||Ce[_e].length>0)&&Ce[_e-1].push(Ce[_e]),this.$=Ce[_e-1];break;case 4:case 183:this.$=Ce[_e];break;case 11:_t.setDirection("TB"),this.$="TB";break;case 12:_t.setDirection(Ce[_e-1]),this.$=Ce[_e-1];break;case 27:this.$=Ce[_e-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=_t.addSubGraph(Ce[_e-6],Ce[_e-1],Ce[_e-4]);break;case 34:this.$=_t.addSubGraph(Ce[_e-3],Ce[_e-1],Ce[_e-3]);break;case 35:this.$=_t.addSubGraph(void 0,Ce[_e-1],void 0);break;case 37:this.$=Ce[_e].trim(),_t.setAccTitle(this.$);break;case 38:case 39:this.$=Ce[_e].trim(),_t.setAccDescription(this.$);break;case 43:this.$=Ce[_e-1]+Ce[_e];break;case 44:this.$=Ce[_e];break;case 45:_t.addVertex(Ce[_e-1][Ce[_e-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,Ce[_e]),_t.addLink(Ce[_e-3].stmt,Ce[_e-1],Ce[_e-2]),this.$={stmt:Ce[_e-1],nodes:Ce[_e-1].concat(Ce[_e-3].nodes)};break;case 46:_t.addLink(Ce[_e-2].stmt,Ce[_e],Ce[_e-1]),this.$={stmt:Ce[_e],nodes:Ce[_e].concat(Ce[_e-2].nodes)};break;case 47:_t.addLink(Ce[_e-3].stmt,Ce[_e-1],Ce[_e-2]),this.$={stmt:Ce[_e-1],nodes:Ce[_e-1].concat(Ce[_e-3].nodes)};break;case 48:this.$={stmt:Ce[_e-1],nodes:Ce[_e-1]};break;case 49:_t.addVertex(Ce[_e-1][Ce[_e-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,Ce[_e]),this.$={stmt:Ce[_e-1],nodes:Ce[_e-1],shapeData:Ce[_e]};break;case 50:this.$={stmt:Ce[_e],nodes:Ce[_e]};break;case 51:this.$=[Ce[_e]];break;case 52:_t.addVertex(Ce[_e-5][Ce[_e-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,Ce[_e-4]),this.$=Ce[_e-5].concat(Ce[_e]);break;case 53:this.$=Ce[_e-4].concat(Ce[_e]);break;case 54:this.$=Ce[_e];break;case 55:this.$=Ce[_e-2],_t.setClass(Ce[_e-2],Ce[_e]);break;case 56:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"square");break;case 57:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"doublecircle");break;case 58:this.$=Ce[_e-5],_t.addVertex(Ce[_e-5],Ce[_e-2],"circle");break;case 59:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"ellipse");break;case 60:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"stadium");break;case 61:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"subroutine");break;case 62:this.$=Ce[_e-7],_t.addVertex(Ce[_e-7],Ce[_e-1],"rect",void 0,void 0,void 0,Object.fromEntries([[Ce[_e-5],Ce[_e-3]]]));break;case 63:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"cylinder");break;case 64:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"round");break;case 65:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"diamond");break;case 66:this.$=Ce[_e-5],_t.addVertex(Ce[_e-5],Ce[_e-2],"hexagon");break;case 67:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"odd");break;case 68:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"trapezoid");break;case 69:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"inv_trapezoid");break;case 70:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"lean_right");break;case 71:this.$=Ce[_e-3],_t.addVertex(Ce[_e-3],Ce[_e-1],"lean_left");break;case 72:this.$=Ce[_e],_t.addVertex(Ce[_e]);break;case 73:Ce[_e-1].text=Ce[_e],this.$=Ce[_e-1];break;case 74:case 75:Ce[_e-2].text=Ce[_e-1],this.$=Ce[_e-2];break;case 76:this.$=Ce[_e];break;case 77:var an=_t.destructLink(Ce[_e],Ce[_e-2]);this.$={type:an.type,stroke:an.stroke,length:an.length,text:Ce[_e-1]};break;case 78:var an=_t.destructLink(Ce[_e],Ce[_e-2]);this.$={type:an.type,stroke:an.stroke,length:an.length,text:Ce[_e-1],id:Ce[_e-3]};break;case 79:this.$={text:Ce[_e],type:"text"};break;case 80:this.$={text:Ce[_e-1].text+""+Ce[_e],type:Ce[_e-1].type};break;case 81:this.$={text:Ce[_e],type:"string"};break;case 82:this.$={text:Ce[_e],type:"markdown"};break;case 83:var an=_t.destructLink(Ce[_e]);this.$={type:an.type,stroke:an.stroke,length:an.length};break;case 84:var an=_t.destructLink(Ce[_e]);this.$={type:an.type,stroke:an.stroke,length:an.length,id:Ce[_e-1]};break;case 85:this.$=Ce[_e-1];break;case 86:this.$={text:Ce[_e],type:"text"};break;case 87:this.$={text:Ce[_e-1].text+""+Ce[_e],type:Ce[_e-1].type};break;case 88:this.$={text:Ce[_e],type:"string"};break;case 89:case 104:this.$={text:Ce[_e],type:"markdown"};break;case 101:this.$={text:Ce[_e],type:"text"};break;case 102:this.$={text:Ce[_e-1].text+""+Ce[_e],type:Ce[_e-1].type};break;case 103:this.$={text:Ce[_e],type:"text"};break;case 105:this.$=Ce[_e-4],_t.addClass(Ce[_e-2],Ce[_e]);break;case 106:this.$=Ce[_e-4],_t.setClass(Ce[_e-2],Ce[_e]);break;case 107:case 115:this.$=Ce[_e-1],_t.setClickEvent(Ce[_e-1],Ce[_e]);break;case 108:case 116:this.$=Ce[_e-3],_t.setClickEvent(Ce[_e-3],Ce[_e-2]),_t.setTooltip(Ce[_e-3],Ce[_e]);break;case 109:this.$=Ce[_e-2],_t.setClickEvent(Ce[_e-2],Ce[_e-1],Ce[_e]);break;case 110:this.$=Ce[_e-4],_t.setClickEvent(Ce[_e-4],Ce[_e-3],Ce[_e-2]),_t.setTooltip(Ce[_e-4],Ce[_e]);break;case 111:this.$=Ce[_e-2],_t.setLink(Ce[_e-2],Ce[_e]);break;case 112:this.$=Ce[_e-4],_t.setLink(Ce[_e-4],Ce[_e-2]),_t.setTooltip(Ce[_e-4],Ce[_e]);break;case 113:this.$=Ce[_e-4],_t.setLink(Ce[_e-4],Ce[_e-2],Ce[_e]);break;case 114:this.$=Ce[_e-6],_t.setLink(Ce[_e-6],Ce[_e-4],Ce[_e]),_t.setTooltip(Ce[_e-6],Ce[_e-2]);break;case 117:this.$=Ce[_e-1],_t.setLink(Ce[_e-1],Ce[_e]);break;case 118:this.$=Ce[_e-3],_t.setLink(Ce[_e-3],Ce[_e-2]),_t.setTooltip(Ce[_e-3],Ce[_e]);break;case 119:this.$=Ce[_e-3],_t.setLink(Ce[_e-3],Ce[_e-2],Ce[_e]);break;case 120:this.$=Ce[_e-5],_t.setLink(Ce[_e-5],Ce[_e-4],Ce[_e]),_t.setTooltip(Ce[_e-5],Ce[_e-2]);break;case 121:this.$=Ce[_e-4],_t.addVertex(Ce[_e-2],void 0,void 0,Ce[_e]);break;case 122:this.$=Ce[_e-4],_t.updateLink([Ce[_e-2]],Ce[_e]);break;case 123:this.$=Ce[_e-4],_t.updateLink(Ce[_e-2],Ce[_e]);break;case 124:this.$=Ce[_e-8],_t.updateLinkInterpolate([Ce[_e-6]],Ce[_e-2]),_t.updateLink([Ce[_e-6]],Ce[_e]);break;case 125:this.$=Ce[_e-8],_t.updateLinkInterpolate(Ce[_e-6],Ce[_e-2]),_t.updateLink(Ce[_e-6],Ce[_e]);break;case 126:this.$=Ce[_e-6],_t.updateLinkInterpolate([Ce[_e-4]],Ce[_e]);break;case 127:this.$=Ce[_e-6],_t.updateLinkInterpolate(Ce[_e-4],Ce[_e]);break;case 128:case 130:this.$=[Ce[_e]];break;case 129:case 131:Ce[_e-2].push(Ce[_e]),this.$=Ce[_e-2];break;case 133:this.$=Ce[_e-1]+Ce[_e];break;case 181:this.$=Ce[_e];break;case 182:this.$=Ce[_e-1]+""+Ce[_e];break;case 184:this.$=Ce[_e-1]+""+Ce[_e];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"};break;case 189:this.$={stmt:"dir",value:"TD"};break}},"anonymous"),table:[{3:1,4:2,9:t,10:r,12:i},{1:[3]},e(n,a,{5:6}),{4:7,9:t,10:r,12:i},{4:8,9:t,10:r,12:i},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:d,33:24,34:f,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:w,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_,121:R,122:M,123:L,124:B,125:O},e(n,[2,9]),e(n,[2,10]),e(n,[2,11]),{8:[1,55],9:[1,56],10:$,15:54,18:57},e(G,[2,3]),e(G,[2,4]),e(G,[2,5]),e(G,[2,6]),e(G,[2,7]),e(G,[2,8]),{8:F,9:V,11:H,21:59,41:60,72:64,75:[1,65],77:[1,67],78:[1,66]},{8:F,9:V,11:H,21:68},{8:F,9:V,11:H,21:69},{8:F,9:V,11:H,21:70},{8:F,9:V,11:H,21:71},{8:F,9:V,11:H,21:72},{8:F,9:V,10:[1,73],11:H,21:74},e(G,[2,36]),{35:[1,75]},{37:[1,76]},e(G,[2,39]),e(j,[2,50],{18:77,39:78,10:$,40:U}),{10:[1,80]},{10:[1,81]},{10:[1,82]},{10:[1,83]},{14:Q,44:Y,60:ae,80:[1,87],89:J,95:[1,84],97:[1,85],101:86,105:te,106:re,109:ee,111:Te,114:ue,115:De,116:Ie,120:88},e(G,[2,185]),e(G,[2,186]),e(G,[2,187]),e(G,[2,188]),e(G,[2,189]),e(Ee,[2,51]),e(Ee,[2,54],{46:[1,100]}),e(we,[2,72],{113:113,29:[1,101],44:g,48:[1,102],50:[1,103],52:[1,104],54:[1,105],56:[1,106],58:[1,107],60:y,63:[1,108],65:[1,109],67:[1,110],68:[1,111],70:[1,112],89:C,102:k,105:E,106:A,109:N,111:P,114:I,115:D,116:_}),e(Me,[2,181]),e(Me,[2,142]),e(Me,[2,143]),e(Me,[2,144]),e(Me,[2,145]),e(Me,[2,146]),e(Me,[2,147]),e(Me,[2,148]),e(Me,[2,149]),e(Me,[2,150]),e(Me,[2,151]),e(Me,[2,152]),e(n,[2,12]),e(n,[2,18]),e(n,[2,19]),{9:[1,114]},e($e,[2,26],{18:115,10:$}),e(G,[2,27]),{42:116,43:39,44:g,45:40,47:41,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_},e(G,[2,40]),e(G,[2,41]),e(G,[2,42]),e(de,[2,76],{73:117,62:[1,119],74:[1,118]}),{76:120,79:121,80:rt,81:ke,116:Fe,119:He},{75:[1,126],77:[1,127]},e(at,[2,83]),e(G,[2,28]),e(G,[2,29]),e(G,[2,30]),e(G,[2,31]),e(G,[2,32]),{10:qe,12:Ue,14:ye,27:ve,28:128,32:ie,44:fe,60:W,75:ce,80:[1,130],81:[1,131],83:141,84:K,85:Re,86:xe,87:Oe,88:be,89:Be,90:Ae,91:129,105:Ve,109:Pe,111:Ye,114:le,115:st,116:me},e(ot,a,{5:154}),e(G,[2,37]),e(G,[2,38]),e(j,[2,48],{44:kt}),e(j,[2,49],{18:156,10:$,40:Gt}),e(Ee,[2,44]),{44:g,47:158,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_},{102:[1,159],103:160,105:[1,161]},{44:g,47:162,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_},{44:g,47:163,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_},e(Tt,[2,107],{10:[1,164],96:[1,165]}),{80:[1,166]},e(Tt,[2,115],{120:168,10:[1,167],14:Q,44:Y,60:ae,89:J,105:te,106:re,109:ee,111:Te,114:ue,115:De,116:Ie}),e(Tt,[2,117],{10:[1,169]}),e(Et,[2,183]),e(Et,[2,170]),e(Et,[2,171]),e(Et,[2,172]),e(Et,[2,173]),e(Et,[2,174]),e(Et,[2,175]),e(Et,[2,176]),e(Et,[2,177]),e(Et,[2,178]),e(Et,[2,179]),e(Et,[2,180]),{44:g,47:170,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_},{30:171,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:179,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:181,50:[1,180],67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:182,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:183,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:184,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{109:[1,185]},{30:186,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:187,65:[1,188],67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:189,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:190,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{30:191,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},e(Me,[2,182]),e(n,[2,20]),e($e,[2,25]),e(j,[2,46],{39:192,18:193,10:$,40:U}),e(de,[2,73],{10:[1,194]}),{10:[1,195]},{30:196,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{77:[1,197],79:198,116:Fe,119:He},e(Qe,[2,79]),e(Qe,[2,81]),e(Qe,[2,82]),e(Qe,[2,168]),e(Qe,[2,169]),{76:199,79:121,80:rt,81:ke,116:Fe,119:He},e(at,[2,84]),{8:F,9:V,10:qe,11:H,12:Ue,14:ye,21:201,27:ve,29:[1,200],32:ie,44:fe,60:W,75:ce,83:141,84:K,85:Re,86:xe,87:Oe,88:be,89:Be,90:Ae,91:202,105:Ve,109:Pe,111:Ye,114:le,115:st,116:me},e(nt,[2,101]),e(nt,[2,103]),e(nt,[2,104]),e(nt,[2,157]),e(nt,[2,158]),e(nt,[2,159]),e(nt,[2,160]),e(nt,[2,161]),e(nt,[2,162]),e(nt,[2,163]),e(nt,[2,164]),e(nt,[2,165]),e(nt,[2,166]),e(nt,[2,167]),e(nt,[2,90]),e(nt,[2,91]),e(nt,[2,92]),e(nt,[2,93]),e(nt,[2,94]),e(nt,[2,95]),e(nt,[2,96]),e(nt,[2,97]),e(nt,[2,98]),e(nt,[2,99]),e(nt,[2,100]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:d,32:[1,203],33:24,34:f,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:w,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_,121:R,122:M,123:L,124:B,125:O},{10:$,18:204},{44:[1,205]},e(Ee,[2,43]),{10:[1,206],44:g,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:113,114:I,115:D,116:_},{10:[1,207]},{10:[1,208],106:[1,209]},e(dt,[2,128]),{10:[1,210],44:g,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:113,114:I,115:D,116:_},{10:[1,211],44:g,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:113,114:I,115:D,116:_},{80:[1,212]},e(Tt,[2,109],{10:[1,213]}),e(Tt,[2,111],{10:[1,214]}),{80:[1,215]},e(Et,[2,184]),{80:[1,216],98:[1,217]},e(Ee,[2,55],{113:113,44:g,60:y,89:C,102:k,105:E,106:A,109:N,111:P,114:I,115:D,116:_}),{31:[1,218],67:yt,82:219,116:gt,117:et,118:pe},e(Ft,[2,86]),e(Ft,[2,88]),e(Ft,[2,89]),e(Ft,[2,153]),e(Ft,[2,154]),e(Ft,[2,155]),e(Ft,[2,156]),{49:[1,220],67:yt,82:219,116:gt,117:et,118:pe},{30:221,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{51:[1,222],67:yt,82:219,116:gt,117:et,118:pe},{53:[1,223],67:yt,82:219,116:gt,117:et,118:pe},{55:[1,224],67:yt,82:219,116:gt,117:et,118:pe},{57:[1,225],67:yt,82:219,116:gt,117:et,118:pe},{60:[1,226]},{64:[1,227],67:yt,82:219,116:gt,117:et,118:pe},{66:[1,228],67:yt,82:219,116:gt,117:et,118:pe},{30:229,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},{31:[1,230],67:yt,82:219,116:gt,117:et,118:pe},{67:yt,69:[1,231],71:[1,232],82:219,116:gt,117:et,118:pe},{67:yt,69:[1,234],71:[1,233],82:219,116:gt,117:et,118:pe},e(j,[2,45],{18:156,10:$,40:Gt}),e(j,[2,47],{44:kt}),e(de,[2,75]),e(de,[2,74]),{62:[1,235],67:yt,82:219,116:gt,117:et,118:pe},e(de,[2,77]),e(Qe,[2,80]),{77:[1,236],79:198,116:Fe,119:He},{30:237,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},e(ot,a,{5:238}),e(nt,[2,102]),e(G,[2,35]),{43:239,44:g,45:40,47:41,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_},{10:$,18:240},{10:Rt,60:$t,84:lr,92:241,105:pt,107:242,108:243,109:Se,110:it,111:xt,112:rr},{10:Rt,60:$t,84:lr,92:252,104:[1,253],105:pt,107:242,108:243,109:Se,110:it,111:xt,112:rr},{10:Rt,60:$t,84:lr,92:254,104:[1,255],105:pt,107:242,108:243,109:Se,110:it,111:xt,112:rr},{105:[1,256]},{10:Rt,60:$t,84:lr,92:257,105:pt,107:242,108:243,109:Se,110:it,111:xt,112:rr},{44:g,47:258,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_},e(Tt,[2,108]),{80:[1,259]},{80:[1,260],98:[1,261]},e(Tt,[2,116]),e(Tt,[2,118],{10:[1,262]}),e(Tt,[2,119]),e(we,[2,56]),e(Ft,[2,87]),e(we,[2,57]),{51:[1,263],67:yt,82:219,116:gt,117:et,118:pe},e(we,[2,64]),e(we,[2,59]),e(we,[2,60]),e(we,[2,61]),{109:[1,264]},e(we,[2,63]),e(we,[2,65]),{66:[1,265],67:yt,82:219,116:gt,117:et,118:pe},e(we,[2,67]),e(we,[2,68]),e(we,[2,70]),e(we,[2,69]),e(we,[2,71]),e([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),e(de,[2,78]),{31:[1,266],67:yt,82:219,116:gt,117:et,118:pe},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:d,32:[1,267],33:24,34:f,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:w,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_,121:R,122:M,123:L,124:B,125:O},e(Ee,[2,53]),{43:268,44:g,45:40,47:41,60:y,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_},e(Tt,[2,121],{106:_r}),e(Ur,[2,130],{108:270,10:Rt,60:$t,84:lr,105:pt,109:Se,110:it,111:xt,112:rr}),e(Dr,[2,132]),e(Dr,[2,134]),e(Dr,[2,135]),e(Dr,[2,136]),e(Dr,[2,137]),e(Dr,[2,138]),e(Dr,[2,139]),e(Dr,[2,140]),e(Dr,[2,141]),e(Tt,[2,122],{106:_r}),{10:[1,271]},e(Tt,[2,123],{106:_r}),{10:[1,272]},e(dt,[2,129]),e(Tt,[2,105],{106:_r}),e(Tt,[2,106],{113:113,44:g,60:y,89:C,102:k,105:E,106:A,109:N,111:P,114:I,115:D,116:_}),e(Tt,[2,110]),e(Tt,[2,112],{10:[1,273]}),e(Tt,[2,113]),{98:[1,274]},{51:[1,275]},{62:[1,276]},{66:[1,277]},{8:F,9:V,11:H,21:278},e(G,[2,34]),e(Ee,[2,52]),{10:Rt,60:$t,84:lr,105:pt,107:279,108:243,109:Se,110:it,111:xt,112:rr},e(Dr,[2,133]),{14:Q,44:Y,60:ae,89:J,101:280,105:te,106:re,109:ee,111:Te,114:ue,115:De,116:Ie,120:88},{14:Q,44:Y,60:ae,89:J,101:281,105:te,106:re,109:ee,111:Te,114:ue,115:De,116:Ie,120:88},{98:[1,282]},e(Tt,[2,120]),e(we,[2,58]),{30:283,67:yt,80:oe,81:ht,82:172,116:gt,117:et,118:pe},e(we,[2,66]),e(ot,a,{5:284}),e(Ur,[2,131],{108:270,10:Rt,60:$t,84:lr,105:pt,109:Se,110:it,111:xt,112:rr}),e(Tt,[2,126],{120:168,10:[1,285],14:Q,44:Y,60:ae,89:J,105:te,106:re,109:ee,111:Te,114:ue,115:De,116:Ie}),e(Tt,[2,127],{120:168,10:[1,286],14:Q,44:Y,60:ae,89:J,105:te,106:re,109:ee,111:Te,114:ue,115:De,116:Ie}),e(Tt,[2,114]),{31:[1,287],67:yt,82:219,116:gt,117:et,118:pe},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:d,32:[1,288],33:24,34:f,36:p,38:m,42:28,43:39,44:g,45:40,47:41,60:y,84:v,85:x,86:b,87:T,88:w,89:C,102:k,105:E,106:A,109:N,111:P,113:42,114:I,115:D,116:_,121:R,122:M,123:L,124:B,125:O},{10:Rt,60:$t,84:lr,92:289,105:pt,107:242,108:243,109:Se,110:it,111:xt,112:rr},{10:Rt,60:$t,84:lr,92:290,105:pt,107:242,108:243,109:Se,110:it,111:xt,112:rr},e(we,[2,62]),e(G,[2,33]),e(Tt,[2,124],{106:_r}),e(Tt,[2,125],{106:_r})],defaultActions:{},parseError:o(function(Mt,qt){if(qt.recoverable)this.trace(Mt);else{var Qt=new Error(Mt);throw Qt.hash=qt,Qt}},"parseError"),parse:o(function(Mt){var qt=this,Qt=[0],_t=[],oi=[null],Ce=[],Zs=this.table,_e="",an=0,H_=0,xC=0,rNe=2,SU=1,iNe=Ce.slice.call(arguments,1),Kn=Object.create(this.lexer),Of={yy:{}};for(var Y_ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y_)&&(Of.yy[Y_]=this.yy[Y_]);Kn.setInput(Mt,Of.yy),Of.yy.lexer=Kn,Of.yy.parser=this,typeof Kn.yylloc>"u"&&(Kn.yylloc={});var j_=Kn.yylloc;Ce.push(j_);var nNe=Kn.options&&Kn.options.ranges;typeof Of.yy.parseError=="function"?this.parseError=Of.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function o6t(Qs){Qt.length=Qt.length-2*Qs,oi.length=oi.length-Qs,Ce.length=Ce.length-Qs}o(o6t,"popStack");function aNe(){var Qs;return Qs=_t.pop()||Kn.lex()||SU,typeof Qs!="number"&&(Qs instanceof Array&&(_t=Qs,Qs=_t.pop()),Qs=qt.symbols_[Qs]||Qs),Qs}o(aNe,"lex");for(var Va,X_,Pf,wo,l6t,K_,Am={},bC,hu,EU,TC;;){if(Pf=Qt[Qt.length-1],this.defaultActions[Pf]?wo=this.defaultActions[Pf]:((Va===null||typeof Va>"u")&&(Va=aNe()),wo=Zs[Pf]&&Zs[Pf][Va]),typeof wo>"u"||!wo.length||!wo[0]){var Z_="";TC=[];for(bC in Zs[Pf])this.terminals_[bC]&&bC>rNe&&TC.push("'"+this.terminals_[bC]+"'");Kn.showPosition?Z_="Parse error on line "+(an+1)+`: +`+Kn.showPosition()+` +Expecting `+TC.join(", ")+", got '"+(this.terminals_[Va]||Va)+"'":Z_="Parse error on line "+(an+1)+": Unexpected "+(Va==SU?"end of input":"'"+(this.terminals_[Va]||Va)+"'"),this.parseError(Z_,{text:Kn.match,token:this.terminals_[Va]||Va,line:Kn.yylineno,loc:j_,expected:TC})}if(wo[0]instanceof Array&&wo.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Pf+", token: "+Va);switch(wo[0]){case 1:Qt.push(Va),oi.push(Kn.yytext),Ce.push(Kn.yylloc),Qt.push(wo[1]),Va=null,X_?(Va=X_,X_=null):(H_=Kn.yyleng,_e=Kn.yytext,an=Kn.yylineno,j_=Kn.yylloc,xC>0&&xC--);break;case 2:if(hu=this.productions_[wo[1]][1],Am.$=oi[oi.length-hu],Am._$={first_line:Ce[Ce.length-(hu||1)].first_line,last_line:Ce[Ce.length-1].last_line,first_column:Ce[Ce.length-(hu||1)].first_column,last_column:Ce[Ce.length-1].last_column},nNe&&(Am._$.range=[Ce[Ce.length-(hu||1)].range[0],Ce[Ce.length-1].range[1]]),K_=this.performAction.apply(Am,[_e,H_,an,Of.yy,wo[1],oi,Ce].concat(iNe)),typeof K_<"u")return K_;hu&&(Qt=Qt.slice(0,-1*hu*2),oi=oi.slice(0,-1*hu),Ce=Ce.slice(0,-1*hu)),Qt.push(this.productions_[wo[1]][0]),oi.push(Am.$),Ce.push(Am._$),EU=Zs[Qt[Qt.length-2]][Qt[Qt.length-1]],Qt.push(EU);break;case 3:return!0}}return!0},"parse")},In=(function(){var zt={EOF:1,parseError:o(function(qt,Qt){if(this.yy.parser)this.yy.parser.parseError(qt,Qt);else throw new Error(qt)},"parseError"),setInput:o(function(Mt,qt){return this.yy=qt||this.yy||{},this._input=Mt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Mt=this._input[0];this.yytext+=Mt,this.yyleng++,this.offset++,this.match+=Mt,this.matched+=Mt;var qt=Mt.match(/(?:\r\n?|\n).*/g);return qt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Mt},"input"),unput:o(function(Mt){var qt=Mt.length,Qt=Mt.split(/(?:\r\n?|\n)/g);this._input=Mt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-qt),this.offset-=qt;var _t=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Qt.length-1&&(this.yylineno-=Qt.length-1);var oi=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Qt?(Qt.length===_t.length?this.yylloc.first_column:0)+_t[_t.length-Qt.length].length-Qt[0].length:this.yylloc.first_column-qt},this.options.ranges&&(this.yylloc.range=[oi[0],oi[0]+this.yyleng-qt]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Mt){this.unput(this.match.slice(Mt))},"less"),pastInput:o(function(){var Mt=this.matched.substr(0,this.matched.length-this.match.length);return(Mt.length>20?"...":"")+Mt.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Mt=this.match;return Mt.length<20&&(Mt+=this._input.substr(0,20-Mt.length)),(Mt.substr(0,20)+(Mt.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Mt=this.pastInput(),qt=new Array(Mt.length+1).join("-");return Mt+this.upcomingInput()+` +`+qt+"^"},"showPosition"),test_match:o(function(Mt,qt){var Qt,_t,oi;if(this.options.backtrack_lexer&&(oi={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(oi.yylloc.range=this.yylloc.range.slice(0))),_t=Mt[0].match(/(?:\r\n?|\n).*/g),_t&&(this.yylineno+=_t.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:_t?_t[_t.length-1].length-_t[_t.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Mt[0].length},this.yytext+=Mt[0],this.match+=Mt[0],this.matches=Mt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Mt[0].length),this.matched+=Mt[0],Qt=this.performAction.call(this,this.yy,this,qt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Qt)return Qt;if(this._backtrack){for(var Ce in oi)this[Ce]=oi[Ce];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Mt,qt,Qt,_t;this._more||(this.yytext="",this.match="");for(var oi=this._currentRules(),Ce=0;Ceqt[0].length)){if(qt=Qt,_t=Ce,this.options.backtrack_lexer){if(Mt=this.test_match(Qt,oi[Ce]),Mt!==!1)return Mt;if(this._backtrack){qt=!1;continue}else return!1}else if(!this.options.flex)break}return qt?(Mt=this.test_match(qt,oi[_t]),Mt!==!1?Mt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var qt=this.next();return qt||this.lex()},"lex"),begin:o(function(qt){this.conditionStack.push(qt)},"begin"),popState:o(function(){var qt=this.conditionStack.length-1;return qt>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(qt){return qt=this.conditionStack.length-1-Math.abs(qt||0),qt>=0?this.conditionStack[qt]:"INITIAL"},"topState"),pushState:o(function(qt){this.begin(qt)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(qt,Qt,_t,oi){var Ce=oi;switch(_t){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),Qt.yytext="",40;break;case 8:return this.pushState("shapeDataStr"),40;break;case 9:return this.popState(),40;break;case 10:let Zs=/\n\s*/g;return Qt.yytext=Qt.yytext.replace(Zs,"
    "),40;break;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 95;case 17:this.popState();break;case 18:return 96;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 84;case 26:return 102;case 27:return 85;case 28:return 104;case 29:return 86;case 30:return 87;case 31:return 97;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 88;case 35:return qt.lex.firstGraph()&&this.begin("dir"),12;break;case 36:return qt.lex.firstGraph()&&this.begin("dir"),12;break;case 37:return qt.lex.firstGraph()&&this.begin("dir"),12;break;case 38:return 27;case 39:return 32;case 40:return 98;case 41:return 98;case 42:return 98;case 43:return 98;case 44:return this.popState(),13;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return this.popState(),14;break;case 50:return this.popState(),14;break;case 51:return this.popState(),14;break;case 52:return this.popState(),14;break;case 53:return this.popState(),14;break;case 54:return this.popState(),14;break;case 55:return 121;case 56:return 122;case 57:return 123;case 58:return 124;case 59:return 125;case 60:return 78;case 61:return 105;case 62:return 111;case 63:return 46;case 64:return 60;case 65:return 44;case 66:return 8;case 67:return 106;case 68:return 115;case 69:return this.popState(),77;break;case 70:return this.pushState("edgeText"),75;break;case 71:return 119;case 72:return this.popState(),77;break;case 73:return this.pushState("thickEdgeText"),75;break;case 74:return 119;case 75:return this.popState(),77;break;case 76:return this.pushState("dottedEdgeText"),75;break;case 77:return 119;case 78:return 77;case 79:return this.popState(),53;break;case 80:return"TEXT";case 81:return this.pushState("ellipseText"),52;break;case 82:return this.popState(),55;break;case 83:return this.pushState("text"),54;break;case 84:return this.popState(),57;break;case 85:return this.pushState("text"),56;break;case 86:return 58;case 87:return this.pushState("text"),67;break;case 88:return this.popState(),64;break;case 89:return this.pushState("text"),63;break;case 90:return this.popState(),49;break;case 91:return this.pushState("text"),48;break;case 92:return this.popState(),69;break;case 93:return this.popState(),71;break;case 94:return 117;case 95:return this.pushState("trapText"),68;break;case 96:return this.pushState("trapText"),70;break;case 97:return 118;case 98:return 67;case 99:return 90;case 100:return"SEP";case 101:return 89;case 102:return 115;case 103:return 111;case 104:return 44;case 105:return 109;case 106:return 114;case 107:return 116;case 108:return this.popState(),62;break;case 109:return this.pushState("text"),62;break;case 110:return this.popState(),51;break;case 111:return this.pushState("text"),50;break;case 112:return this.popState(),31;break;case 113:return this.pushState("text"),29;break;case 114:return this.popState(),66;break;case 115:return this.pushState("text"),65;break;case 116:return"TEXT";case 117:return"QUOTE";case 118:return 9;case 119:return 10;case 120:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:.*direction\s+TD[^\n]*)/,/^(?:[^\s\"]+@(?=[^\{\"]))/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},shapeData:{rules:[8,11,12,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},callbackargs:{rules:[17,18,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},callbackname:{rules:[14,15,16,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},href:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},click:{rules:[21,24,33,34,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},dottedEdgeText:{rules:[21,24,75,77,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},thickEdgeText:{rules:[21,24,72,74,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},edgeText:{rules:[21,24,69,71,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},trapText:{rules:[21,24,78,81,83,85,89,91,92,93,94,95,96,109,111,113,115],inclusive:!1},ellipseText:{rules:[21,24,78,79,80,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},text:{rules:[21,24,78,81,82,83,84,85,88,89,90,91,95,96,108,109,110,111,112,113,114,115,116],inclusive:!1},vertex:{rules:[21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_descr:{rules:[3,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},acc_title:{rules:[1,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},md_string:{rules:[19,20,21,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},string:{rules:[21,22,23,24,78,81,83,85,89,91,95,96,109,111,113,115],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,75,76,78,81,83,85,86,87,89,91,95,96,97,98,99,100,101,102,103,104,105,106,107,109,111,113,115,117,118,119,120],inclusive:!0}}};return zt})();Xi.lexer=In;function pi(){this.yy={}}return o(pi,"Parser"),pi.prototype=Xi,Xi.Parser=pi,new pi})();VP.parser=VP;WP=VP});var Kge,Zge,Qge=z(()=>{"use strict";Xge();Kge=Object.assign({},WP);Kge.parse=e=>{let t=e.replace(/}\s*\n/g,`} +`);return WP.parse(t)};Zge=Kge});var Vc,k1=z(()=>{"use strict";Vc=o(()=>` + /* Font Awesome icon styling - consolidated */ + .label-icon { + display: inline-block; + height: 1em; + overflow: visible; + vertical-align: -0.125em; + } + + .node .label-icon path { + fill: currentColor; + stroke: revert; + stroke-width: revert; + } +`,"getIconStyles")});var Kot,Zot,Jge,e1e=z(()=>{"use strict";Cn();k1();Kot=o((e,t)=>{let r=Ff,i=r(e,"r"),n=r(e,"g"),a=r(e,"b");return mn(i,n,a,t)},"fade"),Zot=o(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span { + color: ${e.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: ${e.strokeWidth??1}px; + } + .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .rough-node .label,.node .label, .image-shape .label, .icon-shape .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + + .root .anchor path { + fill: ${e.lineColor} !important; + stroke-width: 0; + stroke: ${e.lineColor}; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: ${e.strokeWidth??2}px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + p { + background-color: ${e.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${Kot(e.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${e.clusterBkg}; + stroke: ${e.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } + + rect.text { + fill: none; + stroke-width: 0; + } + + .icon-shape, .image-shape { + background-color: ${e.edgeLabelBackground}; + p { + background-color: ${e.edgeLabelBackground}; + padding: 2px; + } + .label rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + ${Vc()} +`,"getStyles"),Jge=Zot});var hE={};xr(hE,{diagram:()=>Qot});var Qot,dE=z(()=>{"use strict";Ut();Mae();jge();Qge();e1e();Qot={parser:Zge,get db(){return new V4},renderer:Yge,styles:Jge,init:o(e=>{e.flowchart||(e.flowchart={}),e.layout&&Sv({layout:e.layout}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,Sv({flowchart:{arrowMarkerAbsolute:e.arrowMarkerAbsolute}})},"init")}});var qP,a1e,s1e=z(()=>{"use strict";qP=(function(){var e=o(function(De,Ie,Ee,we){for(Ee=Ee||{},we=De.length;we--;Ee[De[we]]=Ie);return Ee},"o"),t=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],r=[1,10],i=[1,11],n=[1,12],a=[1,13],s=[1,23],l=[1,24],u=[1,25],h=[1,26],d=[1,27],f=[1,19],p=[1,28],m=[1,29],g=[1,20],y=[1,18],v=[1,21],x=[1,22],b=[1,36],T=[1,37],w=[1,38],C=[1,39],k=[1,40],E=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,65,66,67,68,69],A=[1,45],N=[1,46],P=[1,55],I=[40,48,50,51,52,70,71],D=[1,66],_=[1,64],R=[1,61],M=[1,65],L=[1,67],B=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,65,66,67,68,69],O=[65,66,67,68,69],$=[1,84],G=[1,83],F=[1,81],V=[1,82],H=[6,10,42,47],j=[6,10,13,41,42,47,48,49],U=[1,92],Q=[1,91],Y=[1,90],ae=[19,58],J=[1,101],te=[1,100],re=[19,58,60,62],ee={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,DECIMAL_NUM:51,ENTITY_ONE:52,attribute:53,attributeType:54,attributeName:55,attributeKeyTypeList:56,attributeComment:57,ATTRIBUTE_WORD:58,attributeKeyType:59,",":60,ATTRIBUTE_KEY:61,COMMENT:62,cardinality:63,relType:64,ZERO_OR_ONE:65,ZERO_OR_MORE:66,ONE_OR_MORE:67,ONLY_ONE:68,MD_PARENT:69,NON_IDENTIFYING:70,IDENTIFYING:71,WORD:72,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",51:"DECIMAL_NUM",52:"ENTITY_ONE",58:"ATTRIBUTE_WORD",60:",",61:"ATTRIBUTE_KEY",62:"COMMENT",65:"ZERO_OR_ONE",66:"ZERO_OR_MORE",67:"ONE_OR_MORE",68:"ONLY_ONE",69:"MD_PARENT",70:"NON_IDENTIFYING",71:"IDENTIFYING",72:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[11,1],[11,1],[11,1],[18,1],[18,2],[53,2],[53,3],[53,3],[53,4],[54,1],[55,1],[56,1],[56,3],[59,1],[57,1],[12,3],[63,1],[63,1],[63,1],[63,1],[63,1],[64,1],[64,1],[14,1],[14,1],[14,1]],performAction:o(function(Ie,Ee,we,Me,$e,de,rt){var ke=de.length-1;switch($e){case 1:break;case 2:this.$=[];break;case 3:de[ke-1].push(de[ke]),this.$=de[ke-1];break;case 4:case 5:this.$=de[ke];break;case 6:case 7:this.$=[];break;case 8:Me.addEntity(de[ke-4]),Me.addEntity(de[ke-2]),Me.addRelationship(de[ke-4],de[ke],de[ke-2],de[ke-3]);break;case 9:Me.addEntity(de[ke-8]),Me.addEntity(de[ke-4]),Me.addRelationship(de[ke-8],de[ke],de[ke-4],de[ke-5]),Me.setClass([de[ke-8]],de[ke-6]),Me.setClass([de[ke-4]],de[ke-2]);break;case 10:Me.addEntity(de[ke-6]),Me.addEntity(de[ke-2]),Me.addRelationship(de[ke-6],de[ke],de[ke-2],de[ke-3]),Me.setClass([de[ke-6]],de[ke-4]);break;case 11:Me.addEntity(de[ke-6]),Me.addEntity(de[ke-4]),Me.addRelationship(de[ke-6],de[ke],de[ke-4],de[ke-5]),Me.setClass([de[ke-4]],de[ke-2]);break;case 12:Me.addEntity(de[ke-3]),Me.addAttributes(de[ke-3],de[ke-1]);break;case 13:Me.addEntity(de[ke-5]),Me.addAttributes(de[ke-5],de[ke-1]),Me.setClass([de[ke-5]],de[ke-3]);break;case 14:Me.addEntity(de[ke-2]);break;case 15:Me.addEntity(de[ke-4]),Me.setClass([de[ke-4]],de[ke-2]);break;case 16:Me.addEntity(de[ke]);break;case 17:Me.addEntity(de[ke-2]),Me.setClass([de[ke-2]],de[ke]);break;case 18:Me.addEntity(de[ke-6],de[ke-4]),Me.addAttributes(de[ke-6],de[ke-1]);break;case 19:Me.addEntity(de[ke-8],de[ke-6]),Me.addAttributes(de[ke-8],de[ke-1]),Me.setClass([de[ke-8]],de[ke-3]);break;case 20:Me.addEntity(de[ke-5],de[ke-3]);break;case 21:Me.addEntity(de[ke-7],de[ke-5]),Me.setClass([de[ke-7]],de[ke-2]);break;case 22:Me.addEntity(de[ke-3],de[ke-1]);break;case 23:Me.addEntity(de[ke-5],de[ke-3]),Me.setClass([de[ke-5]],de[ke]);break;case 24:case 25:this.$=de[ke].trim(),Me.setAccTitle(this.$);break;case 26:case 27:this.$=de[ke].trim(),Me.setAccDescription(this.$);break;case 32:Me.setDirection("TB");break;case 33:Me.setDirection("BT");break;case 34:Me.setDirection("RL");break;case 35:Me.setDirection("LR");break;case 36:this.$=de[ke-3],Me.addClass(de[ke-2],de[ke-1]);break;case 37:case 38:case 59:case 67:this.$=[de[ke]];break;case 39:case 40:this.$=de[ke-2].concat([de[ke]]);break;case 41:this.$=de[ke-2],Me.setClass(de[ke-1],de[ke]);break;case 42:this.$=de[ke-3],Me.addCssStyles(de[ke-2],de[ke-1]);break;case 43:this.$=[de[ke]];break;case 44:de[ke-2].push(de[ke]),this.$=de[ke-2];break;case 46:this.$=de[ke-1]+de[ke];break;case 54:case 79:case 80:this.$=de[ke].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 81:this.$=de[ke];break;case 60:de[ke].push(de[ke-1]),this.$=de[ke];break;case 61:this.$={type:de[ke-1],name:de[ke]};break;case 62:this.$={type:de[ke-2],name:de[ke-1],keys:de[ke]};break;case 63:this.$={type:de[ke-2],name:de[ke-1],comment:de[ke]};break;case 64:this.$={type:de[ke-3],name:de[ke-2],keys:de[ke-1],comment:de[ke]};break;case 65:case 66:case 69:this.$=de[ke];break;case 68:de[ke-2].push(de[ke]),this.$=de[ke-2];break;case 70:this.$=de[ke].replace(/"/g,"");break;case 71:this.$={cardA:de[ke],relType:de[ke-1],cardB:de[ke-2]};break;case 72:this.$=Me.Cardinality.ZERO_OR_ONE;break;case 73:this.$=Me.Cardinality.ZERO_OR_MORE;break;case 74:this.$=Me.Cardinality.ONE_OR_MORE;break;case 75:this.$=Me.Cardinality.ONLY_ONE;break;case 76:this.$=Me.Cardinality.MD_PARENT;break;case 77:this.$=Me.Identification.NON_IDENTIFYING;break;case 78:this.$=Me.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:r,24:i,26:n,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:d,40:f,43:p,44:m,48:g,50:y,51:v,52:x},e(t,[2,7],{1:[2,1]}),e(t,[2,3]),{9:30,11:9,22:r,24:i,26:n,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:d,40:f,43:p,44:m,48:g,50:y,51:v,52:x},e(t,[2,5]),e(t,[2,6]),e(t,[2,16],{12:31,63:35,15:[1,32],17:[1,33],20:[1,34],65:b,66:T,67:w,68:C,69:k}),{23:[1,41]},{25:[1,42]},{27:[1,43]},e(t,[2,27]),e(t,[2,28]),e(t,[2,29]),e(t,[2,30]),e(t,[2,31]),e(E,[2,54]),e(E,[2,55]),e(E,[2,56]),e(E,[2,57]),e(E,[2,58]),e(t,[2,32]),e(t,[2,33]),e(t,[2,34]),e(t,[2,35]),{16:44,40:A,41:N},{16:47,40:A,41:N},{16:48,40:A,41:N},e(t,[2,4]),{11:49,40:f,48:g,50:y,51:v,52:x},{16:50,40:A,41:N},{18:51,19:[1,52],53:53,54:54,58:P},{11:56,40:f,48:g,50:y,51:v,52:x},{64:57,70:[1,58],71:[1,59]},e(I,[2,72]),e(I,[2,73]),e(I,[2,74]),e(I,[2,75]),e(I,[2,76]),e(t,[2,24]),e(t,[2,25]),e(t,[2,26]),{13:D,38:60,41:_,42:R,45:62,46:63,48:M,49:L},e(B,[2,37]),e(B,[2,38]),{16:68,40:A,41:N,42:R},{13:D,38:69,41:_,42:R,45:62,46:63,48:M,49:L},{13:[1,70],15:[1,71]},e(t,[2,17],{63:35,12:72,17:[1,73],42:R,65:b,66:T,67:w,68:C,69:k}),{19:[1,74]},e(t,[2,14]),{18:75,19:[2,59],53:53,54:54,58:P},{55:76,58:[1,77]},{58:[2,65]},{21:[1,78]},{63:79,65:b,66:T,67:w,68:C,69:k},e(O,[2,77]),e(O,[2,78]),{6:$,10:G,39:80,42:F,47:V},{40:[1,85],41:[1,86]},e(H,[2,43],{46:87,13:D,41:_,48:M,49:L}),e(j,[2,45]),e(j,[2,50]),e(j,[2,51]),e(j,[2,52]),e(j,[2,53]),e(t,[2,41],{42:R}),{6:$,10:G,39:88,42:F,47:V},{14:89,40:U,50:Q,72:Y},{16:93,40:A,41:N},{11:94,40:f,48:g,50:y,51:v,52:x},{18:95,19:[1,96],53:53,54:54,58:P},e(t,[2,12]),{19:[2,60]},e(ae,[2,61],{56:97,57:98,59:99,61:J,62:te}),e([19,58,61,62],[2,66]),e(t,[2,22],{15:[1,103],17:[1,102]}),e([40,48,50,51,52],[2,71]),e(t,[2,36]),{13:D,41:_,45:104,46:63,48:M,49:L},e(t,[2,47]),e(t,[2,48]),e(t,[2,49]),e(B,[2,39]),e(B,[2,40]),e(j,[2,46]),e(t,[2,42]),e(t,[2,8]),e(t,[2,79]),e(t,[2,80]),e(t,[2,81]),{13:[1,105],42:R},{13:[1,107],15:[1,106]},{19:[1,108]},e(t,[2,15]),e(ae,[2,62],{57:109,60:[1,110],62:te}),e(ae,[2,63]),e(re,[2,67]),e(ae,[2,70]),e(re,[2,69]),{18:111,19:[1,112],53:53,54:54,58:P},{16:113,40:A,41:N},e(H,[2,44],{46:87,13:D,41:_,48:M,49:L}),{14:114,40:U,50:Q,72:Y},{16:115,40:A,41:N},{14:116,40:U,50:Q,72:Y},e(t,[2,13]),e(ae,[2,64]),{59:117,61:J},{19:[1,118]},e(t,[2,20]),e(t,[2,23],{17:[1,119],42:R}),e(t,[2,11]),{13:[1,120],42:R},e(t,[2,10]),e(re,[2,68]),e(t,[2,18]),{18:121,19:[1,122],53:53,54:54,58:P},{14:123,40:U,50:Q,72:Y},{19:[1,124]},e(t,[2,21]),e(t,[2,9]),e(t,[2,19])],defaultActions:{55:[2,65],75:[2,60]},parseError:o(function(Ie,Ee){if(Ee.recoverable)this.trace(Ie);else{var we=new Error(Ie);throw we.hash=Ee,we}},"parseError"),parse:o(function(Ie){var Ee=this,we=[0],Me=[],$e=[null],de=[],rt=this.table,ke="",Fe=0,He=0,at=0,qe=2,Ue=1,ye=de.slice.call(arguments,1),ve=Object.create(this.lexer),ie={yy:{}};for(var fe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,fe)&&(ie.yy[fe]=this.yy[fe]);ve.setInput(Ie,ie.yy),ie.yy.lexer=ve,ie.yy.parser=this,typeof ve.yylloc>"u"&&(ve.yylloc={});var W=ve.yylloc;de.push(W);var ce=ve.options&&ve.options.ranges;typeof ie.yy.parseError=="function"?this.parseError=ie.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function K(kt){we.length=we.length-2*kt,$e.length=$e.length-kt,de.length=de.length-kt}o(K,"popStack");function Re(){var kt;return kt=Me.pop()||ve.lex()||Ue,typeof kt!="number"&&(kt instanceof Array&&(Me=kt,kt=Me.pop()),kt=Ee.symbols_[kt]||kt),kt}o(Re,"lex");for(var xe,Oe,be,Be,Ae,Ve,Pe={},Ye,le,st,me;;){if(be=we[we.length-1],this.defaultActions[be]?Be=this.defaultActions[be]:((xe===null||typeof xe>"u")&&(xe=Re()),Be=rt[be]&&rt[be][xe]),typeof Be>"u"||!Be.length||!Be[0]){var ot="";me=[];for(Ye in rt[be])this.terminals_[Ye]&&Ye>qe&&me.push("'"+this.terminals_[Ye]+"'");ve.showPosition?ot="Parse error on line "+(Fe+1)+`: +`+ve.showPosition()+` +Expecting `+me.join(", ")+", got '"+(this.terminals_[xe]||xe)+"'":ot="Parse error on line "+(Fe+1)+": Unexpected "+(xe==Ue?"end of input":"'"+(this.terminals_[xe]||xe)+"'"),this.parseError(ot,{text:ve.match,token:this.terminals_[xe]||xe,line:ve.yylineno,loc:W,expected:me})}if(Be[0]instanceof Array&&Be.length>1)throw new Error("Parse Error: multiple actions possible at state: "+be+", token: "+xe);switch(Be[0]){case 1:we.push(xe),$e.push(ve.yytext),de.push(ve.yylloc),we.push(Be[1]),xe=null,Oe?(xe=Oe,Oe=null):(He=ve.yyleng,ke=ve.yytext,Fe=ve.yylineno,W=ve.yylloc,at>0&&at--);break;case 2:if(le=this.productions_[Be[1]][1],Pe.$=$e[$e.length-le],Pe._$={first_line:de[de.length-(le||1)].first_line,last_line:de[de.length-1].last_line,first_column:de[de.length-(le||1)].first_column,last_column:de[de.length-1].last_column},ce&&(Pe._$.range=[de[de.length-(le||1)].range[0],de[de.length-1].range[1]]),Ve=this.performAction.apply(Pe,[ke,He,Fe,ie.yy,Be[1],$e,de].concat(ye)),typeof Ve<"u")return Ve;le&&(we=we.slice(0,-1*le*2),$e=$e.slice(0,-1*le),de=de.slice(0,-1*le)),we.push(this.productions_[Be[1]][0]),$e.push(Pe.$),de.push(Pe._$),st=rt[we[we.length-2]][we[we.length-1]],we.push(st);break;case 3:return!0}}return!0},"parse")},Te=(function(){var De={EOF:1,parseError:o(function(Ee,we){if(this.yy.parser)this.yy.parser.parseError(Ee,we);else throw new Error(Ee)},"parseError"),setInput:o(function(Ie,Ee){return this.yy=Ee||this.yy||{},this._input=Ie,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Ie=this._input[0];this.yytext+=Ie,this.yyleng++,this.offset++,this.match+=Ie,this.matched+=Ie;var Ee=Ie.match(/(?:\r\n?|\n).*/g);return Ee?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ie},"input"),unput:o(function(Ie){var Ee=Ie.length,we=Ie.split(/(?:\r\n?|\n)/g);this._input=Ie+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ee),this.offset-=Ee;var Me=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),we.length-1&&(this.yylineno-=we.length-1);var $e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:we?(we.length===Me.length?this.yylloc.first_column:0)+Me[Me.length-we.length].length-we[0].length:this.yylloc.first_column-Ee},this.options.ranges&&(this.yylloc.range=[$e[0],$e[0]+this.yyleng-Ee]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Ie){this.unput(this.match.slice(Ie))},"less"),pastInput:o(function(){var Ie=this.matched.substr(0,this.matched.length-this.match.length);return(Ie.length>20?"...":"")+Ie.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Ie=this.match;return Ie.length<20&&(Ie+=this._input.substr(0,20-Ie.length)),(Ie.substr(0,20)+(Ie.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Ie=this.pastInput(),Ee=new Array(Ie.length+1).join("-");return Ie+this.upcomingInput()+` +`+Ee+"^"},"showPosition"),test_match:o(function(Ie,Ee){var we,Me,$e;if(this.options.backtrack_lexer&&($e={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&($e.yylloc.range=this.yylloc.range.slice(0))),Me=Ie[0].match(/(?:\r\n?|\n).*/g),Me&&(this.yylineno+=Me.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Me?Me[Me.length-1].length-Me[Me.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Ie[0].length},this.yytext+=Ie[0],this.match+=Ie[0],this.matches=Ie,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ie[0].length),this.matched+=Ie[0],we=this.performAction.call(this,this.yy,this,Ee,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),we)return we;if(this._backtrack){for(var de in $e)this[de]=$e[de];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ie,Ee,we,Me;this._more||(this.yytext="",this.match="");for(var $e=this._currentRules(),de=0;de<$e.length;de++)if(we=this._input.match(this.rules[$e[de]]),we&&(!Ee||we[0].length>Ee[0].length)){if(Ee=we,Me=de,this.options.backtrack_lexer){if(Ie=this.test_match(we,$e[de]),Ie!==!1)return Ie;if(this._backtrack){Ee=!1;continue}else return!1}else if(!this.options.flex)break}return Ee?(Ie=this.test_match(Ee,$e[Me]),Ie!==!1?Ie:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ee=this.next();return Ee||this.lex()},"lex"),begin:o(function(Ee){this.conditionStack.push(Ee)},"begin"),popState:o(function(){var Ee=this.conditionStack.length-1;return Ee>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ee){return Ee=this.conditionStack.length-1-Math.abs(Ee||0),Ee>=0?this.conditionStack[Ee]:"INITIAL"},"topState"),pushState:o(function(Ee){this.begin(Ee)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Ee,we,Me,$e){var de=$e;switch(Me){case 0:return this.begin("acc_title"),24;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),26;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 72;case 16:return 4;case 17:return this.begin("block"),17;break;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 61;case 25:return 58;case 26:return 58;case 27:return 62;case 28:break;case 29:return this.popState(),19;break;case 30:return we.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;break;case 34:return this.popState(),10;break;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;break;case 40:return 43;case 41:return 65;case 42:return 67;case 43:return 67;case 44:return 67;case 45:return 65;case 46:return 65;case 47:return 66;case 48:return 66;case 49:return 66;case 50:return 66;case 51:return 66;case 52:return 67;case 53:return 66;case 54:return 67;case 55:return 68;case 56:return 68;case 57:return 51;case 58:return 68;case 59:return 68;case 60:return 68;case 61:return 52;case 62:return 48;case 63:return 68;case 64:return 65;case 65:return 66;case 66:return 67;case 67:return 69;case 68:return 70;case 69:return 71;case 70:return 71;case 71:return 70;case 72:return 70;case 73:return 70;case 74:return 41;case 75:return 47;case 76:return 40;case 77:return we.yytext[0];case 78:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:[0-9]+\.[0-9]+)/i,/^(?:1(?=\s+[A-Za-z_"']))/i,/^(?:1(?=\s+[0-9]))/i,/^(?:1(?=(--|\.\.|\.-|-\.)))/i,/^(?:1\b)/i,/^(?:[0-9]+)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:u(?=[\.\-\|]))/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*|\.)+)/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,74,75],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,76,77,78],inclusive:!0}}};return De})();ee.lexer=Te;function ue(){this.yy={}}return o(ue,"Parser"),ue.prototype=ee,ee.Parser=ue,new ue})();qP.parser=qP;a1e=qP});var fE,o1e=z(()=>{"use strict";St();Ut();Ci();Xt();fE=class{constructor(){this.entities=new Map;this.relationships=[];this.classes=new Map;this.direction="TB";this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"};this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"};this.setAccTitle=Cr;this.getAccTitle=kr;this.setAccDescription=wr;this.getAccDescription=Sr;this.setDiagramTitle=Ar;this.getDiagramTitle=Er;this.getConfig=o(()=>ge().er,"getConfig");this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"ErDB")}addEntity(t,r=""){return this.entities.has(t)?!this.entities.get(t)?.alias&&r&&(this.entities.get(t).alias=r,Z.info(`Add alias '${r}' to entity '${t}'`)):(this.entities.set(t,{id:`entity-${t}-${this.entities.size}`,label:t,attributes:[],alias:r,shape:"erBox",look:ge().look??"default",cssClasses:"default",cssStyles:[],labelType:"markdown"}),Z.info("Added new entity :",t)),this.entities.get(t)}getEntity(t){return this.entities.get(t)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(t,r){let i=this.addEntity(t),n;for(n=r.length-1;n>=0;n--)r[n].keys||(r[n].keys=[]),r[n].comment||(r[n].comment=""),i.attributes.push(r[n]),Z.debug("Added attribute ",r[n].name)}addRelationship(t,r,i,n){let a=this.entities.get(t),s=this.entities.get(i);if(!a||!s)return;let l={entityA:a.id,roleA:r,entityB:s.id,relSpec:n};this.relationships.push(l),Z.debug("Added new relationship :",l)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(t){this.direction=t}getCompiledStyles(t){let r=[];for(let i of t){let n=this.classes.get(i);n?.styles&&(r=[...r,...n.styles??[]].map(a=>a.trim())),n?.textStyles&&(r=[...r,...n.textStyles??[]].map(a=>a.trim()))}return r}addCssStyles(t,r){for(let i of t){let n=this.entities.get(i);if(!r||!n)return;for(let a of r)n.cssStyles.push(a)}}addClass(t,r){t.forEach(i=>{let n=this.classes.get(i);n===void 0&&(n={id:i,styles:[],textStyles:[]},this.classes.set(i,n)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");n.textStyles.push(s)}n.styles.push(a)})})}setClass(t,r){for(let i of t){let n=this.entities.get(i);if(n)for(let a of r)n.cssClasses+=" "+a}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],gr()}getData(){let t=[],r=[],i=ge(),n=0;for(let s of this.entities.keys()){let l=this.entities.get(s);l&&(l.cssCompiledStyles=this.getCompiledStyles(l.cssClasses.split(" ")),l.colorIndex=n++,t.push(l))}let a=0;for(let s of this.relationships){let l={id:bc(s.entityA,s.entityB,{prefix:"id",counter:a++}),type:"normal",curve:"basis",start:s.entityA,end:s.entityB,label:s.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:s.relSpec.cardB.toLowerCase(),arrowTypeEnd:s.relSpec.cardA.toLowerCase(),pattern:s.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:i.look,labelType:"markdown"};r.push(l)}return{nodes:t,edges:r,other:{},config:i,direction:"TB"}}}});var UP={};xr(UP,{draw:()=>alt});var alt,l1e=z(()=>{"use strict";Ut();St();Lp();tf();rf();Xt();Rr();alt=o(async function(e,t,r,i){Z.info("REF0:"),Z.info("Drawing er diagram (unified)",t);let{securityLevel:n,er:a,layout:s}=ge(),l=i.db.getData(),u=Fo(t,n);l.type=i.type,l.layoutAlgorithm=Gc(s),l.config.flowchart.nodeSpacing=a?.nodeSpacing||140,l.config.flowchart.rankSpacing=a?.rankSpacing||80,l.direction=i.db.getDirection();let{config:h}=l,{look:d}=h;d==="neo"?l.markers=["only_one_neo","zero_or_one_neo","one_or_more_neo","zero_or_more_neo"]:l.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],l.diagramId=t,await Zo(l,u),l.layoutAlgorithm==="elk"&&u.select(".edges").lower();let f=u.selectAll('[id*="-background"]');Array.from(f).length>0&&f.each(function(){let m=Je(this),y=m.attr("id").replace("-background",""),v=u.select(`#${CSS.escape(y)}`);if(!v.empty()){let x=v.attr("transform");m.attr("transform",x)}});let p=8;Zt.insertTitle(u,"erDiagramTitleText",a?.titleTopMargin??25,i.db.getDiagramTitle()),$s(u,p,"erDiagram",a?.useMaxWidth??!0)},"draw")});var c1e,pE,slt,olt,u1e,h1e=z(()=>{"use strict";Cn();c1e=o((e,t)=>{let r=Ff,i=r(e,"r"),n=r(e,"g"),a=r(e,"b");return mn(i,n,a,t)},"fade"),pE=new Set(["redux-color","redux-dark-color"]),slt=o(e=>{let{theme:t,look:r,bkgColorArray:i,borderColorArray:n}=e;if(!pE.has(t))return"";let a=i?.length>0,s="";for(let l=0;l{let{look:t,theme:r,erEdgeLabelBackground:i,strokeWidth:n}=e;return` + ${slt(e)} + .entityBox { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${e.tertiaryColor}; + opacity: 0.7; + background-color: ${e.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .labelBkg { + background-color: ${pE.has(r)&&i?i:c1e(e.tertiaryColor,.5)}; + } + + .edgeLabel { + background-color: ${pE.has(r)&&i?i:e.edgeLabelBackground}; + } + .edgeLabel .label rect { + fill: ${pE.has(r)&&i?i:e.edgeLabelBackground}; + } + .edgeLabel .label text { + fill: ${e.textColor}; + } + + .edgeLabel .label { + fill: ${e.nodeBorder}; + font-size: 14px; + } + + .label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + + .edge-pattern-dashed { + stroke-dasharray: 8,8; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon + { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: ${t==="neo"?n:"1px"}; + } + + .relationshipLine { + stroke: ${e.lineColor}; + stroke-width: ${t==="neo"?n:"1px"}; + fill: none; + } + + .marker { + fill: none !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; + } + [data-look=neo].labelBkg { + background-color: ${c1e(e.tertiaryColor,.5)}; + } +`},"getStyles"),u1e=olt});var d1e={};xr(d1e,{diagram:()=>llt});var llt,f1e=z(()=>{"use strict";s1e();o1e();l1e();h1e();llt={parser:a1e,get db(){return new fE},renderer:UP,styles:u1e}});function Rn(e){return typeof e=="object"&&e!==null&&typeof e.$type=="string"}function ss(e){return typeof e=="object"&&e!==null&&typeof e.$refText=="string"&&"ref"in e}function Qc(e){return typeof e=="object"&&e!==null&&typeof e.$refText=="string"&&"items"in e}function f$(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.type=="string"&&typeof e.path=="string"}function g0(e){return typeof e=="object"&&e!==null&&typeof e.info=="object"&&typeof e.message=="string"}function oh(e){return typeof e=="object"&&e!==null&&Array.isArray(e.content)}function q0(e){return typeof e=="object"&&e!==null&&typeof e.tokenType=="object"}function H5(e){return oh(e)&&typeof e.fullText=="string"}function hve(e){return typeof e=="string"?e:typeof e>"u"?"undefined":typeof e.toString=="function"?e.toString():Object.prototype.toString.call(e)}function rT(e){return!!e&&typeof e[Symbol.iterator]=="function"}function gi(...e){if(e.length===1){let t=e[0];if(t instanceof Kc)return t;if(rT(t))return new Kc(()=>t[Symbol.iterator](),r=>r.next());if(typeof t.length=="number")return new Kc(()=>({index:0}),r=>r.index1?new Kc(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let r=t.iterator.next();if(!r.done)return r;t.iterator=void 0}if(t.array){if(t.arrIndex{Rn(n)&&(n.$container=e,n.$containerProperty=r,n.$containerIndex=a,t.deep&&j1(n,t))}):Rn(i)&&(i.$container=e,i.$containerProperty=r,t.deep&&j1(i,t)))}function U0(e,t){let r=e;for(;r;){if(t(r))return r;r=r.$container}}function dve(e,t){let r=e;for(;r;){if(t(r))return!0;r=r.$container}return!1}function Wl(e){let r=V1(e).$document;if(!r)throw new Error("AST node has no document.");return r}function V1(e){for(;e.$container;)e=e.$container;return e}function r5(e){return ss(e)?e.ref?[e.ref]:[]:Qc(e)?e.items.map(t=>t.ref):[]}function CT(e,t){if(!e)throw new Error("Node must be an AstNode.");let r=t?.range;return new Kc(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),i=>{for(;i.keyIndexCT(r,t))}function ql(e,t){if(e){if(t?.range&&!i5(e,t.range))return new Y1(e,()=>[])}else throw new Error("Root node must be an AstNode.");return new Y1(e,r=>CT(r,t),{includeRoot:!0})}function i5(e,t){if(!t)return!0;let r=e.$cstNode?.range;return r?$$(r,t):!1}function X1(e){return new Kc(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndexoh(t)?t.content:[],{includeRoot:!0})}function Lve(e){return Z1(e).filter(q0)}function B$(e,t){for(;e.container;)if(e=e.container,e===t)return!0;return!1}function nT(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function Q1(e){if(!e)return;let{offset:t,end:r,range:i}=e;return{range:i,offset:t,end:r,length:r-t}}function F$(e,t){if(e.end.linet.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return Xc.After;let r=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,i=e.end.lineXc.After}function Mve(e,t,r=z$){if(e){if(t>0){let i=t-e.offset,n=e.text.charAt(i);r.test(n)||t--}return J5(e,t)}}function G$(e,t){if(e){let r=q$(e,!0);if(r&&v5(r,t))return r;if(H5(e)){let i=e.content.findIndex(n=>!n.hidden);for(let n=i-1;n>=0;n--){let a=e.content[n];if(v5(a,t))return a}}}}function v5(e,t){return q0(e)&&t.includes(e.tokenType.name)}function J5(e,t){if(q0(e))return e;if(oh(e)){let r=W$(e,t,!1);if(r)return J5(r,t)}}function V$(e,t){if(q0(e))return e;if(oh(e)){let r=W$(e,t,!0);if(r)return V$(r,t)}}function W$(e,t,r){let i=0,n=e.content.length-1,a;for(;i<=n;){let s=Math.floor((i+n)/2),l=e.content[s];if(l.offset<=t&&l.end>t)return l;l.end<=t?(a=r?l:void 0,i=s+1):n=s-1}return a}function q$(e,t=!0){for(;e.container;){let r=e.container,i=r.content.indexOf(e);for(;i>0;){i--;let n=r.content[i];if(t||!n.hidden)return n}e=r}}function Nve(e,t=!0){for(;e.container;){let r=e.container,i=r.content.indexOf(e),n=r.content.length-1;for(;it.test(r))}function sy(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function X$(e,t){let r=K$(e),i=t.match(r);return!!i&&i[0].length>0}function K$(e){typeof e=="string"&&(e=new RegExp(e));let t=e,r=e.source,i=0;function n(){let a="",s;function l(h){a+=r.substr(i,h),i+=h}o(l,"appendRaw"),S(l,"appendRaw");function u(h){a+="(?:"+r.substr(i,h)+"|$)",i+=h}for(o(u,"appendOptional"),S(u,"appendOptional");i",i)-i+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=i,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=i,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[i+1]==="?")switch(r[i+2]){case":":a+="(?:",i+=3,a+=n()+"|$)";break;case"=":a+="(?=",i+=3,a+=n()+")";break;case"!":s=i,i+=3,n(),a+=r.substr(s,i-s);break;case"<":switch(r[i+3]){case"=":case"!":s=i,i+=4,n(),a+=r.substr(s,i-s);break;default:l(r.indexOf(">",i)-i+1),a+=n()+"|$)";break}break}else l(1),a+=n()+"|$)";break;case")":return++i,a;default:u(1);break}return a}return o(n,"process2"),S(n,"process"),new RegExp(n(),e.flags)}function Z$(e){return e.rules.find(t=>cs(t)&&t.entry)}function Q$(e){return e.rules.filter(t=>rl(t)&&t.hidden)}function iA(e,t){let r=new Set,i=Z$(e);if(!i)return new Set(e.rules);let n=[i].concat(Q$(e));for(let s of n)J$(s,r,t);let a=new Set;for(let s of e.rules)(r.has(s.name)||rl(s)&&s.hidden)&&a.add(s);return a}function J$(e,t,r){t.add(e.name),yh(e).forEach(i=>{if(uh(i)||r&&K5(i)){let n=i.rule.ref;n&&!t.has(n.name)&&J$(n,t,r)}})}function Vve(e){let t=new Set;return yh(e).forEach(r=>{Y0(r)&&(cs(r.type.ref)&&t.add(r.type.ref),kT(r.type.ref)&&cs(r.type.ref.$container)&&t.add(r.type.ref.$container))}),t}function ez(e){if(e.terminal)return e.terminal;if(e.type.ref)return oA(e.type.ref)?.terminal}function tz(e){return e.hidden&&!rA(ET(e))}function rz(e,t){return!e||!t?[]:aA(e,t,e.astNode,!0)}function nA(e,t,r){if(!e||!t)return;let i=aA(e,t,e.astNode,!0);if(i.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,i.length-1)):r=0,i[r]}function aA(e,t,r,i){if(!i){let n=U0(e.grammarSource,lh);if(n&&n.feature===t)return[e]}return oh(e)&&e.astNode===r?e.content.flatMap(n=>aA(n,t,r,!1)):[]}function Wve(e,t){return e?sA(e,t,e?.astNode):[]}function iz(e,t,r){if(!e)return;let i=sA(e,t,e?.astNode);if(i.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,i.length-1)):r=0,i[r]}function sA(e,t,r){if(e.astNode!==r)return[];if(ch(e.grammarSource)&&e.grammarSource.value===t)return[e];let i=Z1(e).iterator(),n,a=[];do if(n=i.next(),!n.done){let s=n.value;s.astNode===r?ch(s.grammarSource)&&s.grammarSource.value===t&&a.push(s):i.prune()}while(!n.done);return a}function nz(e){let t=e.astNode;for(;t===e.container?.astNode;){let r=U0(e.grammarSource,lh);if(r)return r;e=e.container}}function oA(e){let t=e;return kT(t)&&(pf(t.$container)?t=t.$container.$container:H0(t.$container)?t=t.$container:bf(t.$container)),az(e,t,new Map)}function az(e,t,r){function i(n,a){let s;return U0(n,lh)||(s=az(a,a,r)),r.set(e,s),s}if(o(i,"go"),S(i,"go"),r.has(e))return r.get(e);r.set(e,void 0);for(let n of yh(t)){if(lh(n)&&n.feature.toLowerCase()==="name")return r.set(e,n),n;if(uh(n)&&cs(n.rule.ref))return i(n,n.rule.ref);if(X5(n)&&n.typeRef?.ref)return i(n,n.typeRef.ref)}}function sz(e){let t=e.$container;if(j0(t)){let r=t.elements,i=r.indexOf(e);for(let n=i-1;n>=0;n--){let a=r[n];if(pf(a))return a;{let s=yh(r[n]).find(pf);if(s)return s}}}if(Y5(t))return sz(t)}function qve(e,t){return e==="?"||e==="*"||j0(t)&&!!t.guardCondition}function Uve(e){return e==="*"||e==="+"}function Hve(e){return e==="+="}function wT(e){return oz(e,new Set)}function oz(e,t){if(t.has(e))return!0;t.add(e);for(let r of yh(e))if(uh(r)){if(!r.rule.ref||cs(r.rule.ref)&&!oz(r.rule.ref,t)||K1(r.rule.ref))return!1}else{if(lh(r))return!1;if(pf(r))return!1}return!!e.definition}function Yve(e){return T5(e.type,new Set)}function T5(e,t){if(t.has(e))return!0;if(t.add(e),v$(e))return!1;if(_$(e))return!1;if(N$(e))return e.types.every(r=>T5(r,t));if(X5(e)){if(e.primitiveType!==void 0)return!0;if(e.stringType!==void 0)return!0;if(e.typeRef!==void 0){let r=e.typeRef.ref;return Z5(r)?T5(r.type,t):!1}else return!1}else return!1}function ST(e){if(!rl(e)){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){let t=e.returnType.ref;if(t)return t.name}}}function $0(e){if(H0(e))return cs(e)&&wT(e)?e.name:ST(e)??e.name;if(w$(e)||Z5(e)||R$(e))return e.name;if(pf(e)){let t=lz(e);if(t)return t}else if(kT(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function lz(e){if(e.inferredType)return e.inferredType.name;if(e.type?.ref)return $0(e.type.ref)}function jve(e){return rl(e)?e.type?.name??"string":cs(e)&&wT(e)?e.name:ST(e)??e.name}function cz(e){return rl(e)?e.type?.name??"string":ST(e)??e.name}function ET(e){let t={s:!1,i:!1,u:!1},r=X0(e.definition,t),i=Object.entries(t).filter(([,n])=>n).map(([n])=>n).join("");return new RegExp(r,i)}function X0(e,t){if(L$(e))return Xve(e);if(M$(e))return Kve(e);if(b$(e))return Jve(e);if(K5(e)){let r=e.rule.ref;if(!r)throw new Error("Missing rule reference.");return Jc(X0(r.definition),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}else{if(S$(e))return Qve(e);if(I$(e))return Zve(e);if(D$(e)){let r=e.regex.lastIndexOf("/"),i=e.regex.substring(1,r),n=e.regex.substring(r+1);return t&&(t.i=n.includes("i"),t.s=n.includes("s"),t.u=n.includes("u")),Jc(i,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}else{if(O$(e))return Jc(uz,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized});throw new Error(`Invalid terminal element: ${e?.$type}, ${e?.$cstNode?.text}`)}}}function Xve(e){return Jc(e.elements.map(t=>X0(t)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function Kve(e){return Jc(e.elements.map(t=>X0(t)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function Zve(e){return Jc(`${uz}*?${X0(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function Qve(e){return Jc(`(?!${X0(e.terminal)})${uz}*?`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function Jve(e){return e.right?Jc(`[${VE(e.left)}-${VE(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1}):Jc(VE(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function VE(e){return sy(e.value)}function Jc(e,t){return(t.parenthesized||t.lookahead||t.wrap!==!1)&&(e=`(${t.lookahead??(t.parenthesized?"":"?:")}${e})`),t.cardinality?`${e}${t.cardinality}`:e}function hz(e){let t=[],r=e.Grammar;for(let i of r.rules)rl(i)&&tz(i)&&j$(ET(i))&&t.push(i.name);return{multilineCommentRules:t,nameRegexp:z$}}function rxe(e){var t=ict.call(e,x2),r=e[x2];try{e[x2]=void 0;var i=!0}catch{}var n=nct.call(e);return i&&(t?e[x2]=r:delete e[x2]),n}function ixe(e){return oct.call(e)}function nxe(e){return e==null?e===void 0?uct:cct:v1e&&v1e in Object(e)?act(e):lct(e)}function axe(e){return e!=null&&typeof e=="object"}function sxe(e){return typeof e=="symbol"||Yl(e)&&Tf(e)==hct}function oxe(e,t){for(var r=-1,i=e==null?0:e.length,n=Array(i);++r0){if(++t>=jct)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Sxe(e){return function(){return e}}function Exe(e,t){for(var r=-1,i=e==null?0:e.length;++r-1}function Oxe(e,t){var r=typeof e;return t=t??sut,!!t&&(r=="number"||r!="symbol"&&out.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=hut}function Wxe(e){return e!=null&&gz(e.length)&&!vh(e)}function qxe(e,t,r){if(!tl(r))return!1;var i=typeof t;return(i=="number"?ru(r)&&cA(t,r.length):i=="string"&&t in r)?DT(r[t],e):!1}function Uxe(e){return mz(function(t,r){var i=-1,n=r.length,a=n>1?r[n-1]:void 0,s=n>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(n--,a):void 0,s&&hA(r[0],r[1],s)&&(a=n<3?void 0:a,n=1),t=Object(t);++i-1}function Cbe(e,t){var r=this.__data__,i=pA(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}function J0(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0&&r(l)?t>1?Tz(l,t-1,r,i,n):bz(n,l):i||(n[n.length]=l)}return n}function Fbe(e){var t=e==null?0:e.length;return t?Cz(e,1):[]}function zbe(e,t,r){var i=-1,n=e.length;t<0&&(t=-t>n?0:n+t),r=r>n?n:r,r<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(n);++il))return!1;var h=a.get(e),d=a.get(t);if(h&&d)return h==t&&d==e;var f=-1,p=!0,m=r&zft?new Ez:void 0;for(a.set(e,t),a.set(t,e);++f=Npt&&(a=Az,s=!1,t=new Ez(t));e:for(;++n-1?n[a?t[s]:s]:void 0}}function CTe(e,t,r){var i=e==null?0:e.length;if(!i)return-1;var n=r==null?0:_T(r);return n<0&&(n=zpt(i+n,0)),Dxe(e,iu(t,3),n)}function kTe(e){return e&&e.length?e[0]:void 0}function wTe(e,t){var r=-1,i=ru(e)?Array(e.length):[];return rm(e,function(n,a,s){i[++r]=t(n,a,s)}),i}function STe(e,t){var r=Kr(e)?AT:Wpt;return r(e,iu(t,3))}function ETe(e,t){return Cz(nr(e,t),1)}function ATe(e,t){return e!=null&&Xpt.call(e,t)}function _Te(e,t){return e!=null&&H2e(e,t,Kpt)}function DTe(e){return typeof e=="string"||!Kr(e)&&Yl(e)&&Tf(e)==Zpt}function RTe(e,t){return AT(t,function(r){return e[r]})}function LTe(e){return e==null?[]:Qpt(e,po(e))}function MTe(e,t,r,i){e=ru(e)?e:Hn(e),r=r&&!i?_T(r):0;var n=e.length;return r<0&&(r=Jpt(n+r,0)),Vs(e)?r<=n&&e.indexOf(t,r)>-1:!!n&&fz(e,t,r)>-1}function NTe(e,t,r){var i=e==null?0:e.length;if(!i)return-1;var n=r==null?0:_T(r);return n<0&&(n=e0t(i+n,0)),fz(e,t,n)}function ITe(e){if(e==null)return!0;if(ru(e)&&(Kr(e)||typeof e=="string"||typeof e.splice=="function"||aT(e)||yz(e)||dA(e)))return!e.length;var t=ey(e);if(t==t0t||t==r0t)return!e.size;if(LT(e))return!sbe(e).length;for(var r in e)if(n0t.call(e,r))return!1;return!0}function OTe(e){return Yl(e)&&Tf(e)==a0t}function PTe(e){return e===void 0}function BTe(e){if(typeof e!="function")throw new TypeError(l0t);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function FTe(e,t,r,i){if(!tl(e))return e;t=xA(t,e);for(var n=-1,a=t.length,s=a-1,l=e;l!=null&&++n=y0t){var h=t?null:g0t(e);if(h)return _z(h);s=!1,n=Az,u=new Ez}else u=t?[]:l;e:for(;++iuT(i,t)):e instanceof us&&fs(t,e)?!1:e instanceof nu?(e instanceof us&&t.push(e),Hl(e.definition,i=>uT(i,t))):!1}function JTe(e){return e instanceof Us}function Gl(e){if(e instanceof us)return"SUBRULE";if(e instanceof Ca)return"OPTION";if(e instanceof Us)return"OR";if(e instanceof yo)return"AT_LEAST_ONE";if(e instanceof vo)return"AT_LEAST_ONE_SEP";if(e instanceof qs)return"MANY_SEP";if(e instanceof hn)return"MANY";if(e instanceof Wi)return"CONSUME";throw Error("non exhaustive match")}function bF(e,t,r){return[new Ca({definition:[new Wi({terminalType:e.separator})].concat(e.definition)})].concat(t,r)}function cy(e){if(e instanceof us)return cy(e.referencedRule);if(e instanceof Wi)return rCe(e);if(QTe(e))return eCe(e);if(JTe(e))return tCe(e);throw Error("non exhaustive match")}function eCe(e){let t=[],r=e.definition,i=0,n=r.length>i,a,s=!0;for(;n&&s;)a=r[i],s=uT(a),t=t.concat(cy(a)),i=i+1,n=r.length>i;return Lz(t)}function tCe(e){let t=nr(e.definition,r=>cy(r));return Lz(Ul(t))}function rCe(e){return[e.terminalType]}function nCe(e){let t={};return vr(e,r=>{let i=new x0t(r).startWalking();mo(t,i)}),t}function aCe(e,t){return e.name+t+iCe}function OT(e){let t=e.toString();if(WE.hasOwnProperty(t))return WE[t];{let r=b0t.pattern(t);return WE[t]=r,r}}function sCe(){WE={}}function lCe(e,t=!1){try{let r=OT(e);return E5(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===oCe)t&&Mz(`${S5} Unable to optimize: < ${e.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let i="";t&&(i=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),w5(`${S5} + Failed parsing: < ${e.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+i)}}return[]}function E5(e,t,r){switch(e.type){case"Disjunction":for(let n=0;n{if(typeof u=="number")O2(u,t,r);else{let h=u;if(r===!0)for(let d=h.from;d<=h.to;d++)O2(d,t,r);else{for(let d=h.from;d<=h.to&&d=B2){let d=h.from>=B2?h.from:B2,f=h.to,p=fh(d),m=fh(f);for(let g=p;g<=m;g++)t[g]=g}}}});break;case"Group":E5(s.value,t,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&A5(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return Hn(t)}function O2(e,t,r){let i=fh(e);t[i]=i,r===!0&&cCe(e,t)}function cCe(e,t){let r=String.fromCharCode(e),i=r.toUpperCase();if(i!==r){let n=fh(i.charCodeAt(0));t[n]=n}else{let n=r.toLowerCase();if(n!==r){let a=fh(n.charCodeAt(0));t[a]=a}}}function TF(e,t){return ty(e.value,r=>{if(typeof r=="number")return fs(t,r);{let i=r;return ty(t,n=>i.from<=n&&n<=i.to)!==void 0}})}function A5(e){let t=e.quantifier;return t&&t.atLeast===0?!0:e.value?Kr(e.value)?Hl(e.value,A5):A5(e.value):!1}function kA(e,t){if(t instanceof RegExp){let r=OT(t),i=new T0t(e);return i.visit(r),i.found}else return ty(t,r=>fs(e,r.charCodeAt(0)))!==void 0}function hCe(e,t){t=Rz(t,{useSticky:uCe,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:S((b,T)=>T(),"tracer")});let r=t.tracer;r("initCharCodeToOptimizedIndexMap",()=>{MCe()});let i;r("Reject Lexer.NA",()=>{i=TA(e,b=>b[G0]===ls.NA)});let n=!1,a;r("Transform Patterns",()=>{n=!1,a=nr(i,b=>{let T=b[G0];if(hh(T)){let w=T.source;return w.length===1&&w!=="^"&&w!=="$"&&w!=="."&&!T.ignoreCase?w:w.length===2&&w[0]==="\\"&&!fs(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],w[1])?w[1]:t.useSticky?kF(T):CF(T)}else{if(vh(T))return n=!0,{exec:T};if(typeof T=="object")return n=!0,T;if(typeof T=="string"){if(T.length===1)return T;{let w=T.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),C=new RegExp(w);return t.useSticky?kF(C):CF(C)}}else throw Error("non exhaustive match")}})});let s,l,u,h,d;r("misc mapping",()=>{s=nr(i,b=>b.tokenTypeIdx),l=nr(i,b=>{let T=b.GROUP;if(T!==ls.SKIPPED){if(Vs(T))return T;if(dh(T))return!1;throw Error("non exhaustive match")}}),u=nr(i,b=>{let T=b.LONGER_ALT;if(T)return Kr(T)?nr(T,C=>K1e(i,C)):[K1e(i,T)]}),h=nr(i,b=>b.PUSH_MODE),d=nr(i,b=>mr(b,"POP_MODE"))});let f;r("Line Terminator Handling",()=>{let b=Bz(t.lineTerminatorCharacters);f=nr(i,T=>!1),t.positionTracking!=="onlyOffset"&&(f=nr(i,T=>mr(T,"LINE_BREAKS")?!!T.LINE_BREAKS:Pz(T,b)===!1&&kA(b,T.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=nr(i,Oz),m=nr(a,RCe),g=go(i,(b,T)=>{let w=T.GROUP;return Vs(w)&&w!==ls.SKIPPED&&(b[w]=[]),b},{}),y=nr(a,(b,T)=>({pattern:a[T],longerAlt:u[T],canLineTerminator:f[T],isCustom:p[T],short:m[T],group:l[T],push:h[T],pop:d[T],tokenTypeIdx:s[T],tokenType:i[T]}))});let v=!0,x=[];return t.safeMode||r("First Char Optimization",()=>{x=go(i,(b,T,w)=>{if(typeof T.PATTERN=="string"){let C=T.PATTERN.charCodeAt(0),k=fh(C);qE(b,k,y[w])}else if(Kr(T.START_CHARS_HINT)){let C;vr(T.START_CHARS_HINT,k=>{let E=typeof k=="string"?k.charCodeAt(0):k,A=fh(E);C!==A&&(C=A,qE(b,A,y[w]))})}else if(hh(T.PATTERN))if(T.PATTERN.unicode)v=!1,t.ensureOptimizations&&w5(`${S5} Unable to analyze < ${T.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let C=lCe(T.PATTERN,t.ensureOptimizations);Oi(C)&&(v=!1),vr(C,k=>{qE(b,k,y[w])})}else t.ensureOptimizations&&w5(`${S5} TokenType: <${T.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:n,canBeOptimized:v}}function dCe(e,t){let r=[],i=pCe(e);r=r.concat(i.errors);let n=mCe(i.valid),a=n.valid;return r=r.concat(n.errors),r=r.concat(fCe(a)),r=r.concat(TCe(a)),r=r.concat(CCe(a,t)),r=r.concat(kCe(a)),r}function fCe(e){let t=[],r=il(e,i=>hh(i[G0]));return t=t.concat(gCe(r)),t=t.concat(vCe(r)),t=t.concat(xCe(r)),t=t.concat(bCe(r)),t=t.concat(yCe(r)),t}function pCe(e){let t=il(e,n=>!mr(n,G0)),r=nr(t,n=>({message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:dn.MISSING_PATTERN,tokenTypes:[n]})),i=bA(e,t);return{errors:r,valid:i}}function mCe(e){let t=il(e,n=>{let a=n[G0];return!hh(a)&&!vh(a)&&!mr(a,"exec")&&!Vs(a)}),r=nr(t,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:dn.INVALID_PATTERN,tokenTypes:[n]})),i=bA(e,t);return{errors:r,valid:i}}function gCe(e){class t extends tA{static{o(this,"EndAnchorFinder")}static{S(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=il(e,n=>{let a=n.PATTERN;try{let s=OT(a),l=new t;return l.visit(s),l.found}catch{return C0t.test(a.source)}});return nr(r,n=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:dn.EOI_ANCHOR_FOUND,tokenTypes:[n]}))}function yCe(e){let t=il(e,i=>i.PATTERN.test(""));return nr(t,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:dn.EMPTY_MATCH_PATTERN,tokenTypes:[i]}))}function vCe(e){class t extends tA{static{o(this,"StartAnchorFinder")}static{S(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=il(e,n=>{let a=n.PATTERN;try{let s=OT(a),l=new t;return l.visit(s),l.found}catch{return k0t.test(a.source)}});return nr(r,n=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:dn.SOI_ANCHOR_FOUND,tokenTypes:[n]}))}function xCe(e){let t=il(e,i=>{let n=i[G0];return n instanceof RegExp&&(n.multiline||n.global)});return nr(t,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:dn.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}))}function bCe(e){let t=[],r=nr(e,a=>go(e,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!fs(t,l)&&l.PATTERN!==ls.NA&&(t.push(l),s.push(l)),s),[]));r=IT(r);let i=il(r,a=>a.length>1);return nr(i,a=>{let s=nr(a,u=>u.name);return{message:`The same RegExp pattern ->${jl(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:dn.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function TCe(e){let t=il(e,i=>{if(!mr(i,"GROUP"))return!1;let n=i.GROUP;return n!==ls.SKIPPED&&n!==ls.NA&&!Vs(n)});return nr(t,i=>({message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:dn.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}))}function CCe(e,t){let r=il(e,n=>n.PUSH_MODE!==void 0&&!fs(t,n.PUSH_MODE));return nr(r,n=>({message:`Token Type: ->${n.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${n.PUSH_MODE}<-which does not exist`,type:dn.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}))}function kCe(e){let t=[],r=go(e,(i,n,a)=>{let s=n.PATTERN;return s===ls.NA||(Vs(s)?i.push({str:s,idx:a,tokenType:n}):hh(s)&&SCe(s)&&i.push({str:s.source,idx:a,tokenType:n})),i},[]);return vr(e,(i,n)=>{vr(r,({str:a,idx:s,tokenType:l})=>{if(n${l.name}<- can never be matched. +Because it appears AFTER the Token Type ->${i.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:u,type:dn.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),t}function wCe(e,t){if(hh(t)){if(ECe(t))return!1;let r=t.exec(e);return r!==null&&r.index===0}else{if(vh(t))return t(e,0,[],{});if(mr(t,"exec"))return t.exec(e,0,[],{});if(typeof t=="string")return t===e;throw Error("non exhaustive match")}}function SCe(e){return ty([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>e.source.indexOf(r)!==-1)===void 0}function ECe(e){return/(\(\?=)|(\(\?!)|(\(\?<=)|(\(\? property in its definition +`,type:dn.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),mr(e,yE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+yE+`> property in its definition +`,type:dn.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),mr(e,yE)&&mr(e,P2)&&!mr(e.modes,e.defaultMode)&&i.push({message:`A MultiMode Lexer cannot be initialized with a ${P2}: <${e.defaultMode}>which does not exist +`,type:dn.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),mr(e,yE)&&vr(e.modes,(n,a)=>{vr(n,(s,l)=>{if(dh(s))i.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}> +`,type:dn.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(mr(s,"LONGER_ALT")){let u=Kr(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];vr(u,h=>{!dh(h)&&!fs(n,h)&&i.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}> +`,type:dn.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),i}function _Ce(e,t,r){let i=[],n=!1,a=IT(Ul(Hn(e.modes))),s=TA(a,u=>u[G0]===ls.NA),l=Bz(r);return t&&vr(s,u=>{let h=Pz(u,l);if(h!==!1){let f={message:LCe(u,h),type:h.issue,tokenType:u};i.push(f)}else mr(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(n=!0):kA(l,u.PATTERN)&&(n=!0)}),t&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:dn.NO_LINE_BREAKS_FLAGS}),i}function DCe(e){let t={},r=po(e);return vr(r,i=>{let n=e[i];if(Kr(n))t[i]=[];else throw Error("non exhaustive match")}),t}function Oz(e){let t=e.PATTERN;if(hh(t))return!1;if(vh(t))return!0;if(mr(t,"exec"))return!0;if(Vs(t))return!1;throw Error("non exhaustive match")}function RCe(e){return Vs(e)&&e.length===1?e.charCodeAt(0):!1}function Pz(e,t){if(mr(e,"LINE_BREAKS"))return!1;if(hh(e.PATTERN)){try{kA(t,e.PATTERN)}catch(r){return{issue:dn.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(Vs(e.PATTERN))return!1;if(Oz(e))return{issue:dn.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function LCe(e,t){if(t.issue===dn.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${e.name}> Token Type + Root cause: ${t.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===dn.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${e.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Bz(e){return nr(e,r=>Vs(r)?r.charCodeAt(0):r)}function qE(e,t,r){e[t]===void 0?e[t]=[r]:e[t].push(r)}function fh(e){return e255?255+~~(e/255):e}}function uy(e,t){let r=e.tokenTypeIdx;return r===t.tokenTypeIdx?!0:t.isParent===!0&&t.categoryMatchesMap[r]===!0}function hT(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}function hy(e){let t=ICe(e);OCe(t),BCe(t),PCe(t),vr(t,r=>{r.isParent=r.categoryMatches.length>0})}function ICe(e){let t=ka(e),r=e,i=!0;for(;i;){r=IT(Ul(nr(r,a=>a.CATEGORIES)));let n=bA(r,t);t=t.concat(n),Oi(n)?i=!1:r=n}return t}function OCe(e){vr(e,t=>{$z(t)||(NCe[Q1e]=t,t.tokenTypeIdx=Q1e++),wF(t)&&!Kr(t.CATEGORIES)&&(t.CATEGORIES=[t.CATEGORIES]),wF(t)||(t.CATEGORIES=[]),FCe(t)||(t.categoryMatches=[]),$Ce(t)||(t.categoryMatchesMap={})})}function PCe(e){vr(e,t=>{t.categoryMatches=[],vr(t.categoryMatchesMap,(r,i)=>{t.categoryMatches.push(NCe[i].tokenTypeIdx)})})}function BCe(e){vr(e,t=>{Fz([],t)})}function Fz(e,t){vr(e,r=>{t.categoryMatchesMap[r.tokenTypeIdx]=!0}),vr(t.CATEGORIES,r=>{let i=e.concat(t);fs(i,r)||Fz(i,r)})}function $z(e){return mr(e,"tokenTypeIdx")}function wF(e){return mr(e,"CATEGORIES")}function FCe(e){return mr(e,"categoryMatches")}function $Ce(e){return mr(e,"categoryMatchesMap")}function zCe(e){return mr(e,"tokenTypeIdx")}function B0(e){return zz(e)?e.LABEL:e.name}function zz(e){return Vs(e.LABEL)&&e.LABEL!==""}function q1(e){return GCe(e)}function GCe(e){let t=e.pattern,r={};if(r.name=e.name,dh(t)||(r.PATTERN=t),mr(e,S0t))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return mr(e,J1e)&&(r.CATEGORIES=e[J1e]),hy([r]),mr(e,eye)&&(r.LABEL=e[eye]),mr(e,tye)&&(r.GROUP=e[tye]),mr(e,iye)&&(r.POP_MODE=e[iye]),mr(e,rye)&&(r.PUSH_MODE=e[rye]),mr(e,nye)&&(r.LONGER_ALT=e[nye]),mr(e,aye)&&(r.LINE_BREAKS=e[aye]),mr(e,sye)&&(r.START_CHARS_HINT=e[sye]),r}function PT(e,t,r,i,n,a,s,l){return{image:t,startOffset:r,endOffset:i,startLine:n,endLine:a,startColumn:s,endColumn:l,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function Gz(e,t){return uy(e,t)}function VCe(e,t){let r=new A0t(e,t);return r.resolveRefs(),r.errors}function _5(e,t,r=[]){r=ka(r);let i=[],n=0;function a(l){return l.concat(Ta(e,n+1))}o(a,"remainingPathWith"),S(a,"remainingPathWith");function s(l){let u=_5(a(l),t,r);return i.concat(u)}for(o(s,"getAlternativesForProd"),S(s,"getAlternativesForProd");r.length{Oi(u.definition)===!1&&(i=s(u.definition))}),i;if(l instanceof Wi)r.push(l.terminalType);else throw Error("non exhaustive match")}n++}return i.push({partialPath:r,suffixDef:Ta(e,n)}),i}function Vz(e,t,r,i){let n="EXIT_NONE_TERMINAL",a=[n],s="EXIT_ALTERNATIVE",l=!1,u=t.length,h=u-i-1,d=[],f=[];for(f.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!Oi(f);){let p=f.pop();if(p===s){l&&z0(f).idx<=h&&f.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(Oi(m))continue;let x=m[0];if(x===n){let b={idx:g,def:Ta(m),ruleStack:cT(y),occurrenceStack:cT(v)};f.push(b)}else if(x instanceof Wi)if(g=0;b--){let T=x.definition[b],w={idx:g,def:T.definition.concat(Ta(m)),ruleStack:y,occurrenceStack:v};f.push(w),f.push(s)}else if(x instanceof Ws)f.push({idx:g,def:x.definition.concat(Ta(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof oy)f.push(WCe(x,g,y,v));else throw Error("non exhaustive match")}return d}function WCe(e,t,r,i){let n=ka(r);n.push(e.name);let a=ka(i);return a.push(1),{idx:t,def:e.definition,ruleStack:n,occurrenceStack:a}}function SA(e){if(e instanceof Ca||e==="Option")return en.OPTION;if(e instanceof hn||e==="Repetition")return en.REPETITION;if(e instanceof yo||e==="RepetitionMandatory")return en.REPETITION_MANDATORY;if(e instanceof vo||e==="RepetitionMandatoryWithSeparator")return en.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof qs||e==="RepetitionWithSeparator")return en.REPETITION_WITH_SEPARATOR;if(e instanceof Us||e==="Alternation")return en.ALTERNATION;throw Error("non exhaustive match")}function EF(e){let{occurrence:t,rule:r,prodType:i,maxLookahead:n}=e,a=SA(i);return a===en.ALTERNATION?BT(t,r,n):FT(t,r,a,n)}function qCe(e,t,r,i,n,a){let s=BT(e,t,r),l=qz(s)?hT:uy;return a(s,i,l,n)}function UCe(e,t,r,i,n,a){let s=FT(e,t,n,r),l=qz(s)?hT:uy;return a(s[0],l,i)}function HCe(e,t,r,i){let n=e.length,a=Hl(e,s=>Hl(s,l=>l.length===1));if(t)return function(s){let l=nr(s,u=>u.GATE);for(let u=0;uUl(u)),l=go(s,(u,h,d)=>(vr(h,f=>{mr(u,f.tokenTypeIdx)||(u[f.tokenTypeIdx]=d),vr(f.categoryMatches,p=>{mr(u,p)||(u[p]=d)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;sa.length===1),n=e.length;if(i&&!r){let a=Ul(e);if(a.length===1&&Oi(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=go(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,vr(u.categoryMatches,d=>{l[d]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){e:for(let a=0;a_5([s],1)),i=AF(r.length),n=nr(r,s=>{let l={};return vr(s,u=>{let h=HE(u.partialPath);vr(h,d=>{l[d]=!0})}),l}),a=r;for(let s=1;s<=t;s++){let l=a;a=AF(l.length);for(let u=0;u{let x=HE(v.partialPath);vr(x,b=>{n[u][b]=!0})})}}}}return i}function BT(e,t,r,i){let n=new jCe(e,en.ALTERNATION,i);return t.accept(n),Wz(n.result,r)}function FT(e,t,r,i){let n=new jCe(e,r);t.accept(n);let a=n.result,l=new M0t(t,e,r).startWalking(),u=new Ws({definition:a}),h=new Ws({definition:l});return Wz([u,h],i)}function D5(e,t){e:for(let r=0;r{let n=t[i];return r===n||n.categoryMatchesMap[r.tokenTypeIdx]})}function qz(e){return Hl(e,t=>Hl(t,r=>Hl(r,i=>Oi(i.categoryMatches))))}function ZCe(e){let t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return nr(t,r=>Object.assign({type:hs.CUSTOM_LOOKAHEAD_VALIDATION},r))}function QCe(e,t,r,i){let n=Jo(e,u=>JCe(u,r)),a=cke(e,t,r),s=Jo(e,u=>ake(u,r)),l=Jo(e,u=>tke(u,e,i,r));return n.concat(a,s,l)}function JCe(e,t){let r=new N0t;e.accept(r);let i=r.allProductions,n=Ypt(i,eke),a=Xl(n,l=>l.length>1);return nr(Hn(a),l=>{let u=jl(l),h=t.buildDuplicateFoundError(e,l),d=Gl(u),f={message:h,type:hs.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:d,occurrence:u.idx},p=Uz(u);return p&&(f.parameter=p),f})}function eke(e){return`${Gl(e)}_#_${e.idx}_#_${Uz(e)}`}function Uz(e){return e instanceof Wi?e.terminalType.name:e instanceof us?e.nonTerminalName:""}function tke(e,t,r,i){let n=[];if(go(t,(s,l)=>l.name===e.name?s+1:s,0)>1){let s=i.buildDuplicateRuleNameError({topLevelRule:e,grammarName:r});n.push({message:s,type:hs.DUPLICATE_RULE_NAME,ruleName:e.name})}return n}function rke(e,t,r){let i=[],n;return fs(t,e)||(n=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,i.push({message:n,type:hs.INVALID_RULE_OVERRIDE,ruleName:e})),i}function Hz(e,t,r,i=[]){let n=[],a=Z2(t.definition);if(Oi(a))return[];{let s=e.name;fs(a,e)&&n.push({message:r.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:i}),type:hs.LEFT_RECURSION,ruleName:s});let u=bA(a,i.concat([e])),h=Jo(u,d=>{let f=ka(i);return f.push(d),Hz(e,d,r,f)});return n.concat(h)}}function Z2(e){let t=[];if(Oi(e))return t;let r=jl(e);if(r instanceof us)t.push(r.referencedRule);else if(r instanceof Ws||r instanceof Ca||r instanceof yo||r instanceof vo||r instanceof qs||r instanceof hn)t=t.concat(Z2(r.definition));else if(r instanceof Us)t=Ul(nr(r.definition,a=>Z2(a.definition)));else if(!(r instanceof Wi))throw Error("non exhaustive match");let i=uT(r),n=e.length>1;if(i&&n){let a=Ta(e);return t.concat(Z2(a))}else return t}function ike(e,t){let r=new Yz;e.accept(r);let i=r.alternations;return Jo(i,a=>{let s=cT(a.definition);return Jo(s,(l,u)=>{let h=Vz([l],[],uy,1);return Oi(h)?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:a,emptyChoiceIdx:u}),type:hs.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:a.idx,alternative:u+1}]:[]})})}function nke(e,t,r){let i=new Yz;e.accept(i);let n=i.alternations;return n=TA(n,s=>s.ignoreAmbiguities===!0),Jo(n,s=>{let l=s.idx,u=s.maxLookahead||t,h=BT(l,e,u,s),d=oke(h,s,e,r),f=lke(h,s,e,r);return d.concat(f)})}function ake(e,t){let r=new Yz;e.accept(r);let i=r.alternations;return Jo(i,a=>a.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:a}),type:hs.TOO_MANY_ALTS,ruleName:e.name,occurrence:a.idx}]:[])}function ske(e,t,r){let i=[];return vr(e,n=>{let a=new I0t;n.accept(a);let s=a.allProductions;vr(s,l=>{let u=SA(l),h=l.maxLookahead||t,d=l.idx,p=FT(d,n,u,h)[0];if(Oi(Ul(p))){let m=r.buildEmptyRepetitionError({topLevelRule:n,repetition:l});i.push({message:m,type:hs.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}function oke(e,t,r,i){let n=[],a=go(e,(l,u,h)=>(t.definition[h].ignoreAmbiguities===!0||vr(u,d=>{let f=[h];vr(e,(p,m)=>{h!==m&&D5(p,d)&&t.definition[m].ignoreAmbiguities!==!0&&f.push(m)}),f.length>1&&!D5(n,d)&&(n.push(d),l.push({alts:f,path:d}))}),l),[]);return nr(a,l=>{let u=nr(l.alts,d=>d+1);return{message:i.buildAlternationAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:u,prefixPath:l.path}),type:hs.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:t.idx,alternatives:l.alts}})}function lke(e,t,r,i){let n=go(e,(s,l,u)=>{let h=nr(l,d=>({idx:u,path:d}));return s.concat(h)},[]);return IT(Jo(n,s=>{if(t.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,d=il(n,p=>t.definition[p.idx].ignoreAmbiguities!==!0&&p.idx{let m=[p.idx+1,u+1],g=t.idx===0?"":t.idx;return{message:i.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:m,prefixPath:p.path}),type:hs.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function cke(e,t,r){let i=[],n=nr(t,a=>a.name);return vr(e,a=>{let s=a.name;if(fs(n,s)){let l=r.buildNamespaceConflictError(a);i.push({message:l,type:hs.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),i}function uke(e){let t=Rz(e,{errMsgProvider:E0t}),r={};return vr(e.rules,i=>{r[i.name]=i}),VCe(r,t.errMsgProvider)}function hke(e){return e=Rz(e,{errMsgProvider:I0}),QCe(e.rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}function dT(e){return fs(gke,e.name)}function xke(e,t,r,i,n,a,s){let l=this.getKeyForAutomaticLookahead(i,n),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,n).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,d=u.occurrence,f=u.isEndOfRule;this.RULE_STACK.length===1&&f&&h===void 0&&(h=gf,d=1),!(h===void 0||d===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,d,s)&&this.tryInRepetitionRecovery(e,t,r,h)}function jE(e,t,r){return r|t|e}function Cke(e){vE.reset(),e.accept(vE);let t=vE.dslMethods;return vE.reset(),t}function LF(e,t){isNaN(e.startOffset)===!0?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffsets.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${a.join(` + +`).replace(/\n/g,` + `)}`)}},"validateVisitor")};return r.prototype=i,r.prototype.constructor=r,r._RULE_NAMES=t,r}function Ake(e,t,r){let i=S(function(){},"derivedConstructor");Xz(i,e+"BaseSemanticsWithDefaults");let n=Object.create(r.prototype);return vr(t,a=>{n[a]=Ske}),i.prototype=n,i.prototype.constructor=i,i}function _ke(e,t){return Dke(e,t)}function Dke(e,t){let r=il(t,n=>vh(e[n])===!1),i=nr(r,n=>({msg:`Missing visitor method: <${n}> on ${e.constructor.name} CST Visitor.`,type:NF.MISSING_METHOD,methodName:n}));return IT(i)}function L1(e,t,r,i=!1){fT(r);let n=z0(this.recordingProdStack),a=vh(t)?t:t.DEF,s=new e({definition:[],idx:r});return i&&(s.separator=t.SEP),mr(t,"MAX_LOOKAHEAD")&&(s.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),n.definition.push(s),this.recordingProdStack.pop(),AA}function Mke(e,t){fT(t);let r=z0(this.recordingProdStack),i=Kr(e)===!1,n=i===!1?e:e.DEF,a=new Us({definition:[],idx:t,ignoreAmbiguities:i&&e.IGNORE_AMBIGUITIES===!0});mr(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD);let s=HTe(n,l=>vh(l.GATE));return a.hasPredicates=s,r.definition.push(a),vr(n,l=>{let u=new Ws({definition:[]});a.definition.push(u),mr(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:mr(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),AA}function IF(e){return e===0?"":`${e}`}function fT(e){if(e<0||e>uye){let t=new Error(`Invalid DSL Method idx value: <${e}> + Idx value must be a none negative value smaller than ${uye+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}function Nke(e,t){t.forEach(r=>{let i=r.prototype;Object.getOwnPropertyNames(i).forEach(n=>{if(n==="constructor")return;let a=Object.getOwnPropertyDescriptor(i,n);a&&(a.get||a.set)?Object.defineProperty(e.prototype,n,a):e.prototype[n]=r.prototype[n]})})}function OF(e=void 0){return function(){return e}}function Oke(e,t){for(var r=-1,i=e==null?0:e.length,n=Array(i);++r-1}function qke(e,t){var r=this.__data__,i=_A(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}function im(e){var t=-1,r=e==null?0:e.length;for(this.clear();++tl))return!1;var h=a.get(e),d=a.get(t);if(h&&d)return h==t&&d==e;var f=-1,p=!0,m=r&fgt?new kwe:void 0;for(a.set(e,t),a.set(t,e);++f-1&&e%1==0&&e-1&&e%1==0&&e<=jgt}function Ywe(e){return ry(e)&&Jz(e.length)&&!!Vi[dy(e)]}function jwe(e){return function(t){return e(t)}}function Kwe(e,t){var r=ds(e),i=!r&&MA(e),n=!r&&!i&&M5(e),a=!r&&!i&&!n&&eG(e),s=r||i||n||a,l=s?Bgt(e.length,String):[],u=l.length;for(var h in e)(t||S1t.call(e,h))&&!(s&&(h=="length"||n&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Uwe(h,u)))&&l.push(h);return l}function Zwe(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||A1t;return e===r}function Jwe(e,t){return function(r){return e(t(r))}}function e4e(e){if(!Qwe(e))return R1t(e);var t=[];for(var r in Object(e))M1t.call(e,r)&&r!="constructor"&&t.push(r);return t}function r4e(e){return e!=null&&Jz(e.length)&&!rwe(e)}function i4e(e){return NA(e)?E1t(e):t4e(e)}function n4e(e){return Lgt(e,tG,Pgt)}function a4e(e,t,r,i,n,a){var s=r&N1t,l=Cye(e),u=l.length,h=Cye(t),d=h.length;if(u!=d&&!s)return!1;for(var f=u;f--;){var p=l[f];if(!(s?p in t:O1t.call(t,p)))return!1}var m=a.get(e),g=a.get(t);if(m&&g)return m==t&&g==e;var y=!0;a.set(e,t),a.set(t,e);for(var v=s;++fcG(e,t,s));return lm(e,t,i,r,...n)}function Q4e(e,t,r){let i=Yn(e,t,r,{type:yf});bh(e,i);let n=lm(e,t,i,r,kf(e,t,r));return J4e(e,t,r,n)}function kf(e,t,r){let i=Iyt(sh(r.definition,n=>cG(e,t,n)),n=>n!==void 0);return i.length===1?i[0]:i.length===0?void 0:tSe(e,i)}function uG(e,t,r,i,n){let a=i.left,s=i.right,l=Yn(e,t,r,{type:$yt});bh(e,l);let u=Yn(e,t,r,{type:W4e});return a.loopback=l,u.loopback=l,e.decisionMap[V0(t,n?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,vn(s,l),n===void 0?(vn(l,a),vn(l,u)):(vn(l,u),vn(l,n.left),vn(n.right,a)),{left:a,right:u}}function hG(e,t,r,i,n){let a=i.left,s=i.right,l=Yn(e,t,r,{type:Fyt});bh(e,l);let u=Yn(e,t,r,{type:W4e}),h=Yn(e,t,r,{type:Byt});return l.loopback=h,u.loopback=h,vn(l,a),vn(l,u),vn(s,h),n!==void 0?(vn(h,u),vn(h,n.left),vn(n.right,a)):vn(h,l),e.decisionMap[V0(t,n?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function J4e(e,t,r,i){let n=i.left,a=i.right;return vn(n,a),e.decisionMap[V0(t,"Option",r.idx)]=n,i}function bh(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function lm(e,t,r,i,...n){let a=Yn(e,t,i,{type:Pyt,start:r});r.end=a;for(let l of n)l!==void 0?(vn(r,l.left),vn(l.right,a)):vn(r,a);let s={left:r,right:a};return e.decisionMap[V0(t,eSe(i),i.idx)]=r,s}function eSe(e){if(e instanceof Us)return"Alternation";if(e instanceof Ca)return"Option";if(e instanceof hn)return"Repetition";if(e instanceof qs)return"RepetitionWithSeparator";if(e instanceof yo)return"RepetitionMandatory";if(e instanceof vo)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function tSe(e,t){let r=t.length;for(let a=0;ar.stateNumber.toString()).join("_")}`}function aSe(e,t,r){for(var i=-1,n=e.length;++i0&&r(l)?t>1?fG(l,t-1,r,i,n):Nwe(n,l):i||(n[n.length]=l)}return n}function uSe(e,t){return cSe(sh(e,t),1)}function hSe(e,t,r,i){for(var n=e.length,a=r+(i?1:-1);i?a--:++a-1}function gSe(e,t,r){for(var i=-1,n=e==null?0:e.length;++i=tvt){var h=t?null:evt(e);if(h)return Qz(h);s=!1,n=Ewe,u=new kwe}else u=t?[]:l;e:for(;++i{let n=i.toString(),a=r[n];return a!==void 0||(a={atnStartState:e,decision:t,states:{}},r[n]=a),a}}function GF(e,t=!0){let r=new Set;for(let i of e){let n=new Set;for(let a of i){if(a===void 0){if(t)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!n.has(l))return!1}else r.add(l),n.add(l)}}return!0}function RSe(e){let t=e.decisionStates.length,r=Array(t);for(let i=0;iB0(n)).join(", "),r=e.production.idx===0?"":e.production.idx,i=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${OSe(e.production)}${r}> inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +`;return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i}function OSe(e){if(e instanceof us)return"SUBRULE";if(e instanceof Ca)return"OPTION";if(e instanceof Us)return"OR";if(e instanceof yo)return"AT_LEAST_ONE";if(e instanceof vo)return"AT_LEAST_ONE_SEP";if(e instanceof qs)return"MANY_SEP";if(e instanceof hn)return"MANY";if(e instanceof Wi)return"CONSUME";throw Error("non exhaustive match")}function PSe(e,t,r){let i=qyt(t.configs.elements,a=>a.state.transitions),n=ivt(i.filter(a=>a instanceof oG).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:n,tokenPath:e}}function BSe(e,t){return e.edges[t.tokenTypeIdx]}function FSe(e,t,r){let i=new zF,n=[];for(let s of e.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===$T){n.push(s);continue}let l=s.state.transitions.length;for(let u=0;u0&&!WSe(a))for(let s of n)a.add(s);return a}function $Se(e,t){if(e instanceof oG&&Gz(t,e.tokenType))return e.target}function zSe(e,t){let r;for(let i of e.elements)if(t.is(i.alt)===!0){if(r===void 0)r=i.alt;else if(r!==i.alt)return}return r}function pG(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function VF(e,t,r,i){return i=mG(e,i),t.edges[r.tokenTypeIdx]=i,i}function mG(e,t){if(t===N5)return t;let r=t.configs.key,i=e.states[r];return i!==void 0?i:(t.configs.finalize(),e.states[r]=t,t)}function GSe(e){let t=new zF,r=e.transitions.length;for(let i=0;i0){let n=[...e.stack],s={state:n.pop(),alt:e.alt,stack:n};yT(s,t)}else t.add(e);return}r.epsilonOnlyTransitions||t.add(e);let i=r.transitions.length;for(let n=0;n1)return!0;return!1}function jSe(e){for(let t of Array.from(e.values()))if(Object.keys(t).length===1)return!0;return!1}function ZE(e){return e.$type===O5}function VA(e,t,r){return r3e({parser:t,tokens:r,ruleNames:new Map},e),t}function r3e(e,t){let r=iA(t,!1),i=gi(t.rules).filter(cs).filter(a=>r.has(a));for(let a of i){let s={...e,consume:1,optional:1,subrule:1,many:1,or:1};e.parser.rule(a,vf(s,a.definition))}let n=gi(t.rules).filter(K1).filter(a=>r.has(a));for(let a of n)e.parser.rule(a,i3e(e,a))}function i3e(e,t){let r=t.call.rule.ref;if(!r)throw new Error("Could not resolve reference to infix operator rule: "+t.call.rule.$refText);if(rl(r))throw new Error("Cannot use terminal rule in infix expression");let i=t.operators.precedences.flatMap(m=>m.operators),n={$type:"Group",elements:[]},a={$container:n,$type:"Assignment",feature:"parts",operator:"+=",terminal:t.call},s={$container:n,$type:"Group",elements:[],cardinality:"*"};n.elements.push(a,s);let u={$container:s,$type:"Assignment",feature:"operators",operator:"+=",terminal:{$type:"Alternatives",elements:i}},h={...a,$container:s};s.elements.push(u,h);let f=i.map(m=>e.tokens[m.value]).map((m,g)=>({ALT:S(()=>e.parser.consume(g,m,u),"ALT")})),p;return m=>{p??(p=WA(e,r)),e.parser.subrule(0,p,!1,a,m),e.parser.many(0,{DEF:S(()=>{e.parser.alternatives(0,f),e.parser.subrule(1,p,!1,h,m)},"DEF")})}}function vf(e,t,r=!1){let i;if(ch(t))i=u3e(e,t);else if(pf(t))i=n3e(e,t);else if(lh(t))i=vf(e,t.terminal);else if(Y0(t))i=bG(e,t);else if(uh(t))i=a3e(e,t);else if(j5(t))i=o3e(e,t);else if(Q5(t))i=l3e(e,t);else if(j0(t))i=c3e(e,t);else if(k$(t)){let n=e.consume++;i=S(()=>e.parser.consume(n,gf,t),"method")}else throw new eA(t.$cstNode,`Unexpected element type: ${t.$type}`);return TG(e,r?void 0:vT(t),i,t.cardinality)}function n3e(e,t){let r=$0(t);return()=>e.parser.action(r,t)}function a3e(e,t){let r=t.rule.ref;if(H0(r)){let i=e.subrule++,n=cs(r)&&r.fragment,a=t.arguments.length>0?s3e(r,t.arguments):()=>({}),s;return l=>{s??(s=WA(e,r)),e.parser.subrule(i,s,n,t,a(l))}}else if(rl(r)){let i=e.consume++,n=P5(e,r.name);return()=>e.parser.consume(i,n,t)}else if(r)bf(r);else throw new eA(t.$cstNode,`Undefined rule: ${t.rule.$refText}`)}function s3e(e,t){if(t.some(i=>i.calledByName)){let i=t.map(n=>({parameterName:n.parameter?.ref?.name,predicate:Vl(n.value)}));return n=>{let a={};for(let{parameterName:s,predicate:l}of i)s&&(a[s]=l(n));return a}}else{let i=t.map(n=>Vl(n.value));return n=>{let a={};for(let s=0;st(i)||r(i)}else if(T$(e)){let t=Vl(e.left),r=Vl(e.right);return i=>t(i)&&r(i)}else if(E$(e)){let t=Vl(e.value);return r=>!t(r)}else if(A$(e)){let t=e.parameter.ref.name;return r=>r!==void 0&&r[t]===!0}else if(x$(e)){let t=!!e.true;return()=>t}bf(e)}function o3e(e,t){if(t.elements.length===1)return vf(e,t.elements[0]);{let r=[];for(let n of t.elements){let a={ALT:vf(e,n,!0)},s=vT(n);s&&(a.GATE=Vl(s)),r.push(a)}let i=e.or++;return n=>e.parser.alternatives(i,r.map(a=>{let s={ALT:S(()=>a.ALT(n),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(n)),s}))}}function l3e(e,t){if(t.elements.length===1)return vf(e,t.elements[0]);let r=[];for(let l of t.elements){let u={ALT:vf(e,l,!0)},h=vT(l);h&&(u.GATE=Vl(h)),r.push(u)}let i=e.or++,n=S((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=S(l=>e.parser.alternatives(i,r.map((u,h)=>{let d={ALT:S(()=>!0,"ALT")},f=e.parser;d.ALT=()=>{if(u.ALT(l),!f.isRecording()){let m=n(i,f);f.unorderedGroups.get(m)||f.unorderedGroups.set(m,[]);let g=f.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?d.GATE=()=>p(l):d.GATE=()=>!f.unorderedGroups.get(n(i,f))?.[h],d})),"alternatives"),s=TG(e,vT(t),a,"*");return l=>{s(l),e.parser.isRecording()||e.parser.unorderedGroups.delete(n(i,e.parser))}}function c3e(e,t){let r=t.elements.map(i=>vf(e,i));return i=>r.forEach(n=>n(i))}function vT(e){if(j0(e))return e.guardCondition}function bG(e,t,r=t.terminal){if(r)if(uh(r)&&cs(r.rule.ref)){let i=r.rule.ref,n=e.subrule++,a;return s=>{a??(a=WA(e,i)),e.parser.subrule(n,a,!1,t,s)}}else if(uh(r)&&rl(r.rule.ref)){let i=e.consume++,n=P5(e,r.rule.ref.name);return()=>e.parser.consume(i,n,t)}else if(ch(r)){let i=e.consume++,n=P5(e,r.value);return()=>e.parser.consume(i,n,t)}else throw new Error("Could not build cross reference parser");else{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);let n=oA(t.type.ref)?.terminal;if(!n)throw new Error("Could not find name assignment for type: "+$0(t.type.ref));return bG(e,t,n)}}function u3e(e,t){let r=e.consume++,i=e.tokens[t.value];if(!i)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(r,i,t)}function TG(e,t,r,i){let n=t&&Vl(t);if(!i)if(n){let a=e.or++;return s=>e.parser.alternatives(a,[{ALT:S(()=>r(s),"ALT"),GATE:S(()=>n(s),"GATE")},{ALT:OF(),GATE:S(()=>!n(s),"GATE")}])}else return r;if(i==="*"){let a=e.many++;return s=>e.parser.many(a,{DEF:S(()=>r(s),"DEF"),GATE:n?()=>n(s):void 0})}else if(i==="+"){let a=e.many++;if(n){let s=e.or++;return l=>e.parser.alternatives(s,[{ALT:S(()=>e.parser.atLeastOne(a,{DEF:S(()=>r(l),"DEF")}),"ALT"),GATE:S(()=>n(l),"GATE")},{ALT:OF(),GATE:S(()=>!n(l),"GATE")}])}else return s=>e.parser.atLeastOne(a,{DEF:S(()=>r(s),"DEF")})}else if(i==="?"){let a=e.optional++;return s=>e.parser.optional(a,{DEF:S(()=>r(s),"DEF"),GATE:n?()=>n(s):void 0})}else bf(i)}function WA(e,t){let r=h3e(e,t),i=e.parser.getRule(r);if(!i)throw new Error(`Rule "${r}" not found."`);return i}function h3e(e,t){if(H0(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let r=t,i=r.$container,n=t.$type;for(;!cs(i);)(j0(i)||j5(i)||Q5(i))&&(n=i.elements.indexOf(r).toString()+":"+n),r=i,i=i.$container;return n=i.name+":"+n,e.ruleNames.set(t,n),n}}function P5(e,t){let r=e.tokens[t];if(!r)throw new Error(`Token "${t}" not found."`);return r}function CG(e){let t=e.Grammar,r=e.parser.Lexer,i=new e3e(e);return VA(t,i,r.definition),i.finalize(),i}function kG(e){let t=wG(e);return t.finalize(),t}function wG(e){let t=e.Grammar,r=e.parser.Lexer,i=new QSe(e);return VA(t,i,r.definition)}function UA(){return new Promise(e=>{typeof setImmediate>"u"?setTimeout(e,0):setImmediate(e)})}function HA(){return QE=performance.now(),new Ii.CancellationTokenSource}function EG(e){d3e=e}function cm(e){return e===Zc}async function la(e){if(e===Ii.CancellationToken.None)return;let t=performance.now();if(t-QE>=d3e&&(QE=t,await UA(),QE=performance.now()),e.isCancellationRequested)throw Zc}function F5(e,t){if(e.length<=1)return e;let r=e.length/2|0,i=e.slice(0,r),n=e.slice(r);F5(i,t),F5(n,t);let a=0,s=0,l=0;for(;ar.line||t.line===r.line&&t.character>r.character?{start:r,end:t}:e}function f3e(e){let t=_G(e.range);return t!==e.range?{newText:e.newText,range:t}:e}function RG(e){return typeof e.name=="string"}function NG(e){return typeof e.$comment=="string"}function HF(e){return typeof e=="object"&&!!e&&("$ref"in e||"$error"in e)}function O0(e){return{code:e}}function IG(e){if(e.range)return e.range;let t;return typeof e.property=="string"?t=nA(e.node.$cstNode,e.property,e.index):typeof e.keyword=="string"&&(t=iz(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function J2(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function OG(e){switch(e){case"error":return O0(Qo.LexingError);case"warning":return O0(Qo.LexingWarning);case"info":return O0(Qo.LexingInfo);case"hint":return O0(Qo.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}function KA(e){return Array.isArray(e)&&(e.length===0||"name"in e[0])}function ZA(e){return e&&"modes"in e&&"defaultMode"in e}function G5(e){return!KA(e)&&!ZA(e)}function FG(e,t,r){let i,n;typeof e=="string"?(n=t,i=r):(n=e.range.start,i=t),n||(n=ai.create(0,0));let a=zG(e),s=QA(i),l=B3e({lines:a,position:n,options:s});return z3e({index:0,tokens:l,position:n})}function $G(e,t){let r=QA(t),i=zG(e);if(i.length===0)return!1;let n=i[0],a=i[i.length-1],s=r.start,l=r.end;return!!s?.exec(n)&&!!l?.exec(a)}function zG(e){let t="";return typeof e=="string"?t=e:t=e.text,t.split(Fve)}function B3e(e){let t=[],r=e.position.line,i=e.position.character;for(let n=0;n=l.length){if(t.length>0){let d=ai.create(r,i);t.push({type:"break",content:"",range:qr.create(d,d)})}}else{Fye.lastIndex=u;let d=Fye.exec(l);if(d){let f=d[0],p=d[1],m=ai.create(r,i+u),g=ai.create(r,i+u+f.length);t.push({type:"tag",content:p,range:qr.create(m,g)}),u+=f.length,u=V5(l,u)}if(u0&&t[t.length-1].type==="break"?t.slice(0,-1):t}function F3e(e,t,r,i){let n=[];if(e.length===0){let a=ai.create(r,i),s=ai.create(r,i+t.length);n.push({type:"text",content:t,range:qr.create(a,s)})}else{let a=0;for(let l of e){let u=l.index,h=t.substring(a,u);h.length>0&&n.push({type:"text",content:t.substring(a,u),range:qr.create(ai.create(r,a+i),ai.create(r,u+i))});let d=h.length+1,f=l[1];if(n.push({type:"inline-tag",content:f,range:qr.create(ai.create(r,a+d+i),ai.create(r,a+d+f.length+i))}),d+=f.length,l.length===4){d+=l[2].length;let p=l[3];n.push({type:"text",content:p,range:qr.create(ai.create(r,a+d+i),ai.create(r,a+d+p.length+i))})}else n.push({type:"text",content:"",range:qr.create(ai.create(r,a+d+i),ai.create(r,a+d+i))});a=u+l[0].length}let s=t.substring(a);s.length>0&&n.push({type:"text",content:s,range:qr.create(ai.create(r,a+i),ai.create(r,a+i+s.length))})}return n}function V5(e,t){let r=e.substring(t).match(Tvt);return r?t+r.index:e.length}function $3e(e){let t=e.match(Cvt);if(t&&typeof t.index=="number")return t.index}function z3e(e){let t=ai.create(e.position.line,e.position.character);if(e.tokens.length===0)return new $ye([],qr.create(t,t));let r=[];for(;e.index0){let s=V5(t,i);n=t.substring(s),t=t.substring(0,i)}return(e==="linkcode"||e==="link"&&r.link==="code")&&(n=`\`${n}\``),r.renderLink?.(t,n)??U3e(t,n)}}function U3e(e,t){try{return fo.parse(e,!0),`[${t}](${e})`}catch{return e}}function jF(e){return e.endsWith(` +`)?` +`:` + +`}function rn(e){return{documentation:{CommentProvider:S(t=>new j3e(t),"CommentProvider"),DocumentationProvider:S(t=>new Y3e(t),"DocumentationProvider")},parser:{AsyncParser:S(t=>new X3e(t),"AsyncParser"),GrammarConfig:S(t=>hz(t),"GrammarConfig"),LangiumParser:S(t=>kG(t),"LangiumParser"),CompletionParser:S(t=>CG(t),"CompletionParser"),ValueConverter:S(()=>new SG,"ValueConverter"),TokenBuilder:S(()=>new qA,"TokenBuilder"),Lexer:S(t=>new BG(t),"Lexer"),ParserErrorMessageProvider:S(()=>new xG,"ParserErrorMessageProvider"),LexerErrorMessageProvider:S(()=>new P3e,"LexerErrorMessageProvider")},workspace:{AstNodeLocator:S(()=>new L3e,"AstNodeLocator"),AstNodeDescriptionProvider:S(t=>new D3e(t),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:S(t=>new R3e(t),"ReferenceDescriptionProvider")},references:{Linker:S(t=>new y3e(t),"Linker"),NameProvider:S(()=>new v3e,"NameProvider"),ScopeProvider:S(t=>new k3e(t),"ScopeProvider"),ScopeComputation:S(t=>new b3e(t),"ScopeComputation"),References:S(t=>new x3e(t),"References")},serializer:{Hydrator:S(t=>new Z3e(t),"Hydrator"),JsonSerializer:S(t=>new w3e(t),"JsonSerializer")},validation:{DocumentValidator:S(t=>new _3e(t),"DocumentValidator"),ValidationRegistry:S(t=>new E3e(t),"ValidationRegistry")},shared:S(()=>e.shared,"shared")}}function nn(e){return{ServiceRegistry:S(t=>new S3e(t),"ServiceRegistry"),workspace:{LangiumDocuments:S(t=>new g3e(t),"LangiumDocuments"),LangiumDocumentFactory:S(t=>new m3e(t),"LangiumDocumentFactory"),DocumentBuilder:S(t=>new N3e(t),"DocumentBuilder"),IndexManager:S(t=>new I3e(t),"IndexManager"),WorkspaceManager:S(t=>new O3e(t),"WorkspaceManager"),FileSystemProvider:S(t=>e.fileSystemProvider(t),"FileSystemProvider"),WorkspaceLock:S(()=>new K3e,"WorkspaceLock"),ConfigurationProvider:S(t=>new M3e(t),"ConfigurationProvider")},profilers:{}}}function Hr(e,t,r,i,n,a,s,l,u){let h=[e,t,r,i,n,a,s,l,u].reduce(iy,{});return UG(h)}function qG(e){if(e&&e[Q3e])for(let t of Object.values(e))qG(t);return e}function UG(e,t){let r=new Proxy({},{deleteProperty:S(()=>!1,"deleteProperty"),set:S(()=>{throw new Error("Cannot set property on injected service container")},"set"),get:S((i,n)=>n===Q3e?!0:KF(i,n,e,t||r),"get"),getOwnPropertyDescriptor:S((i,n)=>(KF(i,n,e,t||r),Object.getOwnPropertyDescriptor(i,n)),"getOwnPropertyDescriptor"),has:S((i,n)=>n in e,"has"),ownKeys:S(()=>[...Object.getOwnPropertyNames(e)],"ownKeys")});return r}function KF(e,t,r,i){if(t in e){if(e[t]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable. Cause: "+e[t]);if(e[t]===zye)throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}else if(t in r){let n=r[t];e[t]=zye;try{e[t]=typeof n=="function"?n(i):UG(n,i)}catch(a){throw e[t]=a instanceof Error?a:void 0,a}return e[t]}else return}function iy(e,t){if(t){for(let[r,i]of Object.entries(t))if(i!=null)if(typeof i=="object"){let n=e[r];typeof n=="object"&&n!==null?e[r]=iy(n,i):e[r]=iy({},i)}else e[r]=i}return e}function tEe(){let e=Hr(nn(fn),Avt),t=Hr(rn({shared:e}),Evt);return e.ServiceRegistry.register(t),t}function xo(e){let t=tEe(),r=t.serializer.JsonSerializer.deserialize(e);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,fo.parse(`memory:/${r.name??"grammar"}.langium`)),r}function iEe(e){return bo.isInstance(e,Yc.$type)}function nEe(e){return bo.isInstance(e,eT.$type)}function aEe(e){return bo.isInstance(e,_0.$type)}function sEe(e){return e==="rmo"||e==="readmodel"||e==="ui"||e==="cmd"||e==="command"||e==="evt"||e==="event"||e==="pcr"||e==="processor"}function JA(e){return bo.isInstance(e,ih.$type)}function oEe(e){return bo.isInstance(e,df.$type)}function lEe(e){return bo.isInstance(e,G1.$type)}function cEe(e){return bo.isInstance(e,D0.$type)}function uEe(e){return bo.isInstance(e,R0.$type)}function hEe(e){return bo.isInstance(e,L0.$type)}function dEe(e){return bo.isInstance(e,ff.$type)}function fEe(e){return bo.isInstance(e,tT.$type)}function pEe(e){return bo.isInstance(e,M0.$type)}function mEe(e){return bo.isInstance(e,oa.$type)}var dlt,xT,flt,l$,plt,mlt,S,glt,Lr,xf,t5,W5,c$,u$,q5,fB,NE,pB,A2,ai,qr,_2,mB,IE,gB,yB,vB,xB,OE,bB,TB,CB,D2,l0,qc,c0,ba,th,R2,E1,A1,_1,PE,v2,HP,tve,kB,wB,L2,SB,BE,D1,EB,AB,_B,DB,RB,LB,MB,NB,M2,IB,OB,PB,BB,FB,$B,zB,GB,VB,WB,qB,N2,UB,HB,YB,jB,XB,KB,ZB,QB,JB,eF,tF,rF,iF,FE,$E,nF,aF,sF,oF,lF,cF,uF,hF,rve,dF,m1e,Ze,bT,W0,TT,ny,U5,nve,sve,ylt,vlt,ove,xlt,blt,Tlt,Clt,fF,klt,ay,g1e,tn,h$,wlt,Slt,Elt,Alt,_lt,Dlt,Rlt,Llt,Mlt,Nlt,Ilt,Olt,Plt,Blt,Flt,$lt,zlt,Glt,Vlt,Wlt,qlt,Ult,Hlt,Ylt,jlt,uve,d$,p$,Kc,H1,as,Y1,iT,m$,fve,Xlt,zs,$2,N1,ho,of,z2,a5,s5,lf,o5,cf,uf,G2,hf,V2,l5,nh,c5,y0,u5,Hc,W2,h5,I1,O1,P1,v0,d5,f5,B1,p5,zl,q2,x0,m5,b0,F1,g5,T0,Gs,C0,ah,k0,U2,w0,S0,y5,H2,E0,A0,$1,P$,dr,Xc,z$,U$,eA,Y$,x5,b5,y1e,Klt,mE,Zlt,Bve,tA,Fve,$ve,Qlt,N0,Gve,uz,Jlt,exe,ect,tct,tu,rct,el,txe,ict,nct,x2,act,sct,oct,lct,cct,uct,v1e,Tf,Yl,hct,lA,AT,dct,Kr,fct,x1e,b1e,pct,mct,gct,yct,vct,tl,T1e,xct,bct,Tct,Cct,kct,C1e,wct,Sct,_T,J1,Ect,Act,_ct,Dct,vh,Rct,YP,k1e,Lct,Mct,Nct,K0,Ict,Oct,Pct,Bct,Fct,$ct,zct,Gct,Vct,Z0,Wct,gF,w1e,qct,Uct,Hct,Un,Yct,jct,Xct,Kct,Zct,Qct,Jct,C5,eut,tut,rut,iut,Axe,Dxe,nut,aut,fz,Ixe,sut,out,cA,pz,DT,lut,cut,uA,RT,S1e,uut,mz,hut,gz,ru,hA,dut,fut,LT,put,mut,E1e,Xxe,gut,yut,vut,dA,xut,Zxe,A1e,but,_1e,Tut,Cut,aT,kut,wut,Sut,Eut,Aut,_ut,Dut,Rut,Lut,Mut,Nut,Iut,Out,Put,But,Fut,$ut,zut,Gut,Vut,Wut,qut,Uut,Hut,Gi,Yut,MT,ebe,Y2,jut,jP,Xut,mf,D1e,Kut,yz,Zut,Qut,rbe,nbe,Jut,eht,tht,rht,sbe,po,iht,nht,aht,mo,sht,oht,lht,cht,fA,uht,hht,vz,dht,sT,fht,pht,mht,ght,yht,vht,xht,bht,Tht,Cht,kht,R1e,wht,pA,Sht,Eht,Aht,_ht,Dht,Rht,mA,Lht,oT,Mht,Nht,gA,Iht,Oht,Pht,Bht,yA,Fht,$ht,zht,Ght,Vht,Wht,qht,Uht,Hht,xA,Yht,NT,xz,jht,bz,L1e,Xht,Cz,Ul,Kht,$be,Gbe,Zht,Qht,Jht,edt,tdt,rdt,idt,j2,ndt,adt,Kbe,M1e,sdt,N1e,I1e,odt,kz,e2e,ldt,cdt,O1e,udt,wz,hdt,ddt,fdt,r2e,pdt,a2e,yF,l2e,mdt,vF,gdt,xF,ydt,W1,P1e,vdt,B1e,F1e,$1e,z1e,xdt,bdt,Tdt,Cdt,kdt,h0,ey,wdt,Sdt,Edt,Adt,k5,Sz,_dt,Ddt,Rdt,G1e,V1e,Ldt,Mdt,Ndt,Idt,Odt,Pdt,Bdt,Fdt,$dt,zdt,Gdt,Vdt,Wdt,qdt,Udt,Hdt,Ydt,jdt,Xdt,Kdt,Zdt,Qdt,Jdt,eft,tft,W1e,rft,ift,nft,aft,q1e,sft,oft,lft,cft,uft,x2e,hft,dft,fft,pft,b2e,mft,gft,yft,T2e,vft,xft,bft,Tft,Cft,kft,wft,Sft,Eft,Aft,_ft,Dft,Rft,Lft,Mft,Nft,Ni,Ift,Oft,ka,IT,Pft,Bft,Fft,Ez,A2e,Az,$ft,zft,R2e,Gft,_z,Vft,Wft,qft,Uft,Hft,Yft,jft,Xft,Kft,Zft,Qft,Jft,ept,U1e,XP,tpt,rpt,ipt,npt,apt,spt,H1e,Y1e,gE,opt,j1e,lpt,P2e,cpt,upt,hpt,$2e,dpt,V2e,fpt,ppt,H2e,mpt,gpt,ypt,vpt,xpt,bpt,Tpt,iu,Cpt,kpt,wpt,Spt,Ept,Apt,_pt,rm,Dpt,Rpt,aTe,Lpt,Mpt,Rz,X1e,lTe,Npt,Ipt,Opt,bA,z0,Ta,cT,Ppt,vr,Bpt,Fpt,Hl,xTe,il,$pt,zpt,Gpt,Vpt,ty,jl,Wpt,nr,Jo,qpt,Upt,Hpt,Ypt,jpt,Xpt,Kpt,mr,Zpt,Vs,Qpt,Hn,Jpt,fs,e0t,K1e,t0t,r0t,i0t,n0t,Oi,a0t,s0t,Z1e,o0t,hh,dh,l0t,c0t,u0t,h0t,Xl,d0t,go,TA,f0t,HTe,p0t,m0t,g0t,y0t,v0t,Lz,nu,us,oy,Ws,Ca,yo,vo,hn,qs,Us,Wi,ly,CA,iCe,x0t,WE,b0t,oCe,S5,T0t,G0,P2,yE,uCe,C0t,k0t,w0t,B2,UE,Q1e,NCe,SF,dn,F2,ls,S0t,J1e,eye,tye,rye,iye,nye,aye,sye,gf,z1,E0t,I0,A0t,_0t,D0t,wA,R0t,oye,L0t,lye,en,M0t,jCe,N0t,Yz,I0t,dke,fke,pke,mke,gke,EA,yke,O0t,P0t,B0t,KP,vke,F0t,$0t,z0t,Cf,G0t,bke,Tke,_F,DF,RF,YE,_wr,jz,V0t,W0t,vE,q0t,NF,U0t,H0t,Y0t,j0t,X0t,K0t,AA,cye,uye,Rke,Lke,Z0t,Q0t,J0t,R5,ph,L5,hs,Kz,emt,Pke,tmt,$ke,_A,rmt,imt,nmt,amt,smt,omt,DA,lmt,cmt,umt,hmt,dmt,Xke,fmt,pmt,xh,mmt,eu,Kke,gmt,ymt,b2,vmt,xmt,bmt,Tmt,Cmt,kmt,hye,dy,Zz,wmt,Smt,Emt,Amt,rwe,_mt,ZP,dye,Dmt,Rmt,Lmt,nm,Mmt,Nmt,Imt,Omt,Pmt,Bmt,Fmt,$mt,zmt,fy,Gmt,pT,Vmt,mT,Wmt,qmt,Umt,Hmt,Ymt,jmt,Xmt,Kmt,Zmt,Qmt,Jmt,fye,egt,tgt,RA,rgt,igt,ngt,agt,LA,sgt,ogt,XE,lgt,cgt,ugt,kwe,hgt,Ewe,dgt,fgt,_we,pgt,pye,mgt,Qz,ggt,ygt,vgt,xgt,bgt,Tgt,Cgt,kgt,wgt,Sgt,Egt,Agt,_gt,mye,QP,Dgt,Nwe,Rgt,ds,Lgt,Pwe,Mgt,Ngt,Igt,gye,Ogt,Pgt,Bgt,ry,Fgt,yye,Gwe,$gt,zgt,Ggt,MA,Vgt,Wwe,vye,Wgt,xye,qgt,Ugt,M5,Hgt,Ygt,Uwe,jgt,Jz,Xgt,Kgt,Zgt,Qgt,Jgt,e1t,t1t,r1t,i1t,n1t,a1t,s1t,o1t,l1t,c1t,u1t,h1t,d1t,f1t,p1t,m1t,g1t,y1t,v1t,Vi,x1t,b1t,Xwe,Q2,T1t,JP,C1t,bye,Tye,k1t,eG,w1t,S1t,E1t,A1t,Qwe,_1t,D1t,R1t,L1t,M1t,t4e,NA,tG,Cye,N1t,I1t,O1t,P1t,B1t,PF,F1t,BF,$1t,U1,z1t,FF,kye,G1t,wye,Sye,Eye,Aye,V1t,W1t,q1t,U1t,H1t,d0,$F,Y1t,_ye,Dye,xE,j1t,Rye,X1t,o4e,K1t,Z1t,Q1t,u4e,J1t,f4e,eyt,tyt,IA,ryt,iyt,iG,nyt,ayt,syt,oyt,lyt,cyt,uyt,hyt,dyt,Lye,Mye,fyt,pyt,b4e,myt,PA,k4e,gyt,yyt,vyt,xyt,byt,Tyt,Cyt,aG,kyt,wyt,Syt,BA,Eyt,Ayt,_yt,Dyt,Ryt,Lyt,FA,Myt,sh,Nyt,Iyt,yf,Oyt,G4e,V4e,$T,Pyt,Byt,Fyt,$yt,W4e,sG,oG,q4e,lG,N5,zF,zyt,Gyt,Vyt,Nye,Wyt,cSe,qyt,Uyt,Hyt,Yyt,jyt,Xyt,Kyt,Zyt,Qyt,Jyt,evt,tvt,rvt,ivt,nvt,avt,svt,eB,ovt,lvt,cvt,uvt,hvt,dvt,fvt,Iye,DSe,Oye,pvt,XSe,gG,I5,GA,mvt,yG,O5,Pye,ZSe,vG,QSe,JSe,xG,e3e,gvt,t3e,yvt,qA,SG,jc,Ii,QE,d3e,Zc,mh,Bye,B5,p3e,fo,T2,os,DG,zr,m3e,g3e,f0,y3e,v3e,x3e,gh,$5,b3e,UF,vvt,T3e,xvt,YA,LG,jA,C3e,MG,k3e,w3e,S3e,z5,E3e,A3e,_3e,Qo,D3e,R3e,L3e,XA,M3e,bE,F0,N3e,I3e,O3e,P3e,PG,BG,Fye,bvt,Tvt,Cvt,$ye,tB,YF,H3e,Y3e,j3e,X3e,kvt,wvt,K3e,Z3e,XF,Q3e,zye,ZF,P0,J3e,Svt,HG,eEe,fn,Evt,Avt,_vt,rEe,QF,JF,e$,t$,r$,i$,n$,a$,s$,o$,Dwr,TE,CE,C2,rB,Yc,kE,eT,Gye,wE,iB,_0,SE,s0,EE,AE,Vye,w1,Wc,p0,af,k2,Wye,nB,_E,ih,nf,aB,Uc,qye,DE,sB,df,w2,G1,S2,oB,E2,RE,o0,D0,LE,lB,R0,L0,ff,tT,cB,ME,sf,uB,S1,hB,m0,M0,dB,e5,M1,oa,gEe,bo,Uye,Dvt,Hye,Rvt,Yye,Lvt,jye,Mvt,Xye,Nvt,Kye,Ivt,Zye,Ovt,Qye,Pvt,Jye,Bvt,eve,Fvt,$vt,zvt,Gvt,Vvt,Wvt,qvt,Uvt,Hvt,Yvt,jvt,xn,YG,jG,XG,KG,ZG,QG,JG,eV,tV,rV,Xvt,Kvt,Zvt,Qvt,nl,Kl,Ln,Jvt,pn=z(()=>{"use strict";dlt=Object.create,xT=Object.defineProperty,flt=Object.getOwnPropertyDescriptor,l$=Object.getOwnPropertyNames,plt=Object.getPrototypeOf,mlt=Object.prototype.hasOwnProperty,S=o((e,t)=>xT(e,"name",{value:t,configurable:!0}),"__name"),glt=o((e,t)=>o(function(){return e&&(t=(0,e[l$(e)[0]])(e=0)),t},"__init"),"__esm"),Lr=o((e,t)=>o(function(){return t||(0,e[l$(e)[0]])((t={exports:{}}).exports,t),t.exports},"__require"),"__commonJS"),xf=o((e,t)=>{for(var r in t)xT(e,r,{get:t[r],enumerable:!0})},"__export"),t5=o((e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of l$(t))!mlt.call(e,n)&&n!==r&&xT(e,n,{get:o(()=>t[n],"get"),enumerable:!(i=flt(t,n))||i.enumerable});return e},"__copyProps"),W5=o((e,t,r)=>(t5(e,t,"default"),r&&t5(r,t,"default")),"__reExport"),c$=o((e,t,r)=>(r=e!=null?dlt(plt(e)):{},t5(t||!e||!e.__esModule?xT(r,"default",{value:e,enumerable:!0}):r,e)),"__toESM"),u$=o(e=>t5(xT({},"__esModule",{value:!0}),e),"__toCommonJS"),q5={};xf(q5,{AnnotatedTextEdit:o(()=>th,"AnnotatedTextEdit"),ChangeAnnotation:o(()=>c0,"ChangeAnnotation"),ChangeAnnotationIdentifier:o(()=>ba,"ChangeAnnotationIdentifier"),CodeAction:o(()=>HB,"CodeAction"),CodeActionContext:o(()=>UB,"CodeActionContext"),CodeActionKind:o(()=>qB,"CodeActionKind"),CodeActionTriggerKind:o(()=>N2,"CodeActionTriggerKind"),CodeDescription:o(()=>CB,"CodeDescription"),CodeLens:o(()=>YB,"CodeLens"),Color:o(()=>IE,"Color"),ColorInformation:o(()=>gB,"ColorInformation"),ColorPresentation:o(()=>yB,"ColorPresentation"),Command:o(()=>l0,"Command"),CompletionItem:o(()=>MB,"CompletionItem"),CompletionItemKind:o(()=>EB,"CompletionItemKind"),CompletionItemLabelDetails:o(()=>LB,"CompletionItemLabelDetails"),CompletionItemTag:o(()=>_B,"CompletionItemTag"),CompletionList:o(()=>NB,"CompletionList"),CreateFile:o(()=>E1,"CreateFile"),DeleteFile:o(()=>_1,"DeleteFile"),Diagnostic:o(()=>D2,"Diagnostic"),DiagnosticRelatedInformation:o(()=>OE,"DiagnosticRelatedInformation"),DiagnosticSeverity:o(()=>bB,"DiagnosticSeverity"),DiagnosticTag:o(()=>TB,"DiagnosticTag"),DocumentHighlight:o(()=>FB,"DocumentHighlight"),DocumentHighlightKind:o(()=>BB,"DocumentHighlightKind"),DocumentLink:o(()=>XB,"DocumentLink"),DocumentSymbol:o(()=>WB,"DocumentSymbol"),DocumentUri:o(()=>fB,"DocumentUri"),EOL:o(()=>rve,"EOL"),FoldingRange:o(()=>xB,"FoldingRange"),FoldingRangeKind:o(()=>vB,"FoldingRangeKind"),FormattingOptions:o(()=>jB,"FormattingOptions"),Hover:o(()=>IB,"Hover"),InlayHint:o(()=>nF,"InlayHint"),InlayHintKind:o(()=>FE,"InlayHintKind"),InlayHintLabelPart:o(()=>$E,"InlayHintLabelPart"),InlineCompletionContext:o(()=>uF,"InlineCompletionContext"),InlineCompletionItem:o(()=>sF,"InlineCompletionItem"),InlineCompletionList:o(()=>oF,"InlineCompletionList"),InlineCompletionTriggerKind:o(()=>lF,"InlineCompletionTriggerKind"),InlineValueContext:o(()=>iF,"InlineValueContext"),InlineValueEvaluatableExpression:o(()=>rF,"InlineValueEvaluatableExpression"),InlineValueText:o(()=>eF,"InlineValueText"),InlineValueVariableLookup:o(()=>tF,"InlineValueVariableLookup"),InsertReplaceEdit:o(()=>DB,"InsertReplaceEdit"),InsertTextFormat:o(()=>AB,"InsertTextFormat"),InsertTextMode:o(()=>RB,"InsertTextMode"),Location:o(()=>_2,"Location"),LocationLink:o(()=>mB,"LocationLink"),MarkedString:o(()=>M2,"MarkedString"),MarkupContent:o(()=>D1,"MarkupContent"),MarkupKind:o(()=>BE,"MarkupKind"),OptionalVersionedTextDocumentIdentifier:o(()=>L2,"OptionalVersionedTextDocumentIdentifier"),ParameterInformation:o(()=>OB,"ParameterInformation"),Position:o(()=>ai,"Position"),Range:o(()=>qr,"Range"),RenameFile:o(()=>A1,"RenameFile"),SelectedCompletionInfo:o(()=>cF,"SelectedCompletionInfo"),SelectionRange:o(()=>KB,"SelectionRange"),SemanticTokenModifiers:o(()=>QB,"SemanticTokenModifiers"),SemanticTokenTypes:o(()=>ZB,"SemanticTokenTypes"),SemanticTokens:o(()=>JB,"SemanticTokens"),SignatureInformation:o(()=>PB,"SignatureInformation"),StringValue:o(()=>aF,"StringValue"),SymbolInformation:o(()=>GB,"SymbolInformation"),SymbolKind:o(()=>$B,"SymbolKind"),SymbolTag:o(()=>zB,"SymbolTag"),TextDocument:o(()=>dF,"TextDocument"),TextDocumentEdit:o(()=>R2,"TextDocumentEdit"),TextDocumentIdentifier:o(()=>kB,"TextDocumentIdentifier"),TextDocumentItem:o(()=>SB,"TextDocumentItem"),TextEdit:o(()=>qc,"TextEdit"),URI:o(()=>NE,"URI"),VersionedTextDocumentIdentifier:o(()=>wB,"VersionedTextDocumentIdentifier"),WorkspaceChange:o(()=>tve,"WorkspaceChange"),WorkspaceEdit:o(()=>PE,"WorkspaceEdit"),WorkspaceFolder:o(()=>hF,"WorkspaceFolder"),WorkspaceSymbol:o(()=>VB,"WorkspaceSymbol"),integer:o(()=>pB,"integer"),uinteger:o(()=>A2,"uinteger")});bT=glt({"../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/esm/main.js"(){"use strict";(function(e){function t(r){return typeof r=="string"}o(t,"is"),S(t,"is"),e.is=t})(fB||(fB={})),(function(e){function t(r){return typeof r=="string"}o(t,"is"),S(t,"is"),e.is=t})(NE||(NE={})),(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(r){return typeof r=="number"&&e.MIN_VALUE<=r&&r<=e.MAX_VALUE}o(t,"is"),S(t,"is"),e.is=t})(pB||(pB={})),(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(r){return typeof r=="number"&&e.MIN_VALUE<=r&&r<=e.MAX_VALUE}o(t,"is"),S(t,"is"),e.is=t})(A2||(A2={})),(function(e){function t(i,n){return i===Number.MAX_VALUE&&(i=A2.MAX_VALUE),n===Number.MAX_VALUE&&(n=A2.MAX_VALUE),{line:i,character:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&Ze.uinteger(n.line)&&Ze.uinteger(n.character)}o(r,"is"),S(r,"is"),e.is=r})(ai||(ai={})),(function(e){function t(i,n,a,s){if(Ze.uinteger(i)&&Ze.uinteger(n)&&Ze.uinteger(a)&&Ze.uinteger(s))return{start:ai.create(i,n),end:ai.create(a,s)};if(ai.is(i)&&ai.is(n))return{start:i,end:n};throw new Error(`Range#create called with invalid arguments[${i}, ${n}, ${a}, ${s}]`)}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&ai.is(n.start)&&ai.is(n.end)}o(r,"is"),S(r,"is"),e.is=r})(qr||(qr={})),(function(e){function t(i,n){return{uri:i,range:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&qr.is(n.range)&&(Ze.string(n.uri)||Ze.undefined(n.uri))}o(r,"is"),S(r,"is"),e.is=r})(_2||(_2={})),(function(e){function t(i,n,a,s){return{targetUri:i,targetRange:n,targetSelectionRange:a,originSelectionRange:s}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&qr.is(n.targetRange)&&Ze.string(n.targetUri)&&qr.is(n.targetSelectionRange)&&(qr.is(n.originSelectionRange)||Ze.undefined(n.originSelectionRange))}o(r,"is"),S(r,"is"),e.is=r})(mB||(mB={})),(function(e){function t(i,n,a,s){return{red:i,green:n,blue:a,alpha:s}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&Ze.numberRange(n.red,0,1)&&Ze.numberRange(n.green,0,1)&&Ze.numberRange(n.blue,0,1)&&Ze.numberRange(n.alpha,0,1)}o(r,"is"),S(r,"is"),e.is=r})(IE||(IE={})),(function(e){function t(i,n){return{range:i,color:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&qr.is(n.range)&&IE.is(n.color)}o(r,"is"),S(r,"is"),e.is=r})(gB||(gB={})),(function(e){function t(i,n,a){return{label:i,textEdit:n,additionalTextEdits:a}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&Ze.string(n.label)&&(Ze.undefined(n.textEdit)||qc.is(n))&&(Ze.undefined(n.additionalTextEdits)||Ze.typedArray(n.additionalTextEdits,qc.is))}o(r,"is"),S(r,"is"),e.is=r})(yB||(yB={})),(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(vB||(vB={})),(function(e){function t(i,n,a,s,l,u){let h={startLine:i,endLine:n};return Ze.defined(a)&&(h.startCharacter=a),Ze.defined(s)&&(h.endCharacter=s),Ze.defined(l)&&(h.kind=l),Ze.defined(u)&&(h.collapsedText=u),h}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&Ze.uinteger(n.startLine)&&Ze.uinteger(n.startLine)&&(Ze.undefined(n.startCharacter)||Ze.uinteger(n.startCharacter))&&(Ze.undefined(n.endCharacter)||Ze.uinteger(n.endCharacter))&&(Ze.undefined(n.kind)||Ze.string(n.kind))}o(r,"is"),S(r,"is"),e.is=r})(xB||(xB={})),(function(e){function t(i,n){return{location:i,message:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&_2.is(n.location)&&Ze.string(n.message)}o(r,"is"),S(r,"is"),e.is=r})(OE||(OE={})),(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(bB||(bB={})),(function(e){e.Unnecessary=1,e.Deprecated=2})(TB||(TB={})),(function(e){function t(r){let i=r;return Ze.objectLiteral(i)&&Ze.string(i.href)}o(t,"is"),S(t,"is"),e.is=t})(CB||(CB={})),(function(e){function t(i,n,a,s,l,u){let h={range:i,message:n};return Ze.defined(a)&&(h.severity=a),Ze.defined(s)&&(h.code=s),Ze.defined(l)&&(h.source=l),Ze.defined(u)&&(h.relatedInformation=u),h}o(t,"create"),S(t,"create"),e.create=t;function r(i){var n;let a=i;return Ze.defined(a)&&qr.is(a.range)&&Ze.string(a.message)&&(Ze.number(a.severity)||Ze.undefined(a.severity))&&(Ze.integer(a.code)||Ze.string(a.code)||Ze.undefined(a.code))&&(Ze.undefined(a.codeDescription)||Ze.string((n=a.codeDescription)===null||n===void 0?void 0:n.href))&&(Ze.string(a.source)||Ze.undefined(a.source))&&(Ze.undefined(a.relatedInformation)||Ze.typedArray(a.relatedInformation,OE.is))}o(r,"is"),S(r,"is"),e.is=r})(D2||(D2={})),(function(e){function t(i,n,...a){let s={title:i,command:n};return Ze.defined(a)&&a.length>0&&(s.arguments=a),s}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&Ze.string(n.title)&&Ze.string(n.command)}o(r,"is"),S(r,"is"),e.is=r})(l0||(l0={})),(function(e){function t(a,s){return{range:a,newText:s}}o(t,"replace"),S(t,"replace"),e.replace=t;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),S(r,"insert"),e.insert=r;function i(a){return{range:a,newText:""}}o(i,"del"),S(i,"del"),e.del=i;function n(a){let s=a;return Ze.objectLiteral(s)&&Ze.string(s.newText)&&qr.is(s.range)}o(n,"is"),S(n,"is"),e.is=n})(qc||(qc={})),(function(e){function t(i,n,a){let s={label:i};return n!==void 0&&(s.needsConfirmation=n),a!==void 0&&(s.description=a),s}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&Ze.string(n.label)&&(Ze.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&(Ze.string(n.description)||n.description===void 0)}o(r,"is"),S(r,"is"),e.is=r})(c0||(c0={})),(function(e){function t(r){let i=r;return Ze.string(i)}o(t,"is"),S(t,"is"),e.is=t})(ba||(ba={})),(function(e){function t(a,s,l){return{range:a,newText:s,annotationId:l}}o(t,"replace"),S(t,"replace"),e.replace=t;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),S(r,"insert"),e.insert=r;function i(a,s){return{range:a,newText:"",annotationId:s}}o(i,"del"),S(i,"del"),e.del=i;function n(a){let s=a;return qc.is(s)&&(c0.is(s.annotationId)||ba.is(s.annotationId))}o(n,"is"),S(n,"is"),e.is=n})(th||(th={})),(function(e){function t(i,n){return{textDocument:i,edits:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&L2.is(n.textDocument)&&Array.isArray(n.edits)}o(r,"is"),S(r,"is"),e.is=r})(R2||(R2={})),(function(e){function t(i,n,a){let s={kind:"create",uri:i};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(s.options=n),a!==void 0&&(s.annotationId=a),s}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n&&n.kind==="create"&&Ze.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||Ze.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||Ze.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||ba.is(n.annotationId))}o(r,"is"),S(r,"is"),e.is=r})(E1||(E1={})),(function(e){function t(i,n,a,s){let l={kind:"rename",oldUri:i,newUri:n};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n&&n.kind==="rename"&&Ze.string(n.oldUri)&&Ze.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||Ze.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||Ze.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||ba.is(n.annotationId))}o(r,"is"),S(r,"is"),e.is=r})(A1||(A1={})),(function(e){function t(i,n,a){let s={kind:"delete",uri:i};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(s.options=n),a!==void 0&&(s.annotationId=a),s}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n&&n.kind==="delete"&&Ze.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||Ze.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||Ze.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||ba.is(n.annotationId))}o(r,"is"),S(r,"is"),e.is=r})(_1||(_1={})),(function(e){function t(r){let i=r;return i&&(i.changes!==void 0||i.documentChanges!==void 0)&&(i.documentChanges===void 0||i.documentChanges.every(n=>Ze.string(n.kind)?E1.is(n)||A1.is(n)||_1.is(n):R2.is(n)))}o(t,"is"),S(t,"is"),e.is=t})(PE||(PE={})),v2=class{static{o(this,"TextEditChangeImpl")}static{S(this,"TextEditChangeImpl")}constructor(e,t){this.edits=e,this.changeAnnotations=t}insert(e,t,r){let i,n;if(r===void 0?i=qc.insert(e,t):ba.is(r)?(n=r,i=th.insert(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(r),i=th.insert(e,t,n)),this.edits.push(i),n!==void 0)return n}replace(e,t,r){let i,n;if(r===void 0?i=qc.replace(e,t):ba.is(r)?(n=r,i=th.replace(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(r),i=th.replace(e,t,n)),this.edits.push(i),n!==void 0)return n}delete(e,t){let r,i;if(t===void 0?r=qc.del(e):ba.is(t)?(i=t,r=th.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(t),r=th.del(e,i)),this.edits.push(r),i!==void 0)return i}add(e){this.edits.push(e)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(e){if(e===void 0)throw new Error("Text edit change is not configured to manage change annotations.")}},HP=class{static{o(this,"ChangeAnnotations")}static{S(this,"ChangeAnnotations")}constructor(e){this._annotations=e===void 0?Object.create(null):e,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(e,t){let r;if(ba.is(e)?r=e:(r=this.nextId(),t=e),this._annotations[r]!==void 0)throw new Error(`Id ${r} is already in use.`);if(t===void 0)throw new Error(`No annotation provided for id ${r}`);return this._annotations[r]=t,this._size++,r}nextId(){return this._counter++,this._counter.toString()}},tve=class{static{o(this,"WorkspaceChange")}static{S(this,"WorkspaceChange")}constructor(e){this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new HP(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(t=>{if(R2.is(t)){let r=new v2(t.edits,this._changeAnnotations);this._textEditChanges[t.textDocument.uri]=r}})):e.changes&&Object.keys(e.changes).forEach(t=>{let r=new v2(e.changes[t]);this._textEditChanges[t]=r})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(e){if(L2.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let t={uri:e.uri,version:e.version},r=this._textEditChanges[t.uri];if(!r){let i=[],n={textDocument:t,edits:i};this._workspaceEdit.documentChanges.push(n),r=new v2(i,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");let t=this._textEditChanges[e];if(!t){let r=[];this._workspaceEdit.changes[e]=r,t=new v2(r),this._textEditChanges[e]=t}return t}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new HP,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(e,t,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let i;c0.is(t)||ba.is(t)?i=t:r=t;let n,a;if(i===void 0?n=E1.create(e,r):(a=ba.is(i)?i:this._changeAnnotations.manage(i),n=E1.create(e,r,a)),this._workspaceEdit.documentChanges.push(n),a!==void 0)return a}renameFile(e,t,r,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let n;c0.is(r)||ba.is(r)?n=r:i=r;let a,s;if(n===void 0?a=A1.create(e,t,i):(s=ba.is(n)?n:this._changeAnnotations.manage(n),a=A1.create(e,t,i,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}deleteFile(e,t,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let i;c0.is(t)||ba.is(t)?i=t:r=t;let n,a;if(i===void 0?n=_1.create(e,r):(a=ba.is(i)?i:this._changeAnnotations.manage(i),n=_1.create(e,r,a)),this._workspaceEdit.documentChanges.push(n),a!==void 0)return a}},(function(e){function t(i){return{uri:i}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&Ze.string(n.uri)}o(r,"is"),S(r,"is"),e.is=r})(kB||(kB={})),(function(e){function t(i,n){return{uri:i,version:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&Ze.string(n.uri)&&Ze.integer(n.version)}o(r,"is"),S(r,"is"),e.is=r})(wB||(wB={})),(function(e){function t(i,n){return{uri:i,version:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&Ze.string(n.uri)&&(n.version===null||Ze.integer(n.version))}o(r,"is"),S(r,"is"),e.is=r})(L2||(L2={})),(function(e){function t(i,n,a,s){return{uri:i,languageId:n,version:a,text:s}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&Ze.string(n.uri)&&Ze.string(n.languageId)&&Ze.integer(n.version)&&Ze.string(n.text)}o(r,"is"),S(r,"is"),e.is=r})(SB||(SB={})),(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(r){let i=r;return i===e.PlainText||i===e.Markdown}o(t,"is"),S(t,"is"),e.is=t})(BE||(BE={})),(function(e){function t(r){let i=r;return Ze.objectLiteral(r)&&BE.is(i.kind)&&Ze.string(i.value)}o(t,"is"),S(t,"is"),e.is=t})(D1||(D1={})),(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(EB||(EB={})),(function(e){e.PlainText=1,e.Snippet=2})(AB||(AB={})),(function(e){e.Deprecated=1})(_B||(_B={})),(function(e){function t(i,n,a){return{newText:i,insert:n,replace:a}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n&&Ze.string(n.newText)&&qr.is(n.insert)&&qr.is(n.replace)}o(r,"is"),S(r,"is"),e.is=r})(DB||(DB={})),(function(e){e.asIs=1,e.adjustIndentation=2})(RB||(RB={})),(function(e){function t(r){let i=r;return i&&(Ze.string(i.detail)||i.detail===void 0)&&(Ze.string(i.description)||i.description===void 0)}o(t,"is"),S(t,"is"),e.is=t})(LB||(LB={})),(function(e){function t(r){return{label:r}}o(t,"create"),S(t,"create"),e.create=t})(MB||(MB={})),(function(e){function t(r,i){return{items:r||[],isIncomplete:!!i}}o(t,"create"),S(t,"create"),e.create=t})(NB||(NB={})),(function(e){function t(i){return i.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(t,"fromPlainText"),S(t,"fromPlainText"),e.fromPlainText=t;function r(i){let n=i;return Ze.string(n)||Ze.objectLiteral(n)&&Ze.string(n.language)&&Ze.string(n.value)}o(r,"is"),S(r,"is"),e.is=r})(M2||(M2={})),(function(e){function t(r){let i=r;return!!i&&Ze.objectLiteral(i)&&(D1.is(i.contents)||M2.is(i.contents)||Ze.typedArray(i.contents,M2.is))&&(r.range===void 0||qr.is(r.range))}o(t,"is"),S(t,"is"),e.is=t})(IB||(IB={})),(function(e){function t(r,i){return i?{label:r,documentation:i}:{label:r}}o(t,"create"),S(t,"create"),e.create=t})(OB||(OB={})),(function(e){function t(r,i,...n){let a={label:r};return Ze.defined(i)&&(a.documentation=i),Ze.defined(n)?a.parameters=n:a.parameters=[],a}o(t,"create"),S(t,"create"),e.create=t})(PB||(PB={})),(function(e){e.Text=1,e.Read=2,e.Write=3})(BB||(BB={})),(function(e){function t(r,i){let n={range:r};return Ze.number(i)&&(n.kind=i),n}o(t,"create"),S(t,"create"),e.create=t})(FB||(FB={})),(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})($B||($B={})),(function(e){e.Deprecated=1})(zB||(zB={})),(function(e){function t(r,i,n,a,s){let l={name:r,kind:i,location:{uri:a,range:n}};return s&&(l.containerName=s),l}o(t,"create"),S(t,"create"),e.create=t})(GB||(GB={})),(function(e){function t(r,i,n,a){return a!==void 0?{name:r,kind:i,location:{uri:n,range:a}}:{name:r,kind:i,location:{uri:n}}}o(t,"create"),S(t,"create"),e.create=t})(VB||(VB={})),(function(e){function t(i,n,a,s,l,u){let h={name:i,detail:n,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n&&Ze.string(n.name)&&Ze.number(n.kind)&&qr.is(n.range)&&qr.is(n.selectionRange)&&(n.detail===void 0||Ze.string(n.detail))&&(n.deprecated===void 0||Ze.boolean(n.deprecated))&&(n.children===void 0||Array.isArray(n.children))&&(n.tags===void 0||Array.isArray(n.tags))}o(r,"is"),S(r,"is"),e.is=r})(WB||(WB={})),(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(qB||(qB={})),(function(e){e.Invoked=1,e.Automatic=2})(N2||(N2={})),(function(e){function t(i,n,a){let s={diagnostics:i};return n!=null&&(s.only=n),a!=null&&(s.triggerKind=a),s}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&Ze.typedArray(n.diagnostics,D2.is)&&(n.only===void 0||Ze.typedArray(n.only,Ze.string))&&(n.triggerKind===void 0||n.triggerKind===N2.Invoked||n.triggerKind===N2.Automatic)}o(r,"is"),S(r,"is"),e.is=r})(UB||(UB={})),(function(e){function t(i,n,a){let s={title:i},l=!0;return typeof n=="string"?(l=!1,s.kind=n):l0.is(n)?s.command=n:s.edit=n,l&&a!==void 0&&(s.kind=a),s}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n&&Ze.string(n.title)&&(n.diagnostics===void 0||Ze.typedArray(n.diagnostics,D2.is))&&(n.kind===void 0||Ze.string(n.kind))&&(n.edit!==void 0||n.command!==void 0)&&(n.command===void 0||l0.is(n.command))&&(n.isPreferred===void 0||Ze.boolean(n.isPreferred))&&(n.edit===void 0||PE.is(n.edit))}o(r,"is"),S(r,"is"),e.is=r})(HB||(HB={})),(function(e){function t(i,n){let a={range:i};return Ze.defined(n)&&(a.data=n),a}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&qr.is(n.range)&&(Ze.undefined(n.command)||l0.is(n.command))}o(r,"is"),S(r,"is"),e.is=r})(YB||(YB={})),(function(e){function t(i,n){return{tabSize:i,insertSpaces:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&Ze.uinteger(n.tabSize)&&Ze.boolean(n.insertSpaces)}o(r,"is"),S(r,"is"),e.is=r})(jB||(jB={})),(function(e){function t(i,n,a){return{range:i,target:n,data:a}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&qr.is(n.range)&&(Ze.undefined(n.target)||Ze.string(n.target))}o(r,"is"),S(r,"is"),e.is=r})(XB||(XB={})),(function(e){function t(i,n){return{range:i,parent:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&qr.is(n.range)&&(n.parent===void 0||e.is(n.parent))}o(r,"is"),S(r,"is"),e.is=r})(KB||(KB={})),(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(ZB||(ZB={})),(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(QB||(QB={})),(function(e){function t(r){let i=r;return Ze.objectLiteral(i)&&(i.resultId===void 0||typeof i.resultId=="string")&&Array.isArray(i.data)&&(i.data.length===0||typeof i.data[0]=="number")}o(t,"is"),S(t,"is"),e.is=t})(JB||(JB={})),(function(e){function t(i,n){return{range:i,text:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n!=null&&qr.is(n.range)&&Ze.string(n.text)}o(r,"is"),S(r,"is"),e.is=r})(eF||(eF={})),(function(e){function t(i,n,a){return{range:i,variableName:n,caseSensitiveLookup:a}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n!=null&&qr.is(n.range)&&Ze.boolean(n.caseSensitiveLookup)&&(Ze.string(n.variableName)||n.variableName===void 0)}o(r,"is"),S(r,"is"),e.is=r})(tF||(tF={})),(function(e){function t(i,n){return{range:i,expression:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return n!=null&&qr.is(n.range)&&(Ze.string(n.expression)||n.expression===void 0)}o(r,"is"),S(r,"is"),e.is=r})(rF||(rF={})),(function(e){function t(i,n){return{frameId:i,stoppedLocation:n}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.defined(n)&&qr.is(i.stoppedLocation)}o(r,"is"),S(r,"is"),e.is=r})(iF||(iF={})),(function(e){e.Type=1,e.Parameter=2;function t(r){return r===1||r===2}o(t,"is"),S(t,"is"),e.is=t})(FE||(FE={})),(function(e){function t(i){return{value:i}}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&(n.tooltip===void 0||Ze.string(n.tooltip)||D1.is(n.tooltip))&&(n.location===void 0||_2.is(n.location))&&(n.command===void 0||l0.is(n.command))}o(r,"is"),S(r,"is"),e.is=r})($E||($E={})),(function(e){function t(i,n,a){let s={position:i,label:n};return a!==void 0&&(s.kind=a),s}o(t,"create"),S(t,"create"),e.create=t;function r(i){let n=i;return Ze.objectLiteral(n)&&ai.is(n.position)&&(Ze.string(n.label)||Ze.typedArray(n.label,$E.is))&&(n.kind===void 0||FE.is(n.kind))&&n.textEdits===void 0||Ze.typedArray(n.textEdits,qc.is)&&(n.tooltip===void 0||Ze.string(n.tooltip)||D1.is(n.tooltip))&&(n.paddingLeft===void 0||Ze.boolean(n.paddingLeft))&&(n.paddingRight===void 0||Ze.boolean(n.paddingRight))}o(r,"is"),S(r,"is"),e.is=r})(nF||(nF={})),(function(e){function t(r){return{kind:"snippet",value:r}}o(t,"createSnippet"),S(t,"createSnippet"),e.createSnippet=t})(aF||(aF={})),(function(e){function t(r,i,n,a){return{insertText:r,filterText:i,range:n,command:a}}o(t,"create"),S(t,"create"),e.create=t})(sF||(sF={})),(function(e){function t(r){return{items:r}}o(t,"create"),S(t,"create"),e.create=t})(oF||(oF={})),(function(e){e.Invoked=0,e.Automatic=1})(lF||(lF={})),(function(e){function t(r,i){return{range:r,text:i}}o(t,"create"),S(t,"create"),e.create=t})(cF||(cF={})),(function(e){function t(r,i){return{triggerKind:r,selectedCompletionInfo:i}}o(t,"create"),S(t,"create"),e.create=t})(uF||(uF={})),(function(e){function t(r){let i=r;return Ze.objectLiteral(i)&&NE.is(i.uri)&&Ze.string(i.name)}o(t,"is"),S(t,"is"),e.is=t})(hF||(hF={})),rve=[` +`,`\r +`,"\r"],(function(e){function t(a,s,l,u){return new m1e(a,s,l,u)}o(t,"create"),S(t,"create"),e.create=t;function r(a){let s=a;return!!(Ze.defined(s)&&Ze.string(s.uri)&&(Ze.undefined(s.languageId)||Ze.string(s.languageId))&&Ze.uinteger(s.lineCount)&&Ze.func(s.getText)&&Ze.func(s.positionAt)&&Ze.func(s.offsetAt))}o(r,"is"),S(r,"is"),e.is=r;function i(a,s){let l=a.getText(),u=n(s,(d,f)=>{let p=d.range.start.line-f.range.start.line;return p===0?d.range.start.character-f.range.start.character:p}),h=l.length;for(let d=u.length-1;d>=0;d--){let f=u[d],p=a.offsetAt(f.range.start),m=a.offsetAt(f.range.end);if(m<=h)l=l.substring(0,p)+f.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(i,"applyEdits"),S(i,"applyEdits"),e.applyEdits=i;function n(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);n(u,s),n(h,s);let d=0,f=0,p=0;for(;d0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return ai.create(0,e);for(;re?i=a:r=a+1}let n=r-1;return ai.create(n,e-t[n])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1"u"}o(i,"undefined2"),S(i,"undefined"),e.undefined=i;function n(m){return m===!0||m===!1}o(n,"boolean"),S(n,"boolean"),e.boolean=n;function a(m){return t.call(m)==="[object String]"}o(a,"string"),S(a,"string"),e.string=a;function s(m){return t.call(m)==="[object Number]"}o(s,"number"),S(s,"number"),e.number=s;function l(m,g,y){return t.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),S(l,"numberRange"),e.numberRange=l;function u(m){return t.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer2"),S(u,"integer"),e.integer=u;function h(m){return t.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger2"),S(h,"uinteger"),e.uinteger=h;function d(m){return t.call(m)==="[object Function]"}o(d,"func"),S(d,"func"),e.func=d;function f(m){return m!==null&&typeof m=="object"}o(f,"objectLiteral"),S(f,"objectLiteral"),e.objectLiteral=f;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),S(p,"typedArray"),e.typedArray=p})(Ze||(Ze={}))}}),W0=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/ral.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t;function r(){if(t===void 0)throw new Error("No runtime abstraction layer installed");return t}o(r,"RAL"),S(r,"RAL"),(function(i){function n(a){if(a===void 0)throw new Error("No runtime abstraction layer provided");t=a}o(n,"install"),S(n,"install"),i.install=n})(r||(r={})),e.default=r}}),TT=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/is.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0;function t(u){return u===!0||u===!1}o(t,"boolean"),S(t,"boolean"),e.boolean=t;function r(u){return typeof u=="string"||u instanceof String}o(r,"string"),S(r,"string"),e.string=r;function i(u){return typeof u=="number"||u instanceof Number}o(i,"number"),S(i,"number"),e.number=i;function n(u){return u instanceof Error}o(n,"error"),S(n,"error"),e.error=n;function a(u){return typeof u=="function"}o(a,"func"),S(a,"func"),e.func=a;function s(u){return Array.isArray(u)}o(s,"array"),S(s,"array"),e.array=s;function l(u){return s(u)&&u.every(h=>r(h))}o(l,"stringArray"),S(l,"stringArray"),e.stringArray=l}}),ny=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/events.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Emitter=e.Event=void 0;var t=W0(),r;(function(a){let s={dispose(){}};a.None=function(){return s}})(r||(e.Event=r={}));var i=class{static{o(this,"CallbackList")}static{S(this,"CallbackList")}add(a,s=null,l){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(a),this._contexts.push(s),Array.isArray(l)&&l.push({dispose:S(()=>this.remove(a,s),"dispose")})}remove(a,s=null){if(!this._callbacks)return;let l=!1;for(let u=0,h=this._callbacks.length;u{this._callbacks||(this._callbacks=new i),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,l);let h={dispose:S(()=>{this._callbacks&&(this._callbacks.remove(s,l),h.dispose=ive._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(u)&&u.push(h),h}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};e.Emitter=n,n._noop=function(){}}}),U5=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/cancellation.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;var t=W0(),r=TT(),i=ny(),n;(function(u){u.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:i.Event.None}),u.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:i.Event.None});function h(d){let f=d;return f&&(f===u.None||f===u.Cancelled||r.boolean(f.isCancellationRequested)&&!!f.onCancellationRequested)}o(h,"is"),S(h,"is"),u.is=h})(n||(e.CancellationToken=n={}));var a=Object.freeze(function(u,h){let d=(0,t.default)().timer.setTimeout(u.bind(h),0);return{dispose(){d.dispose()}}}),s=class{static{o(this,"MutableToken")}static{S(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?a:(this._emitter||(this._emitter=new i.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},l=class{static{o(this,"CancellationTokenSource3")}static{S(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=n.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=n.None}};e.CancellationTokenSource=l}}),nve=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messages.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Message=e.NotificationType9=e.NotificationType8=e.NotificationType7=e.NotificationType6=e.NotificationType5=e.NotificationType4=e.NotificationType3=e.NotificationType2=e.NotificationType1=e.NotificationType0=e.NotificationType=e.RequestType9=e.RequestType8=e.RequestType7=e.RequestType6=e.RequestType5=e.RequestType4=e.RequestType3=e.RequestType2=e.RequestType1=e.RequestType=e.RequestType0=e.AbstractMessageSignature=e.ParameterStructures=e.ResponseError=e.ErrorCodes=void 0;var t=TT(),r;(function(_){_.ParseError=-32700,_.InvalidRequest=-32600,_.MethodNotFound=-32601,_.InvalidParams=-32602,_.InternalError=-32603,_.jsonrpcReservedErrorRangeStart=-32099,_.serverErrorStart=-32099,_.MessageWriteError=-32099,_.MessageReadError=-32098,_.PendingResponseRejected=-32097,_.ConnectionInactive=-32096,_.ServerNotInitialized=-32002,_.UnknownErrorCode=-32001,_.jsonrpcReservedErrorRangeEnd=-32e3,_.serverErrorEnd=-32e3})(r||(e.ErrorCodes=r={}));var i=class ave extends Error{static{o(this,"_ResponseError")}static{S(this,"ResponseError")}constructor(R,M,L){super(M),this.code=t.number(R)?R:r.UnknownErrorCode,this.data=L,Object.setPrototypeOf(this,ave.prototype)}toJson(){let R={code:this.code,message:this.message};return this.data!==void 0&&(R.data=this.data),R}};e.ResponseError=i;var n=class zE{static{o(this,"_ParameterStructures")}static{S(this,"ParameterStructures")}constructor(R){this.kind=R}static is(R){return R===zE.auto||R===zE.byName||R===zE.byPosition}toString(){return this.kind}};e.ParameterStructures=n,n.auto=new n("auto"),n.byPosition=new n("byPosition"),n.byName=new n("byName");var a=class{static{o(this,"AbstractMessageSignature")}static{S(this,"AbstractMessageSignature")}constructor(_,R){this.method=_,this.numberOfParams=R}get parameterStructures(){return n.auto}};e.AbstractMessageSignature=a;var s=class extends a{static{o(this,"RequestType0")}static{S(this,"RequestType0")}constructor(_){super(_,0)}};e.RequestType0=s;var l=class extends a{static{o(this,"RequestType")}static{S(this,"RequestType")}constructor(_,R=n.auto){super(_,1),this._parameterStructures=R}get parameterStructures(){return this._parameterStructures}};e.RequestType=l;var u=class extends a{static{o(this,"RequestType1")}static{S(this,"RequestType1")}constructor(_,R=n.auto){super(_,1),this._parameterStructures=R}get parameterStructures(){return this._parameterStructures}};e.RequestType1=u;var h=class extends a{static{o(this,"RequestType2")}static{S(this,"RequestType2")}constructor(_){super(_,2)}};e.RequestType2=h;var d=class extends a{static{o(this,"RequestType3")}static{S(this,"RequestType3")}constructor(_){super(_,3)}};e.RequestType3=d;var f=class extends a{static{o(this,"RequestType4")}static{S(this,"RequestType4")}constructor(_){super(_,4)}};e.RequestType4=f;var p=class extends a{static{o(this,"RequestType5")}static{S(this,"RequestType5")}constructor(_){super(_,5)}};e.RequestType5=p;var m=class extends a{static{o(this,"RequestType6")}static{S(this,"RequestType6")}constructor(_){super(_,6)}};e.RequestType6=m;var g=class extends a{static{o(this,"RequestType7")}static{S(this,"RequestType7")}constructor(_){super(_,7)}};e.RequestType7=g;var y=class extends a{static{o(this,"RequestType8")}static{S(this,"RequestType8")}constructor(_){super(_,8)}};e.RequestType8=y;var v=class extends a{static{o(this,"RequestType9")}static{S(this,"RequestType9")}constructor(_){super(_,9)}};e.RequestType9=v;var x=class extends a{static{o(this,"NotificationType")}static{S(this,"NotificationType")}constructor(_,R=n.auto){super(_,1),this._parameterStructures=R}get parameterStructures(){return this._parameterStructures}};e.NotificationType=x;var b=class extends a{static{o(this,"NotificationType0")}static{S(this,"NotificationType0")}constructor(_){super(_,0)}};e.NotificationType0=b;var T=class extends a{static{o(this,"NotificationType1")}static{S(this,"NotificationType1")}constructor(_,R=n.auto){super(_,1),this._parameterStructures=R}get parameterStructures(){return this._parameterStructures}};e.NotificationType1=T;var w=class extends a{static{o(this,"NotificationType2")}static{S(this,"NotificationType2")}constructor(_){super(_,2)}};e.NotificationType2=w;var C=class extends a{static{o(this,"NotificationType3")}static{S(this,"NotificationType3")}constructor(_){super(_,3)}};e.NotificationType3=C;var k=class extends a{static{o(this,"NotificationType4")}static{S(this,"NotificationType4")}constructor(_){super(_,4)}};e.NotificationType4=k;var E=class extends a{static{o(this,"NotificationType5")}static{S(this,"NotificationType5")}constructor(_){super(_,5)}};e.NotificationType5=E;var A=class extends a{static{o(this,"NotificationType6")}static{S(this,"NotificationType6")}constructor(_){super(_,6)}};e.NotificationType6=A;var N=class extends a{static{o(this,"NotificationType7")}static{S(this,"NotificationType7")}constructor(_){super(_,7)}};e.NotificationType7=N;var P=class extends a{static{o(this,"NotificationType8")}static{S(this,"NotificationType8")}constructor(_){super(_,8)}};e.NotificationType8=P;var I=class extends a{static{o(this,"NotificationType9")}static{S(this,"NotificationType9")}constructor(_){super(_,9)}};e.NotificationType9=I;var D;(function(_){function R(B){let O=B;return O&&t.string(O.method)&&(t.string(O.id)||t.number(O.id))}o(R,"isRequest"),S(R,"isRequest"),_.isRequest=R;function M(B){let O=B;return O&&t.string(O.method)&&B.id===void 0}o(M,"isNotification"),S(M,"isNotification"),_.isNotification=M;function L(B){let O=B;return O&&(O.result!==void 0||!!O.error)&&(t.string(O.id)||t.number(O.id)||O.id===null)}o(L,"isResponse"),S(L,"isResponse"),_.isResponse=L})(D||(e.Message=D={}))}}),sve=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/linkedMap.js"(e){"use strict";var t;Object.defineProperty(e,"__esModule",{value:!0}),e.LRUCache=e.LinkedMap=e.Touch=void 0;var r;(function(a){a.None=0,a.First=1,a.AsOld=a.First,a.Last=2,a.AsNew=a.Last})(r||(e.Touch=r={}));var i=class{static{o(this,"LinkedMap")}static{S(this,"LinkedMap")}constructor(){this[t]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(a){return this._map.has(a)}get(a,s=r.None){let l=this._map.get(a);if(l)return s!==r.None&&this.touch(l,s),l.value}set(a,s,l=r.None){let u=this._map.get(a);if(u)u.value=s,l!==r.None&&this.touch(u,l);else{switch(u={key:a,value:s,next:void 0,previous:void 0},l){case r.None:this.addItemLast(u);break;case r.First:this.addItemFirst(u);break;case r.Last:this.addItemLast(u);break;default:this.addItemLast(u);break}this._map.set(a,u),this._size++}return this}delete(a){return!!this.remove(a)}remove(a){let s=this._map.get(a);if(s)return this._map.delete(a),this.removeItem(s),this._size--,s.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let a=this._head;return this._map.delete(a.key),this.removeItem(a),this._size--,a.value}forEach(a,s){let l=this._state,u=this._head;for(;u;){if(s?a.bind(s)(u.value,u.key,this):a(u.value,u.key,this),this._state!==l)throw new Error("LinkedMap got modified during iteration.");u=u.next}}keys(){let a=this._state,s=this._head,l={[Symbol.iterator]:()=>l,next:S(()=>{if(this._state!==a)throw new Error("LinkedMap got modified during iteration.");if(s){let u={value:s.key,done:!1};return s=s.next,u}else return{value:void 0,done:!0}},"next")};return l}values(){let a=this._state,s=this._head,l={[Symbol.iterator]:()=>l,next:S(()=>{if(this._state!==a)throw new Error("LinkedMap got modified during iteration.");if(s){let u={value:s.value,done:!1};return s=s.next,u}else return{value:void 0,done:!0}},"next")};return l}entries(){let a=this._state,s=this._head,l={[Symbol.iterator]:()=>l,next:S(()=>{if(this._state!==a)throw new Error("LinkedMap got modified during iteration.");if(s){let u={value:[s.key,s.value],done:!1};return s=s.next,u}else return{value:void 0,done:!0}},"next")};return l}[(t=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(a){if(a>=this.size)return;if(a===0){this.clear();return}let s=this._head,l=this.size;for(;s&&l>a;)this._map.delete(s.key),s=s.next,l--;this._head=s,this._size=l,s&&(s.previous=void 0),this._state++}addItemFirst(a){if(!this._head&&!this._tail)this._tail=a;else if(this._head)a.next=this._head,this._head.previous=a;else throw new Error("Invalid list");this._head=a,this._state++}addItemLast(a){if(!this._head&&!this._tail)this._head=a;else if(this._tail)a.previous=this._tail,this._tail.next=a;else throw new Error("Invalid list");this._tail=a,this._state++}removeItem(a){if(a===this._head&&a===this._tail)this._head=void 0,this._tail=void 0;else if(a===this._head){if(!a.next)throw new Error("Invalid list");a.next.previous=void 0,this._head=a.next}else if(a===this._tail){if(!a.previous)throw new Error("Invalid list");a.previous.next=void 0,this._tail=a.previous}else{let s=a.next,l=a.previous;if(!s||!l)throw new Error("Invalid list");s.previous=l,l.next=s}a.next=void 0,a.previous=void 0,this._state++}touch(a,s){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(s!==r.First&&s!==r.Last)){if(s===r.First){if(a===this._head)return;let l=a.next,u=a.previous;a===this._tail?(u.next=void 0,this._tail=u):(l.previous=u,u.next=l),a.previous=void 0,a.next=this._head,this._head.previous=a,this._head=a,this._state++}else if(s===r.Last){if(a===this._tail)return;let l=a.next,u=a.previous;a===this._head?(l.previous=void 0,this._head=l):(l.previous=u,u.next=l),a.next=void 0,a.previous=this._tail,this._tail.next=a,this._tail=a,this._state++}}}toJSON(){let a=[];return this.forEach((s,l)=>{a.push([l,s])}),a}fromJSON(a){this.clear();for(let[s,l]of a)this.set(s,l)}};e.LinkedMap=i;var n=class extends i{static{o(this,"LRUCache")}static{S(this,"LRUCache")}constructor(a,s=1){super(),this._limit=a,this._ratio=Math.min(Math.max(0,s),1)}get limit(){return this._limit}set limit(a){this._limit=a,this.checkTrim()}get ratio(){return this._ratio}set ratio(a){this._ratio=Math.min(Math.max(0,a),1),this.checkTrim()}get(a,s=r.AsNew){return super.get(a,s)}peek(a){return super.get(a,r.None)}set(a,s){return super.set(a,s,r.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};e.LRUCache=n}}),ylt=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/disposable.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Disposable=void 0;var t;(function(r){function i(n){return{dispose:n}}o(i,"create"),S(i,"create"),r.create=i})(t||(e.Disposable=t={}))}}),vlt=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=void 0;var t=U5(),r;(function(l){l.Continue=0,l.Cancelled=1})(r||(r={}));var i=class{static{o(this,"SharedArraySenderStrategy")}static{S(this,"SharedArraySenderStrategy")}constructor(){this.buffers=new Map}enableCancellation(l){if(l.id===null)return;let u=new SharedArrayBuffer(4),h=new Int32Array(u,0,1);h[0]=r.Continue,this.buffers.set(l.id,u),l.$cancellationData=u}async sendCancellation(l,u){let h=this.buffers.get(u);if(h===void 0)return;let d=new Int32Array(h,0,1);Atomics.store(d,0,r.Cancelled)}cleanup(l){this.buffers.delete(l)}dispose(){this.buffers.clear()}};e.SharedArraySenderStrategy=i;var n=class{static{o(this,"SharedArrayBufferCancellationToken")}static{S(this,"SharedArrayBufferCancellationToken")}constructor(l){this.data=new Int32Array(l,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===r.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},a=class{static{o(this,"SharedArrayBufferCancellationTokenSource")}static{S(this,"SharedArrayBufferCancellationTokenSource")}constructor(l){this.token=new n(l)}cancel(){}dispose(){}},s=class{static{o(this,"SharedArrayReceiverStrategy")}static{S(this,"SharedArrayReceiverStrategy")}constructor(){this.kind="request"}createCancellationTokenSource(l){let u=l.$cancellationData;return u===void 0?new t.CancellationTokenSource:new a(u)}};e.SharedArrayReceiverStrategy=s}}),ove=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/semaphore.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Semaphore=void 0;var t=W0(),r=class{static{o(this,"Semaphore")}static{S(this,"Semaphore")}constructor(i=1){if(i<=0)throw new Error("Capacity must be greater than 0");this._capacity=i,this._active=0,this._waiting=[]}lock(i){return new Promise((n,a)=>{this._waiting.push({thunk:i,resolve:n,reject:a}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,t.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let i=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let n=i.thunk();n instanceof Promise?n.then(a=>{this._active--,i.resolve(a),this.runNext()},a=>{this._active--,i.reject(a),this.runNext()}):(this._active--,i.resolve(n),this.runNext())}catch(n){this._active--,i.reject(n),this.runNext()}}};e.Semaphore=r}}),xlt=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messageReader.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=void 0;var t=W0(),r=TT(),i=ny(),n=ove(),a;(function(h){function d(f){let p=f;return p&&r.func(p.listen)&&r.func(p.dispose)&&r.func(p.onError)&&r.func(p.onClose)&&r.func(p.onPartialMessage)}o(d,"is"),S(d,"is"),h.is=d})(a||(e.MessageReader=a={}));var s=class{static{o(this,"AbstractMessageReader")}static{S(this,"AbstractMessageReader")}constructor(){this.errorEmitter=new i.Emitter,this.closeEmitter=new i.Emitter,this.partialMessageEmitter=new i.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(h){this.errorEmitter.fire(this.asError(h))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(h){this.partialMessageEmitter.fire(h)}asError(h){return h instanceof Error?h:new Error(`Reader received error. Reason: ${r.string(h.message)?h.message:"unknown"}`)}};e.AbstractMessageReader=s;var l;(function(h){function d(f){let p,m,g,y=new Map,v,x=new Map;if(f===void 0||typeof f=="string")p=f??"utf-8";else{if(p=f.charset??"utf-8",f.contentDecoder!==void 0&&(g=f.contentDecoder,y.set(g.name,g)),f.contentDecoders!==void 0)for(let b of f.contentDecoders)y.set(b.name,b);if(f.contentTypeDecoder!==void 0&&(v=f.contentTypeDecoder,x.set(v.name,v)),f.contentTypeDecoders!==void 0)for(let b of f.contentTypeDecoders)x.set(b.name,b)}return v===void 0&&(v=(0,t.default)().applicationJson.decoder,x.set(v.name,v)),{charset:p,contentDecoder:g,contentDecoders:y,contentTypeDecoder:v,contentTypeDecoders:x}}o(d,"fromOptions"),S(d,"fromOptions"),h.fromOptions=d})(l||(l={}));var u=class extends s{static{o(this,"ReadableStreamMessageReader")}static{S(this,"ReadableStreamMessageReader")}constructor(h,d){super(),this.readable=h,this.options=l.fromOptions(d),this.buffer=(0,t.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new n.Semaphore(1)}set partialMessageTimeout(h){this._partialMessageTimeout=h}get partialMessageTimeout(){return this._partialMessageTimeout}listen(h){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=h;let d=this.readable.onData(f=>{this.onData(f)});return this.readable.onError(f=>this.fireError(f)),this.readable.onClose(()=>this.fireClose()),d}onData(h){try{for(this.buffer.append(h);;){if(this.nextMessageLength===-1){let f=this.buffer.tryReadHeaders(!0);if(!f)return;let p=f.get("content-length");if(!p){this.fireError(new Error(`Header must provide a Content-Length property. +${JSON.stringify(Object.fromEntries(f))}`));return}let m=parseInt(p);if(isNaN(m)){this.fireError(new Error(`Content-Length value must be a number. Got ${p}`));return}this.nextMessageLength=m}let d=this.buffer.tryReadBody(this.nextMessageLength);if(d===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let f=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(d):d,p=await this.options.contentTypeDecoder.decode(f,this.options);this.callback(p)}).catch(f=>{this.fireError(f)})}}catch(d){this.fireError(d)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,t.default)().timer.setTimeout((h,d)=>{this.partialMessageTimer=void 0,h===this.messageToken&&(this.firePartialMessage({messageToken:h,waitingTime:d}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};e.ReadableStreamMessageReader=u}}),blt=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messageWriter.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=void 0;var t=W0(),r=TT(),i=ove(),n=ny(),a="Content-Length: ",s=`\r +`,l;(function(f){function p(m){let g=m;return g&&r.func(g.dispose)&&r.func(g.onClose)&&r.func(g.onError)&&r.func(g.write)}o(p,"is"),S(p,"is"),f.is=p})(l||(e.MessageWriter=l={}));var u=class{static{o(this,"AbstractMessageWriter")}static{S(this,"AbstractMessageWriter")}constructor(){this.errorEmitter=new n.Emitter,this.closeEmitter=new n.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(f,p,m){this.errorEmitter.fire([this.asError(f),p,m])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(f){return f instanceof Error?f:new Error(`Writer received error. Reason: ${r.string(f.message)?f.message:"unknown"}`)}};e.AbstractMessageWriter=u;var h;(function(f){function p(m){return m===void 0||typeof m=="string"?{charset:m??"utf-8",contentTypeEncoder:(0,t.default)().applicationJson.encoder}:{charset:m.charset??"utf-8",contentEncoder:m.contentEncoder,contentTypeEncoder:m.contentTypeEncoder??(0,t.default)().applicationJson.encoder}}o(p,"fromOptions"),S(p,"fromOptions"),f.fromOptions=p})(h||(h={}));var d=class extends u{static{o(this,"WriteableStreamMessageWriter")}static{S(this,"WriteableStreamMessageWriter")}constructor(f,p){super(),this.writable=f,this.options=h.fromOptions(p),this.errorCount=0,this.writeSemaphore=new i.Semaphore(1),this.writable.onError(m=>this.fireError(m)),this.writable.onClose(()=>this.fireClose())}async write(f){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(f,this.options).then(m=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(m):m).then(m=>{let g=[];return g.push(a,m.byteLength.toString(),s),g.push(s),this.doWrite(f,g,m)},m=>{throw this.fireError(m),m}))}async doWrite(f,p,m){try{return await this.writable.write(p.join(""),"ascii"),this.writable.write(m)}catch(g){return this.handleError(g,f),Promise.reject(g)}}handleError(f,p){this.errorCount++,this.fireError(f,p,this.errorCount)}end(){this.writable.end()}};e.WriteableStreamMessageWriter=d}}),Tlt=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractMessageBuffer=void 0;var t=13,r=10,i=`\r +`,n=class{static{o(this,"AbstractMessageBuffer")}static{S(this,"AbstractMessageBuffer")}constructor(a="utf-8"){this._encoding=a,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(a){let s=typeof a=="string"?this.fromString(a,this._encoding):a;this._chunks.push(s),this._totalLength+=s.byteLength}tryReadHeaders(a=!1){if(this._chunks.length===0)return;let s=0,l=0,u=0,h=0;e:for(;lthis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===a){let h=this._chunks[0];return this._chunks.shift(),this._totalLength-=a,this.asNative(h)}if(this._chunks[0].byteLength>a){let h=this._chunks[0],d=this.asNative(h,a);return this._chunks[0]=h.slice(a),this._totalLength-=a,d}let s=this.allocNative(a),l=0,u=0;for(;a>0;){let h=this._chunks[u];if(h.byteLength>a){let d=h.slice(0,a);s.set(d,l),l+=a,this._chunks[u]=h.slice(a),this._totalLength-=a,a-=a}else s.set(h,l),l+=h.byteLength,this._chunks.shift(),this._totalLength-=h.byteLength,a-=h.byteLength}return s}};e.AbstractMessageBuffer=n}}),Clt=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/connection.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createMessageConnection=e.ConnectionOptions=e.MessageStrategy=e.CancellationStrategy=e.CancellationSenderStrategy=e.CancellationReceiverStrategy=e.RequestCancellationReceiverStrategy=e.IdCancellationReceiverStrategy=e.ConnectionStrategy=e.ConnectionError=e.ConnectionErrors=e.LogTraceNotification=e.SetTraceNotification=e.TraceFormat=e.TraceValues=e.Trace=e.NullLogger=e.ProgressType=e.ProgressToken=void 0;var t=W0(),r=TT(),i=nve(),n=sve(),a=ny(),s=U5(),l;(function(_){_.type=new i.NotificationType("$/cancelRequest")})(l||(l={}));var u;(function(_){function R(M){return typeof M=="string"||typeof M=="number"}o(R,"is"),S(R,"is"),_.is=R})(u||(e.ProgressToken=u={}));var h;(function(_){_.type=new i.NotificationType("$/progress")})(h||(h={}));var d=class{static{o(this,"ProgressType")}static{S(this,"ProgressType")}constructor(){}};e.ProgressType=d;var f;(function(_){function R(M){return r.func(M)}o(R,"is"),S(R,"is"),_.is=R})(f||(f={})),e.NullLogger=Object.freeze({error:S(()=>{},"error"),warn:S(()=>{},"warn"),info:S(()=>{},"info"),log:S(()=>{},"log")});var p;(function(_){_[_.Off=0]="Off",_[_.Messages=1]="Messages",_[_.Compact=2]="Compact",_[_.Verbose=3]="Verbose"})(p||(e.Trace=p={}));var m;(function(_){_.Off="off",_.Messages="messages",_.Compact="compact",_.Verbose="verbose"})(m||(e.TraceValues=m={})),(function(_){function R(L){if(!r.string(L))return _.Off;switch(L=L.toLowerCase(),L){case"off":return _.Off;case"messages":return _.Messages;case"compact":return _.Compact;case"verbose":return _.Verbose;default:return _.Off}}o(R,"fromString"),S(R,"fromString"),_.fromString=R;function M(L){switch(L){case _.Off:return"off";case _.Messages:return"messages";case _.Compact:return"compact";case _.Verbose:return"verbose";default:return"off"}}o(M,"toString4"),S(M,"toString"),_.toString=M})(p||(e.Trace=p={}));var g;(function(_){_.Text="text",_.JSON="json"})(g||(e.TraceFormat=g={})),(function(_){function R(M){return r.string(M)?(M=M.toLowerCase(),M==="json"?_.JSON:_.Text):_.Text}o(R,"fromString"),S(R,"fromString"),_.fromString=R})(g||(e.TraceFormat=g={}));var y;(function(_){_.type=new i.NotificationType("$/setTrace")})(y||(e.SetTraceNotification=y={}));var v;(function(_){_.type=new i.NotificationType("$/logTrace")})(v||(e.LogTraceNotification=v={}));var x;(function(_){_[_.Closed=1]="Closed",_[_.Disposed=2]="Disposed",_[_.AlreadyListening=3]="AlreadyListening"})(x||(e.ConnectionErrors=x={}));var b=class lve extends Error{static{o(this,"_ConnectionError")}static{S(this,"ConnectionError")}constructor(R,M){super(M),this.code=R,Object.setPrototypeOf(this,lve.prototype)}};e.ConnectionError=b;var T;(function(_){function R(M){let L=M;return L&&r.func(L.cancelUndispatched)}o(R,"is"),S(R,"is"),_.is=R})(T||(e.ConnectionStrategy=T={}));var w;(function(_){function R(M){let L=M;return L&&(L.kind===void 0||L.kind==="id")&&r.func(L.createCancellationTokenSource)&&(L.dispose===void 0||r.func(L.dispose))}o(R,"is"),S(R,"is"),_.is=R})(w||(e.IdCancellationReceiverStrategy=w={}));var C;(function(_){function R(M){let L=M;return L&&L.kind==="request"&&r.func(L.createCancellationTokenSource)&&(L.dispose===void 0||r.func(L.dispose))}o(R,"is"),S(R,"is"),_.is=R})(C||(e.RequestCancellationReceiverStrategy=C={}));var k;(function(_){_.Message=Object.freeze({createCancellationTokenSource(M){return new s.CancellationTokenSource}});function R(M){return w.is(M)||C.is(M)}o(R,"is"),S(R,"is"),_.is=R})(k||(e.CancellationReceiverStrategy=k={}));var E;(function(_){_.Message=Object.freeze({sendCancellation(M,L){return M.sendNotification(l.type,{id:L})},cleanup(M){}});function R(M){let L=M;return L&&r.func(L.sendCancellation)&&r.func(L.cleanup)}o(R,"is"),S(R,"is"),_.is=R})(E||(e.CancellationSenderStrategy=E={}));var A;(function(_){_.Message=Object.freeze({receiver:k.Message,sender:E.Message});function R(M){let L=M;return L&&k.is(L.receiver)&&E.is(L.sender)}o(R,"is"),S(R,"is"),_.is=R})(A||(e.CancellationStrategy=A={}));var N;(function(_){function R(M){let L=M;return L&&r.func(L.handleMessage)}o(R,"is"),S(R,"is"),_.is=R})(N||(e.MessageStrategy=N={}));var P;(function(_){function R(M){let L=M;return L&&(A.is(L.cancellationStrategy)||T.is(L.connectionStrategy)||N.is(L.messageStrategy))}o(R,"is"),S(R,"is"),_.is=R})(P||(e.ConnectionOptions=P={}));var I;(function(_){_[_.New=1]="New",_[_.Listening=2]="Listening",_[_.Closed=3]="Closed",_[_.Disposed=4]="Disposed"})(I||(I={}));function D(_,R,M,L){let B=M!==void 0?M:e.NullLogger,O=0,$=0,G=0,F="2.0",V,H=new Map,j,U=new Map,Q=new Map,Y,ae=new n.LinkedMap,J=new Map,te=new Set,re=new Map,ee=p.Off,Te=g.Text,ue,De=I.New,Ie=new a.Emitter,Ee=new a.Emitter,we=new a.Emitter,Me=new a.Emitter,$e=new a.Emitter,de=L&&L.cancellationStrategy?L.cancellationStrategy:A.Message;function rt(pe){if(pe===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+pe.toString()}o(rt,"createRequestQueueKey"),S(rt,"createRequestQueueKey");function ke(pe){return pe===null?"res-unknown-"+(++G).toString():"res-"+pe.toString()}o(ke,"createResponseQueueKey"),S(ke,"createResponseQueueKey");function Fe(){return"not-"+(++$).toString()}o(Fe,"createNotificationQueueKey"),S(Fe,"createNotificationQueueKey");function He(pe,Qe){i.Message.isRequest(Qe)?pe.set(rt(Qe.id),Qe):i.Message.isResponse(Qe)?pe.set(ke(Qe.id),Qe):pe.set(Fe(),Qe)}o(He,"addMessageToQueue"),S(He,"addMessageToQueue");function at(pe){}o(at,"cancelUndispatched"),S(at,"cancelUndispatched");function qe(){return De===I.Listening}o(qe,"isListening"),S(qe,"isListening");function Ue(){return De===I.Closed}o(Ue,"isClosed"),S(Ue,"isClosed");function ye(){return De===I.Disposed}o(ye,"isDisposed"),S(ye,"isDisposed");function ve(){(De===I.New||De===I.Listening)&&(De=I.Closed,Ee.fire(void 0))}o(ve,"closeHandler"),S(ve,"closeHandler");function ie(pe){Ie.fire([pe,void 0,void 0])}o(ie,"readErrorHandler"),S(ie,"readErrorHandler");function fe(pe){Ie.fire(pe)}o(fe,"writeErrorHandler"),S(fe,"writeErrorHandler"),_.onClose(ve),_.onError(ie),R.onClose(ve),R.onError(fe);function W(){Y||ae.size===0||(Y=(0,t.default)().timer.setImmediate(()=>{Y=void 0,K()}))}o(W,"triggerMessageQueue"),S(W,"triggerMessageQueue");function ce(pe){i.Message.isRequest(pe)?xe(pe):i.Message.isNotification(pe)?be(pe):i.Message.isResponse(pe)?Oe(pe):Be(pe)}o(ce,"handleMessage"),S(ce,"handleMessage");function K(){if(ae.size===0)return;let pe=ae.shift();try{let Qe=L?.messageStrategy;N.is(Qe)?Qe.handleMessage(pe,ce):ce(pe)}finally{W()}}o(K,"processMessageQueue"),S(K,"processMessageQueue");let Re=S(pe=>{try{if(i.Message.isNotification(pe)&&pe.method===l.type.method){let Qe=pe.params.id,nt=rt(Qe),dt=ae.get(nt);if(i.Message.isRequest(dt)){let Rt=L?.connectionStrategy,$t=Rt&&Rt.cancelUndispatched?Rt.cancelUndispatched(dt,at):void 0;if($t&&($t.error!==void 0||$t.result!==void 0)){ae.delete(nt),re.delete(Qe),$t.id=dt.id,Ye($t,pe.method,Date.now()),R.write($t).catch(()=>B.error("Sending response for canceled message failed."));return}}let Ft=re.get(Qe);if(Ft!==void 0){Ft.cancel(),st(pe);return}else te.add(Qe)}He(ae,pe)}finally{W()}},"callback");function xe(pe){if(ye())return;function Qe(pt,Se,it){let xt={jsonrpc:F,id:pe.id};pt instanceof i.ResponseError?xt.error=pt.toJson():xt.result=pt===void 0?null:pt,Ye(xt,Se,it),R.write(xt).catch(()=>B.error("Sending response failed."))}o(Qe,"reply"),S(Qe,"reply");function nt(pt,Se,it){let xt={jsonrpc:F,id:pe.id,error:pt.toJson()};Ye(xt,Se,it),R.write(xt).catch(()=>B.error("Sending response failed."))}o(nt,"replyError"),S(nt,"replyError");function dt(pt,Se,it){pt===void 0&&(pt=null);let xt={jsonrpc:F,id:pe.id,result:pt};Ye(xt,Se,it),R.write(xt).catch(()=>B.error("Sending response failed."))}o(dt,"replySuccess"),S(dt,"replySuccess"),le(pe);let Ft=H.get(pe.method),Rt,$t;Ft&&(Rt=Ft.type,$t=Ft.handler);let lr=Date.now();if($t||V){let pt=pe.id??String(Date.now()),Se=w.is(de.receiver)?de.receiver.createCancellationTokenSource(pt):de.receiver.createCancellationTokenSource(pe);pe.id!==null&&te.has(pe.id)&&Se.cancel(),pe.id!==null&&re.set(pt,Se);try{let it;if($t)if(pe.params===void 0){if(Rt!==void 0&&Rt.numberOfParams!==0){nt(new i.ResponseError(i.ErrorCodes.InvalidParams,`Request ${pe.method} defines ${Rt.numberOfParams} params but received none.`),pe.method,lr);return}it=$t(Se.token)}else if(Array.isArray(pe.params)){if(Rt!==void 0&&Rt.parameterStructures===i.ParameterStructures.byName){nt(new i.ResponseError(i.ErrorCodes.InvalidParams,`Request ${pe.method} defines parameters by name but received parameters by position`),pe.method,lr);return}it=$t(...pe.params,Se.token)}else{if(Rt!==void 0&&Rt.parameterStructures===i.ParameterStructures.byPosition){nt(new i.ResponseError(i.ErrorCodes.InvalidParams,`Request ${pe.method} defines parameters by position but received parameters by name`),pe.method,lr);return}it=$t(pe.params,Se.token)}else V&&(it=V(pe.method,pe.params,Se.token));let xt=it;it?xt.then?xt.then(rr=>{re.delete(pt),Qe(rr,pe.method,lr)},rr=>{re.delete(pt),rr instanceof i.ResponseError?nt(rr,pe.method,lr):rr&&r.string(rr.message)?nt(new i.ResponseError(i.ErrorCodes.InternalError,`Request ${pe.method} failed with message: ${rr.message}`),pe.method,lr):nt(new i.ResponseError(i.ErrorCodes.InternalError,`Request ${pe.method} failed unexpectedly without providing any details.`),pe.method,lr)}):(re.delete(pt),Qe(it,pe.method,lr)):(re.delete(pt),dt(it,pe.method,lr))}catch(it){re.delete(pt),it instanceof i.ResponseError?Qe(it,pe.method,lr):it&&r.string(it.message)?nt(new i.ResponseError(i.ErrorCodes.InternalError,`Request ${pe.method} failed with message: ${it.message}`),pe.method,lr):nt(new i.ResponseError(i.ErrorCodes.InternalError,`Request ${pe.method} failed unexpectedly without providing any details.`),pe.method,lr)}}else nt(new i.ResponseError(i.ErrorCodes.MethodNotFound,`Unhandled method ${pe.method}`),pe.method,lr)}o(xe,"handleRequest"),S(xe,"handleRequest");function Oe(pe){if(!ye())if(pe.id===null)pe.error?B.error(`Received response message without id: Error is: +${JSON.stringify(pe.error,void 0,4)}`):B.error("Received response message without id. No further error information provided.");else{let Qe=pe.id,nt=J.get(Qe);if(me(pe,nt),nt!==void 0){J.delete(Qe);try{if(pe.error){let dt=pe.error;nt.reject(new i.ResponseError(dt.code,dt.message,dt.data))}else if(pe.result!==void 0)nt.resolve(pe.result);else throw new Error("Should never happen.")}catch(dt){dt.message?B.error(`Response handler '${nt.method}' failed with message: ${dt.message}`):B.error(`Response handler '${nt.method}' failed unexpectedly.`)}}}}o(Oe,"handleResponse"),S(Oe,"handleResponse");function be(pe){if(ye())return;let Qe,nt;if(pe.method===l.type.method){let dt=pe.params.id;te.delete(dt),st(pe);return}else{let dt=U.get(pe.method);dt&&(nt=dt.handler,Qe=dt.type)}if(nt||j)try{if(st(pe),nt)if(pe.params===void 0)Qe!==void 0&&Qe.numberOfParams!==0&&Qe.parameterStructures!==i.ParameterStructures.byName&&B.error(`Notification ${pe.method} defines ${Qe.numberOfParams} params but received none.`),nt();else if(Array.isArray(pe.params)){let dt=pe.params;pe.method===h.type.method&&dt.length===2&&u.is(dt[0])?nt({token:dt[0],value:dt[1]}):(Qe!==void 0&&(Qe.parameterStructures===i.ParameterStructures.byName&&B.error(`Notification ${pe.method} defines parameters by name but received parameters by position`),Qe.numberOfParams!==pe.params.length&&B.error(`Notification ${pe.method} defines ${Qe.numberOfParams} params but received ${dt.length} arguments`)),nt(...dt))}else Qe!==void 0&&Qe.parameterStructures===i.ParameterStructures.byPosition&&B.error(`Notification ${pe.method} defines parameters by position but received parameters by name`),nt(pe.params);else j&&j(pe.method,pe.params)}catch(dt){dt.message?B.error(`Notification handler '${pe.method}' failed with message: ${dt.message}`):B.error(`Notification handler '${pe.method}' failed unexpectedly.`)}else we.fire(pe)}o(be,"handleNotification"),S(be,"handleNotification");function Be(pe){if(!pe){B.error("Received empty message.");return}B.error(`Received message which is neither a response nor a notification message: +${JSON.stringify(pe,null,4)}`);let Qe=pe;if(r.string(Qe.id)||r.number(Qe.id)){let nt=Qe.id,dt=J.get(nt);dt&&dt.reject(new Error("The received response has neither a result nor an error property."))}}o(Be,"handleInvalidMessage"),S(Be,"handleInvalidMessage");function Ae(pe){if(pe!=null)switch(ee){case p.Verbose:return JSON.stringify(pe,null,4);case p.Compact:return JSON.stringify(pe);default:return}}o(Ae,"stringifyTrace"),S(Ae,"stringifyTrace");function Ve(pe){if(!(ee===p.Off||!ue))if(Te===g.Text){let Qe;(ee===p.Verbose||ee===p.Compact)&&pe.params&&(Qe=`Params: ${Ae(pe.params)} + +`),ue.log(`Sending request '${pe.method} - (${pe.id})'.`,Qe)}else ot("send-request",pe)}o(Ve,"traceSendingRequest"),S(Ve,"traceSendingRequest");function Pe(pe){if(!(ee===p.Off||!ue))if(Te===g.Text){let Qe;(ee===p.Verbose||ee===p.Compact)&&(pe.params?Qe=`Params: ${Ae(pe.params)} + +`:Qe=`No parameters provided. + +`),ue.log(`Sending notification '${pe.method}'.`,Qe)}else ot("send-notification",pe)}o(Pe,"traceSendingNotification"),S(Pe,"traceSendingNotification");function Ye(pe,Qe,nt){if(!(ee===p.Off||!ue))if(Te===g.Text){let dt;(ee===p.Verbose||ee===p.Compact)&&(pe.error&&pe.error.data?dt=`Error data: ${Ae(pe.error.data)} + +`:pe.result?dt=`Result: ${Ae(pe.result)} + +`:pe.error===void 0&&(dt=`No result returned. + +`)),ue.log(`Sending response '${Qe} - (${pe.id})'. Processing request took ${Date.now()-nt}ms`,dt)}else ot("send-response",pe)}o(Ye,"traceSendingResponse"),S(Ye,"traceSendingResponse");function le(pe){if(!(ee===p.Off||!ue))if(Te===g.Text){let Qe;(ee===p.Verbose||ee===p.Compact)&&pe.params&&(Qe=`Params: ${Ae(pe.params)} + +`),ue.log(`Received request '${pe.method} - (${pe.id})'.`,Qe)}else ot("receive-request",pe)}o(le,"traceReceivedRequest"),S(le,"traceReceivedRequest");function st(pe){if(!(ee===p.Off||!ue||pe.method===v.type.method))if(Te===g.Text){let Qe;(ee===p.Verbose||ee===p.Compact)&&(pe.params?Qe=`Params: ${Ae(pe.params)} + +`:Qe=`No parameters provided. + +`),ue.log(`Received notification '${pe.method}'.`,Qe)}else ot("receive-notification",pe)}o(st,"traceReceivedNotification"),S(st,"traceReceivedNotification");function me(pe,Qe){if(!(ee===p.Off||!ue))if(Te===g.Text){let nt;if((ee===p.Verbose||ee===p.Compact)&&(pe.error&&pe.error.data?nt=`Error data: ${Ae(pe.error.data)} + +`:pe.result?nt=`Result: ${Ae(pe.result)} + +`:pe.error===void 0&&(nt=`No result returned. + +`)),Qe){let dt=pe.error?` Request failed: ${pe.error.message} (${pe.error.code}).`:"";ue.log(`Received response '${Qe.method} - (${pe.id})' in ${Date.now()-Qe.timerStart}ms.${dt}`,nt)}else ue.log(`Received response ${pe.id} without active response promise.`,nt)}else ot("receive-response",pe)}o(me,"traceReceivedResponse"),S(me,"traceReceivedResponse");function ot(pe,Qe){if(!ue||ee===p.Off)return;let nt={isLSPMessage:!0,type:pe,message:Qe,timestamp:Date.now()};ue.log(nt)}o(ot,"logLSPMessage"),S(ot,"logLSPMessage");function kt(){if(Ue())throw new b(x.Closed,"Connection is closed.");if(ye())throw new b(x.Disposed,"Connection is disposed.")}o(kt,"throwIfClosedOrDisposed"),S(kt,"throwIfClosedOrDisposed");function Gt(){if(qe())throw new b(x.AlreadyListening,"Connection is already listening")}o(Gt,"throwIfListening"),S(Gt,"throwIfListening");function Tt(){if(!qe())throw new Error("Call listen() first.")}o(Tt,"throwIfNotListening"),S(Tt,"throwIfNotListening");function Et(pe){return pe===void 0?null:pe}o(Et,"undefinedToNull"),S(Et,"undefinedToNull");function yt(pe){if(pe!==null)return pe}o(yt,"nullToUndefined"),S(yt,"nullToUndefined");function oe(pe){return pe!=null&&!Array.isArray(pe)&&typeof pe=="object"}o(oe,"isNamedParam"),S(oe,"isNamedParam");function ht(pe,Qe){switch(pe){case i.ParameterStructures.auto:return oe(Qe)?yt(Qe):[Et(Qe)];case i.ParameterStructures.byName:if(!oe(Qe))throw new Error("Received parameters by name but param is not an object literal.");return yt(Qe);case i.ParameterStructures.byPosition:return[Et(Qe)];default:throw new Error(`Unknown parameter structure ${pe.toString()}`)}}o(ht,"computeSingleParam"),S(ht,"computeSingleParam");function gt(pe,Qe){let nt,dt=pe.numberOfParams;switch(dt){case 0:nt=void 0;break;case 1:nt=ht(pe.parameterStructures,Qe[0]);break;default:nt=[];for(let Ft=0;Ft{kt();let nt,dt;if(r.string(pe)){nt=pe;let Rt=Qe[0],$t=0,lr=i.ParameterStructures.auto;i.ParameterStructures.is(Rt)&&($t=1,lr=Rt);let pt=Qe.length,Se=pt-$t;switch(Se){case 0:dt=void 0;break;case 1:dt=ht(lr,Qe[$t]);break;default:if(lr===i.ParameterStructures.byName)throw new Error(`Received ${Se} parameters for 'by Name' notification parameter structure.`);dt=Qe.slice($t,pt).map(it=>Et(it));break}}else{let Rt=Qe;nt=pe.method,dt=gt(pe,Rt)}let Ft={jsonrpc:F,method:nt,params:dt};return Pe(Ft),R.write(Ft).catch(Rt=>{throw B.error("Sending notification failed."),Rt})},"sendNotification"),onNotification:S((pe,Qe)=>{kt();let nt;return r.func(pe)?j=pe:Qe&&(r.string(pe)?(nt=pe,U.set(pe,{type:void 0,handler:Qe})):(nt=pe.method,U.set(pe.method,{type:pe,handler:Qe}))),{dispose:S(()=>{nt!==void 0?U.delete(nt):j=void 0},"dispose")}},"onNotification"),onProgress:S((pe,Qe,nt)=>{if(Q.has(Qe))throw new Error(`Progress handler for token ${Qe} already registered`);return Q.set(Qe,nt),{dispose:S(()=>{Q.delete(Qe)},"dispose")}},"onProgress"),sendProgress:S((pe,Qe,nt)=>et.sendNotification(h.type,{token:Qe,value:nt}),"sendProgress"),onUnhandledProgress:Me.event,sendRequest:S((pe,...Qe)=>{kt(),Tt();let nt,dt,Ft;if(r.string(pe)){nt=pe;let pt=Qe[0],Se=Qe[Qe.length-1],it=0,xt=i.ParameterStructures.auto;i.ParameterStructures.is(pt)&&(it=1,xt=pt);let rr=Qe.length;s.CancellationToken.is(Se)&&(rr=rr-1,Ft=Se);let _r=rr-it;switch(_r){case 0:dt=void 0;break;case 1:dt=ht(xt,Qe[it]);break;default:if(xt===i.ParameterStructures.byName)throw new Error(`Received ${_r} parameters for 'by Name' request parameter structure.`);dt=Qe.slice(it,rr).map(Ur=>Et(Ur));break}}else{let pt=Qe;nt=pe.method,dt=gt(pe,pt);let Se=pe.numberOfParams;Ft=s.CancellationToken.is(pt[Se])?pt[Se]:void 0}let Rt=O++,$t;Ft&&($t=Ft.onCancellationRequested(()=>{let pt=de.sender.sendCancellation(et,Rt);return pt===void 0?(B.log(`Received no promise from cancellation strategy when cancelling id ${Rt}`),Promise.resolve()):pt.catch(()=>{B.log(`Sending cancellation messages for id ${Rt} failed`)})}));let lr={jsonrpc:F,id:Rt,method:nt,params:dt};return Ve(lr),typeof de.sender.enableCancellation=="function"&&de.sender.enableCancellation(lr),new Promise(async(pt,Se)=>{let it=S(_r=>{pt(_r),de.sender.cleanup(Rt),$t?.dispose()},"resolveWithCleanup"),xt=S(_r=>{Se(_r),de.sender.cleanup(Rt),$t?.dispose()},"rejectWithCleanup"),rr={method:nt,timerStart:Date.now(),resolve:it,reject:xt};try{await R.write(lr),J.set(Rt,rr)}catch(_r){throw B.error("Sending request failed."),rr.reject(new i.ResponseError(i.ErrorCodes.MessageWriteError,_r.message?_r.message:"Unknown reason")),_r}})},"sendRequest"),onRequest:S((pe,Qe)=>{kt();let nt=null;return f.is(pe)?(nt=void 0,V=pe):r.string(pe)?(nt=null,Qe!==void 0&&(nt=pe,H.set(pe,{handler:Qe,type:void 0}))):Qe!==void 0&&(nt=pe.method,H.set(pe.method,{type:pe,handler:Qe})),{dispose:S(()=>{nt!==null&&(nt!==void 0?H.delete(nt):V=void 0)},"dispose")}},"onRequest"),hasPendingResponse:S(()=>J.size>0,"hasPendingResponse"),trace:S(async(pe,Qe,nt)=>{let dt=!1,Ft=g.Text;nt!==void 0&&(r.boolean(nt)?dt=nt:(dt=nt.sendNotification||!1,Ft=nt.traceFormat||g.Text)),ee=pe,Te=Ft,ee===p.Off?ue=void 0:ue=Qe,dt&&!Ue()&&!ye()&&await et.sendNotification(y.type,{value:p.toString(pe)})},"trace"),onError:Ie.event,onClose:Ee.event,onUnhandledNotification:we.event,onDispose:$e.event,end:S(()=>{R.end()},"end"),dispose:S(()=>{if(ye())return;De=I.Disposed,$e.fire(void 0);let pe=new i.ResponseError(i.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let Qe of J.values())Qe.reject(pe);J=new Map,re=new Map,te=new Set,ae=new n.LinkedMap,r.func(R.dispose)&&R.dispose(),r.func(_.dispose)&&_.dispose()},"dispose"),listen:S(()=>{kt(),Gt(),De=I.Listening,_.listen(Re)},"listen"),inspect:S(()=>{(0,t.default)().console.log("inspect")},"inspect")};return et.onNotification(v.type,pe=>{if(ee===p.Off||!ue)return;let Qe=ee===p.Verbose||ee===p.Compact;ue.log(pe.message,Qe?pe.verbose:void 0)}),et.onNotification(h.type,pe=>{let Qe=Q.get(pe.token);Qe?Qe(pe.value):Me.fire(pe)}),et}o(D,"createMessageConnection"),S(D,"createMessageConnection"),e.createMessageConnection=D}}),fF=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/api.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ProgressType=e.ProgressToken=e.createMessageConnection=e.NullLogger=e.ConnectionOptions=e.ConnectionStrategy=e.AbstractMessageBuffer=e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=e.CancellationToken=e.CancellationTokenSource=e.Emitter=e.Event=e.Disposable=e.LRUCache=e.Touch=e.LinkedMap=e.ParameterStructures=e.NotificationType9=e.NotificationType8=e.NotificationType7=e.NotificationType6=e.NotificationType5=e.NotificationType4=e.NotificationType3=e.NotificationType2=e.NotificationType1=e.NotificationType0=e.NotificationType=e.ErrorCodes=e.ResponseError=e.RequestType9=e.RequestType8=e.RequestType7=e.RequestType6=e.RequestType5=e.RequestType4=e.RequestType3=e.RequestType2=e.RequestType1=e.RequestType0=e.RequestType=e.Message=e.RAL=void 0,e.MessageStrategy=e.CancellationStrategy=e.CancellationSenderStrategy=e.CancellationReceiverStrategy=e.ConnectionError=e.ConnectionErrors=e.LogTraceNotification=e.SetTraceNotification=e.TraceFormat=e.TraceValues=e.Trace=void 0;var t=nve();Object.defineProperty(e,"Message",{enumerable:!0,get:S(function(){return t.Message},"get")}),Object.defineProperty(e,"RequestType",{enumerable:!0,get:S(function(){return t.RequestType},"get")}),Object.defineProperty(e,"RequestType0",{enumerable:!0,get:S(function(){return t.RequestType0},"get")}),Object.defineProperty(e,"RequestType1",{enumerable:!0,get:S(function(){return t.RequestType1},"get")}),Object.defineProperty(e,"RequestType2",{enumerable:!0,get:S(function(){return t.RequestType2},"get")}),Object.defineProperty(e,"RequestType3",{enumerable:!0,get:S(function(){return t.RequestType3},"get")}),Object.defineProperty(e,"RequestType4",{enumerable:!0,get:S(function(){return t.RequestType4},"get")}),Object.defineProperty(e,"RequestType5",{enumerable:!0,get:S(function(){return t.RequestType5},"get")}),Object.defineProperty(e,"RequestType6",{enumerable:!0,get:S(function(){return t.RequestType6},"get")}),Object.defineProperty(e,"RequestType7",{enumerable:!0,get:S(function(){return t.RequestType7},"get")}),Object.defineProperty(e,"RequestType8",{enumerable:!0,get:S(function(){return t.RequestType8},"get")}),Object.defineProperty(e,"RequestType9",{enumerable:!0,get:S(function(){return t.RequestType9},"get")}),Object.defineProperty(e,"ResponseError",{enumerable:!0,get:S(function(){return t.ResponseError},"get")}),Object.defineProperty(e,"ErrorCodes",{enumerable:!0,get:S(function(){return t.ErrorCodes},"get")}),Object.defineProperty(e,"NotificationType",{enumerable:!0,get:S(function(){return t.NotificationType},"get")}),Object.defineProperty(e,"NotificationType0",{enumerable:!0,get:S(function(){return t.NotificationType0},"get")}),Object.defineProperty(e,"NotificationType1",{enumerable:!0,get:S(function(){return t.NotificationType1},"get")}),Object.defineProperty(e,"NotificationType2",{enumerable:!0,get:S(function(){return t.NotificationType2},"get")}),Object.defineProperty(e,"NotificationType3",{enumerable:!0,get:S(function(){return t.NotificationType3},"get")}),Object.defineProperty(e,"NotificationType4",{enumerable:!0,get:S(function(){return t.NotificationType4},"get")}),Object.defineProperty(e,"NotificationType5",{enumerable:!0,get:S(function(){return t.NotificationType5},"get")}),Object.defineProperty(e,"NotificationType6",{enumerable:!0,get:S(function(){return t.NotificationType6},"get")}),Object.defineProperty(e,"NotificationType7",{enumerable:!0,get:S(function(){return t.NotificationType7},"get")}),Object.defineProperty(e,"NotificationType8",{enumerable:!0,get:S(function(){return t.NotificationType8},"get")}),Object.defineProperty(e,"NotificationType9",{enumerable:!0,get:S(function(){return t.NotificationType9},"get")}),Object.defineProperty(e,"ParameterStructures",{enumerable:!0,get:S(function(){return t.ParameterStructures},"get")});var r=sve();Object.defineProperty(e,"LinkedMap",{enumerable:!0,get:S(function(){return r.LinkedMap},"get")}),Object.defineProperty(e,"LRUCache",{enumerable:!0,get:S(function(){return r.LRUCache},"get")}),Object.defineProperty(e,"Touch",{enumerable:!0,get:S(function(){return r.Touch},"get")});var i=ylt();Object.defineProperty(e,"Disposable",{enumerable:!0,get:S(function(){return i.Disposable},"get")});var n=ny();Object.defineProperty(e,"Event",{enumerable:!0,get:S(function(){return n.Event},"get")}),Object.defineProperty(e,"Emitter",{enumerable:!0,get:S(function(){return n.Emitter},"get")});var a=U5();Object.defineProperty(e,"CancellationTokenSource",{enumerable:!0,get:S(function(){return a.CancellationTokenSource},"get")}),Object.defineProperty(e,"CancellationToken",{enumerable:!0,get:S(function(){return a.CancellationToken},"get")});var s=vlt();Object.defineProperty(e,"SharedArraySenderStrategy",{enumerable:!0,get:S(function(){return s.SharedArraySenderStrategy},"get")}),Object.defineProperty(e,"SharedArrayReceiverStrategy",{enumerable:!0,get:S(function(){return s.SharedArrayReceiverStrategy},"get")});var l=xlt();Object.defineProperty(e,"MessageReader",{enumerable:!0,get:S(function(){return l.MessageReader},"get")}),Object.defineProperty(e,"AbstractMessageReader",{enumerable:!0,get:S(function(){return l.AbstractMessageReader},"get")}),Object.defineProperty(e,"ReadableStreamMessageReader",{enumerable:!0,get:S(function(){return l.ReadableStreamMessageReader},"get")});var u=blt();Object.defineProperty(e,"MessageWriter",{enumerable:!0,get:S(function(){return u.MessageWriter},"get")}),Object.defineProperty(e,"AbstractMessageWriter",{enumerable:!0,get:S(function(){return u.AbstractMessageWriter},"get")}),Object.defineProperty(e,"WriteableStreamMessageWriter",{enumerable:!0,get:S(function(){return u.WriteableStreamMessageWriter},"get")});var h=Tlt();Object.defineProperty(e,"AbstractMessageBuffer",{enumerable:!0,get:S(function(){return h.AbstractMessageBuffer},"get")});var d=Clt();Object.defineProperty(e,"ConnectionStrategy",{enumerable:!0,get:S(function(){return d.ConnectionStrategy},"get")}),Object.defineProperty(e,"ConnectionOptions",{enumerable:!0,get:S(function(){return d.ConnectionOptions},"get")}),Object.defineProperty(e,"NullLogger",{enumerable:!0,get:S(function(){return d.NullLogger},"get")}),Object.defineProperty(e,"createMessageConnection",{enumerable:!0,get:S(function(){return d.createMessageConnection},"get")}),Object.defineProperty(e,"ProgressToken",{enumerable:!0,get:S(function(){return d.ProgressToken},"get")}),Object.defineProperty(e,"ProgressType",{enumerable:!0,get:S(function(){return d.ProgressType},"get")}),Object.defineProperty(e,"Trace",{enumerable:!0,get:S(function(){return d.Trace},"get")}),Object.defineProperty(e,"TraceValues",{enumerable:!0,get:S(function(){return d.TraceValues},"get")}),Object.defineProperty(e,"TraceFormat",{enumerable:!0,get:S(function(){return d.TraceFormat},"get")}),Object.defineProperty(e,"SetTraceNotification",{enumerable:!0,get:S(function(){return d.SetTraceNotification},"get")}),Object.defineProperty(e,"LogTraceNotification",{enumerable:!0,get:S(function(){return d.LogTraceNotification},"get")}),Object.defineProperty(e,"ConnectionErrors",{enumerable:!0,get:S(function(){return d.ConnectionErrors},"get")}),Object.defineProperty(e,"ConnectionError",{enumerable:!0,get:S(function(){return d.ConnectionError},"get")}),Object.defineProperty(e,"CancellationReceiverStrategy",{enumerable:!0,get:S(function(){return d.CancellationReceiverStrategy},"get")}),Object.defineProperty(e,"CancellationSenderStrategy",{enumerable:!0,get:S(function(){return d.CancellationSenderStrategy},"get")}),Object.defineProperty(e,"CancellationStrategy",{enumerable:!0,get:S(function(){return d.CancellationStrategy},"get")}),Object.defineProperty(e,"MessageStrategy",{enumerable:!0,get:S(function(){return d.MessageStrategy},"get")});var f=W0();e.RAL=f.default}}),klt=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/browser/ril.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=fF(),r=class cve extends t.AbstractMessageBuffer{static{o(this,"_MessageBuffer")}static{S(this,"MessageBuffer")}constructor(h="utf-8"){super(h),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return cve.emptyBuffer}fromString(h,d){return new TextEncoder().encode(h)}toString(h,d){return d==="ascii"?this.asciiDecoder.decode(h):new TextDecoder(d).decode(h)}asNative(h,d){return d===void 0?h:h.slice(0,d)}allocNative(h){return new Uint8Array(h)}};r.emptyBuffer=new Uint8Array(0);var i=class{static{o(this,"ReadableStreamWrapper")}static{S(this,"ReadableStreamWrapper")}constructor(u){this.socket=u,this._onData=new t.Emitter,this._messageListener=h=>{h.data.arrayBuffer().then(f=>{this._onData.fire(new Uint8Array(f))},()=>{(0,t.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(u){return this.socket.addEventListener("close",u),t.Disposable.create(()=>this.socket.removeEventListener("close",u))}onError(u){return this.socket.addEventListener("error",u),t.Disposable.create(()=>this.socket.removeEventListener("error",u))}onEnd(u){return this.socket.addEventListener("end",u),t.Disposable.create(()=>this.socket.removeEventListener("end",u))}onData(u){return this._onData.event(u)}},n=class{static{o(this,"WritableStreamWrapper")}static{S(this,"WritableStreamWrapper")}constructor(u){this.socket=u}onClose(u){return this.socket.addEventListener("close",u),t.Disposable.create(()=>this.socket.removeEventListener("close",u))}onError(u){return this.socket.addEventListener("error",u),t.Disposable.create(()=>this.socket.removeEventListener("error",u))}onEnd(u){return this.socket.addEventListener("end",u),t.Disposable.create(()=>this.socket.removeEventListener("end",u))}write(u,h){if(typeof u=="string"){if(h!==void 0&&h!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${h}`);this.socket.send(u)}else this.socket.send(u);return Promise.resolve()}end(){this.socket.close()}},a=new TextEncoder,s=Object.freeze({messageBuffer:Object.freeze({create:S(u=>new r(u),"create")}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:S((u,h)=>{if(h.charset!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${h.charset}`);return Promise.resolve(a.encode(JSON.stringify(u,void 0,0)))},"encode")}),decoder:Object.freeze({name:"application/json",decode:S((u,h)=>{if(!(u instanceof Uint8Array))throw new Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(h.charset).decode(u)))},"decode")})}),stream:Object.freeze({asReadableStream:S(u=>new i(u),"asReadableStream"),asWritableStream:S(u=>new n(u),"asWritableStream")}),console,timer:Object.freeze({setTimeout(u,h,...d){let f=setTimeout(u,h,...d);return{dispose:S(()=>clearTimeout(f),"dispose")}},setImmediate(u,...h){let d=setTimeout(u,0,...h);return{dispose:S(()=>clearTimeout(d),"dispose")}},setInterval(u,h,...d){let f=setInterval(u,h,...d);return{dispose:S(()=>clearInterval(f),"dispose")}}})});function l(){return s}o(l,"RIL"),S(l,"RIL"),(function(u){function h(){t.RAL.install(s)}o(h,"install"),S(h,"install"),u.install=h})(l||(l={})),e.default=l}}),ay=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/browser/main.js"(e){"use strict";var t=e&&e.__createBinding||(Object.create?(function(u,h,d,f){f===void 0&&(f=d);var p=Object.getOwnPropertyDescriptor(h,d);(!p||("get"in p?!h.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:S(function(){return h[d]},"get")}),Object.defineProperty(u,f,p)}):(function(u,h,d,f){f===void 0&&(f=d),u[f]=h[d]})),r=e&&e.__exportStar||function(u,h){for(var d in u)d!=="default"&&!Object.prototype.hasOwnProperty.call(h,d)&&t(h,u,d)};Object.defineProperty(e,"__esModule",{value:!0}),e.createMessageConnection=e.BrowserMessageWriter=e.BrowserMessageReader=void 0;var i=klt();i.default.install();var n=fF();r(fF(),e);var a=class extends n.AbstractMessageReader{static{o(this,"BrowserMessageReader")}static{S(this,"BrowserMessageReader")}constructor(u){super(),this._onData=new n.Emitter,this._messageListener=h=>{this._onData.fire(h.data)},u.addEventListener("error",h=>this.fireError(h)),u.onmessage=this._messageListener}listen(u){return this._onData.event(u)}};e.BrowserMessageReader=a;var s=class extends n.AbstractMessageWriter{static{o(this,"BrowserMessageWriter")}static{S(this,"BrowserMessageWriter")}constructor(u){super(),this.port=u,this.errorCount=0,u.addEventListener("error",h=>this.fireError(h))}write(u){try{return this.port.postMessage(u),Promise.resolve()}catch(h){return this.handleError(h,u),Promise.reject(h)}}handleError(u,h){this.errorCount++,this.fireError(u,h,this.errorCount)}end(){}};e.BrowserMessageWriter=s;function l(u,h,d,f){return d===void 0&&(d=n.NullLogger),n.ConnectionStrategy.is(f)&&(f={connectionStrategy:f}),(0,n.createMessageConnection)(u,h,d,f)}o(l,"createMessageConnection"),S(l,"createMessageConnection"),e.createMessageConnection=l}}),g1e=Lr({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/browser.js"(e,t){"use strict";t.exports=ay()}}),tn=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/messages.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ProtocolNotificationType=e.ProtocolNotificationType0=e.ProtocolRequestType=e.ProtocolRequestType0=e.RegistrationType=e.MessageDirection=void 0;var t=ay(),r;(function(u){u.clientToServer="clientToServer",u.serverToClient="serverToClient",u.both="both"})(r||(e.MessageDirection=r={}));var i=class{static{o(this,"RegistrationType")}static{S(this,"RegistrationType")}constructor(u){this.method=u}};e.RegistrationType=i;var n=class extends t.RequestType0{static{o(this,"ProtocolRequestType0")}static{S(this,"ProtocolRequestType0")}constructor(u){super(u)}};e.ProtocolRequestType0=n;var a=class extends t.RequestType{static{o(this,"ProtocolRequestType")}static{S(this,"ProtocolRequestType")}constructor(u){super(u,t.ParameterStructures.byName)}};e.ProtocolRequestType=a;var s=class extends t.NotificationType0{static{o(this,"ProtocolNotificationType0")}static{S(this,"ProtocolNotificationType0")}constructor(u){super(u)}};e.ProtocolNotificationType0=s;var l=class extends t.NotificationType{static{o(this,"ProtocolNotificationType")}static{S(this,"ProtocolNotificationType")}constructor(u){super(u,t.ParameterStructures.byName)}};e.ProtocolNotificationType=l}}),h$=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.objectLiteral=e.typedArray=e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0;function t(d){return d===!0||d===!1}o(t,"boolean"),S(t,"boolean"),e.boolean=t;function r(d){return typeof d=="string"||d instanceof String}o(r,"string"),S(r,"string"),e.string=r;function i(d){return typeof d=="number"||d instanceof Number}o(i,"number"),S(i,"number"),e.number=i;function n(d){return d instanceof Error}o(n,"error"),S(n,"error"),e.error=n;function a(d){return typeof d=="function"}o(a,"func"),S(a,"func"),e.func=a;function s(d){return Array.isArray(d)}o(s,"array"),S(s,"array"),e.array=s;function l(d){return s(d)&&d.every(f=>r(f))}o(l,"stringArray"),S(l,"stringArray"),e.stringArray=l;function u(d,f){return Array.isArray(d)&&d.every(f)}o(u,"typedArray"),S(u,"typedArray"),e.typedArray=u;function h(d){return d!==null&&typeof d=="object"}o(h,"objectLiteral"),S(h,"objectLiteral"),e.objectLiteral=h}}),wlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ImplementationRequest=void 0;var t=tn(),r;(function(i){i.method="textDocument/implementation",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(r||(e.ImplementationRequest=r={}))}}),Slt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TypeDefinitionRequest=void 0;var t=tn(),r;(function(i){i.method="textDocument/typeDefinition",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(r||(e.TypeDefinitionRequest=r={}))}}),Elt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DidChangeWorkspaceFoldersNotification=e.WorkspaceFoldersRequest=void 0;var t=tn(),r;(function(n){n.method="workspace/workspaceFolders",n.messageDirection=t.MessageDirection.serverToClient,n.type=new t.ProtocolRequestType0(n.method)})(r||(e.WorkspaceFoldersRequest=r={}));var i;(function(n){n.method="workspace/didChangeWorkspaceFolders",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolNotificationType(n.method)})(i||(e.DidChangeWorkspaceFoldersNotification=i={}))}}),Alt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ConfigurationRequest=void 0;var t=tn(),r;(function(i){i.method="workspace/configuration",i.messageDirection=t.MessageDirection.serverToClient,i.type=new t.ProtocolRequestType(i.method)})(r||(e.ConfigurationRequest=r={}))}}),_lt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPresentationRequest=e.DocumentColorRequest=void 0;var t=tn(),r;(function(n){n.method="textDocument/documentColor",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)})(r||(e.DocumentColorRequest=r={}));var i;(function(n){n.method="textDocument/colorPresentation",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)})(i||(e.ColorPresentationRequest=i={}))}}),Dlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingRangeRefreshRequest=e.FoldingRangeRequest=void 0;var t=tn(),r;(function(n){n.method="textDocument/foldingRange",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)})(r||(e.FoldingRangeRequest=r={}));var i;(function(n){n.method="workspace/foldingRange/refresh",n.messageDirection=t.MessageDirection.serverToClient,n.type=new t.ProtocolRequestType0(n.method)})(i||(e.FoldingRangeRefreshRequest=i={}))}}),Rlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DeclarationRequest=void 0;var t=tn(),r;(function(i){i.method="textDocument/declaration",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(r||(e.DeclarationRequest=r={}))}}),Llt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectionRangeRequest=void 0;var t=tn(),r;(function(i){i.method="textDocument/selectionRange",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(r||(e.SelectionRangeRequest=r={}))}}),Mlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WorkDoneProgressCancelNotification=e.WorkDoneProgressCreateRequest=e.WorkDoneProgress=void 0;var t=ay(),r=tn(),i;(function(s){s.type=new t.ProgressType;function l(u){return u===s.type}o(l,"is"),S(l,"is"),s.is=l})(i||(e.WorkDoneProgress=i={}));var n;(function(s){s.method="window/workDoneProgress/create",s.messageDirection=r.MessageDirection.serverToClient,s.type=new r.ProtocolRequestType(s.method)})(n||(e.WorkDoneProgressCreateRequest=n={}));var a;(function(s){s.method="window/workDoneProgress/cancel",s.messageDirection=r.MessageDirection.clientToServer,s.type=new r.ProtocolNotificationType(s.method)})(a||(e.WorkDoneProgressCancelNotification=a={}))}}),Nlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CallHierarchyOutgoingCallsRequest=e.CallHierarchyIncomingCallsRequest=e.CallHierarchyPrepareRequest=void 0;var t=tn(),r;(function(a){a.method="textDocument/prepareCallHierarchy",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(r||(e.CallHierarchyPrepareRequest=r={}));var i;(function(a){a.method="callHierarchy/incomingCalls",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(i||(e.CallHierarchyIncomingCallsRequest=i={}));var n;(function(a){a.method="callHierarchy/outgoingCalls",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(n||(e.CallHierarchyOutgoingCallsRequest=n={}))}}),Ilt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SemanticTokensRefreshRequest=e.SemanticTokensRangeRequest=e.SemanticTokensDeltaRequest=e.SemanticTokensRequest=e.SemanticTokensRegistrationType=e.TokenFormat=void 0;var t=tn(),r;(function(u){u.Relative="relative"})(r||(e.TokenFormat=r={}));var i;(function(u){u.method="textDocument/semanticTokens",u.type=new t.RegistrationType(u.method)})(i||(e.SemanticTokensRegistrationType=i={}));var n;(function(u){u.method="textDocument/semanticTokens/full",u.messageDirection=t.MessageDirection.clientToServer,u.type=new t.ProtocolRequestType(u.method),u.registrationMethod=i.method})(n||(e.SemanticTokensRequest=n={}));var a;(function(u){u.method="textDocument/semanticTokens/full/delta",u.messageDirection=t.MessageDirection.clientToServer,u.type=new t.ProtocolRequestType(u.method),u.registrationMethod=i.method})(a||(e.SemanticTokensDeltaRequest=a={}));var s;(function(u){u.method="textDocument/semanticTokens/range",u.messageDirection=t.MessageDirection.clientToServer,u.type=new t.ProtocolRequestType(u.method),u.registrationMethod=i.method})(s||(e.SemanticTokensRangeRequest=s={}));var l;(function(u){u.method="workspace/semanticTokens/refresh",u.messageDirection=t.MessageDirection.serverToClient,u.type=new t.ProtocolRequestType0(u.method)})(l||(e.SemanticTokensRefreshRequest=l={}))}}),Olt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShowDocumentRequest=void 0;var t=tn(),r;(function(i){i.method="window/showDocument",i.messageDirection=t.MessageDirection.serverToClient,i.type=new t.ProtocolRequestType(i.method)})(r||(e.ShowDocumentRequest=r={}))}}),Plt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinkedEditingRangeRequest=void 0;var t=tn(),r;(function(i){i.method="textDocument/linkedEditingRange",i.messageDirection=t.MessageDirection.clientToServer,i.type=new t.ProtocolRequestType(i.method)})(r||(e.LinkedEditingRangeRequest=r={}))}}),Blt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WillDeleteFilesRequest=e.DidDeleteFilesNotification=e.DidRenameFilesNotification=e.WillRenameFilesRequest=e.DidCreateFilesNotification=e.WillCreateFilesRequest=e.FileOperationPatternKind=void 0;var t=tn(),r;(function(h){h.file="file",h.folder="folder"})(r||(e.FileOperationPatternKind=r={}));var i;(function(h){h.method="workspace/willCreateFiles",h.messageDirection=t.MessageDirection.clientToServer,h.type=new t.ProtocolRequestType(h.method)})(i||(e.WillCreateFilesRequest=i={}));var n;(function(h){h.method="workspace/didCreateFiles",h.messageDirection=t.MessageDirection.clientToServer,h.type=new t.ProtocolNotificationType(h.method)})(n||(e.DidCreateFilesNotification=n={}));var a;(function(h){h.method="workspace/willRenameFiles",h.messageDirection=t.MessageDirection.clientToServer,h.type=new t.ProtocolRequestType(h.method)})(a||(e.WillRenameFilesRequest=a={}));var s;(function(h){h.method="workspace/didRenameFiles",h.messageDirection=t.MessageDirection.clientToServer,h.type=new t.ProtocolNotificationType(h.method)})(s||(e.DidRenameFilesNotification=s={}));var l;(function(h){h.method="workspace/didDeleteFiles",h.messageDirection=t.MessageDirection.clientToServer,h.type=new t.ProtocolNotificationType(h.method)})(l||(e.DidDeleteFilesNotification=l={}));var u;(function(h){h.method="workspace/willDeleteFiles",h.messageDirection=t.MessageDirection.clientToServer,h.type=new t.ProtocolRequestType(h.method)})(u||(e.WillDeleteFilesRequest=u={}))}}),Flt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MonikerRequest=e.MonikerKind=e.UniquenessLevel=void 0;var t=tn(),r;(function(a){a.document="document",a.project="project",a.group="group",a.scheme="scheme",a.global="global"})(r||(e.UniquenessLevel=r={}));var i;(function(a){a.$import="import",a.$export="export",a.local="local"})(i||(e.MonikerKind=i={}));var n;(function(a){a.method="textDocument/moniker",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(n||(e.MonikerRequest=n={}))}}),$lt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TypeHierarchySubtypesRequest=e.TypeHierarchySupertypesRequest=e.TypeHierarchyPrepareRequest=void 0;var t=tn(),r;(function(a){a.method="textDocument/prepareTypeHierarchy",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(r||(e.TypeHierarchyPrepareRequest=r={}));var i;(function(a){a.method="typeHierarchy/supertypes",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(i||(e.TypeHierarchySupertypesRequest=i={}));var n;(function(a){a.method="typeHierarchy/subtypes",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(n||(e.TypeHierarchySubtypesRequest=n={}))}}),zlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineValueRefreshRequest=e.InlineValueRequest=void 0;var t=tn(),r;(function(n){n.method="textDocument/inlineValue",n.messageDirection=t.MessageDirection.clientToServer,n.type=new t.ProtocolRequestType(n.method)})(r||(e.InlineValueRequest=r={}));var i;(function(n){n.method="workspace/inlineValue/refresh",n.messageDirection=t.MessageDirection.serverToClient,n.type=new t.ProtocolRequestType0(n.method)})(i||(e.InlineValueRefreshRequest=i={}))}}),Glt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintRefreshRequest=e.InlayHintResolveRequest=e.InlayHintRequest=void 0;var t=tn(),r;(function(a){a.method="textDocument/inlayHint",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(r||(e.InlayHintRequest=r={}));var i;(function(a){a.method="inlayHint/resolve",a.messageDirection=t.MessageDirection.clientToServer,a.type=new t.ProtocolRequestType(a.method)})(i||(e.InlayHintResolveRequest=i={}));var n;(function(a){a.method="workspace/inlayHint/refresh",a.messageDirection=t.MessageDirection.serverToClient,a.type=new t.ProtocolRequestType0(a.method)})(n||(e.InlayHintRefreshRequest=n={}))}}),Vlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiagnosticRefreshRequest=e.WorkspaceDiagnosticRequest=e.DocumentDiagnosticRequest=e.DocumentDiagnosticReportKind=e.DiagnosticServerCancellationData=void 0;var t=ay(),r=h$(),i=tn(),n;(function(h){function d(f){let p=f;return p&&r.boolean(p.retriggerRequest)}o(d,"is"),S(d,"is"),h.is=d})(n||(e.DiagnosticServerCancellationData=n={}));var a;(function(h){h.Full="full",h.Unchanged="unchanged"})(a||(e.DocumentDiagnosticReportKind=a={}));var s;(function(h){h.method="textDocument/diagnostic",h.messageDirection=i.MessageDirection.clientToServer,h.type=new i.ProtocolRequestType(h.method),h.partialResult=new t.ProgressType})(s||(e.DocumentDiagnosticRequest=s={}));var l;(function(h){h.method="workspace/diagnostic",h.messageDirection=i.MessageDirection.clientToServer,h.type=new i.ProtocolRequestType(h.method),h.partialResult=new t.ProgressType})(l||(e.WorkspaceDiagnosticRequest=l={}));var u;(function(h){h.method="workspace/diagnostic/refresh",h.messageDirection=i.MessageDirection.serverToClient,h.type=new i.ProtocolRequestType0(h.method)})(u||(e.DiagnosticRefreshRequest=u={}))}}),Wlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DidCloseNotebookDocumentNotification=e.DidSaveNotebookDocumentNotification=e.DidChangeNotebookDocumentNotification=e.NotebookCellArrayChange=e.DidOpenNotebookDocumentNotification=e.NotebookDocumentSyncRegistrationType=e.NotebookDocument=e.NotebookCell=e.ExecutionSummary=e.NotebookCellKind=void 0;var t=(bT(),u$(q5)),r=h$(),i=tn(),n;(function(g){g.Markup=1,g.Code=2;function y(v){return v===1||v===2}o(y,"is"),S(y,"is"),g.is=y})(n||(e.NotebookCellKind=n={}));var a;(function(g){function y(b,T){let w={executionOrder:b};return(T===!0||T===!1)&&(w.success=T),w}o(y,"create"),S(y,"create"),g.create=y;function v(b){let T=b;return r.objectLiteral(T)&&t.uinteger.is(T.executionOrder)&&(T.success===void 0||r.boolean(T.success))}o(v,"is"),S(v,"is"),g.is=v;function x(b,T){return b===T?!0:b==null||T===null||T===void 0?!1:b.executionOrder===T.executionOrder&&b.success===T.success}o(x,"equals"),S(x,"equals"),g.equals=x})(a||(e.ExecutionSummary=a={}));var s;(function(g){function y(T,w){return{kind:T,document:w}}o(y,"create"),S(y,"create"),g.create=y;function v(T){let w=T;return r.objectLiteral(w)&&n.is(w.kind)&&t.DocumentUri.is(w.document)&&(w.metadata===void 0||r.objectLiteral(w.metadata))}o(v,"is"),S(v,"is"),g.is=v;function x(T,w){let C=new Set;return T.document!==w.document&&C.add("document"),T.kind!==w.kind&&C.add("kind"),T.executionSummary!==w.executionSummary&&C.add("executionSummary"),(T.metadata!==void 0||w.metadata!==void 0)&&!b(T.metadata,w.metadata)&&C.add("metadata"),(T.executionSummary!==void 0||w.executionSummary!==void 0)&&!a.equals(T.executionSummary,w.executionSummary)&&C.add("executionSummary"),C}o(x,"diff"),S(x,"diff"),g.diff=x;function b(T,w){if(T===w)return!0;if(T==null||w===null||w===void 0||typeof T!=typeof w||typeof T!="object")return!1;let C=Array.isArray(T),k=Array.isArray(w);if(C!==k)return!1;if(C&&k){if(T.length!==w.length)return!1;for(let E=0;E0}o(ht,"hasId"),S(ht,"hasId"),oe.hasId=ht})(O||(e.StaticRegistrationOptions=O={}));var $;(function(oe){function ht(gt){let et=gt;return et&&(et.documentSelector===null||D.is(et.documentSelector))}o(ht,"is"),S(ht,"is"),oe.is=ht})($||(e.TextDocumentRegistrationOptions=$={}));var G;(function(oe){function ht(et){let pe=et;return i.objectLiteral(pe)&&(pe.workDoneProgress===void 0||i.boolean(pe.workDoneProgress))}o(ht,"is"),S(ht,"is"),oe.is=ht;function gt(et){let pe=et;return pe&&i.boolean(pe.workDoneProgress)}o(gt,"hasWorkDoneProgress"),S(gt,"hasWorkDoneProgress"),oe.hasWorkDoneProgress=gt})(G||(e.WorkDoneProgressOptions=G={}));var F;(function(oe){oe.method="initialize",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(F||(e.InitializeRequest=F={}));var V;(function(oe){oe.unknownProtocolVersion=1})(V||(e.InitializeErrorCodes=V={}));var H;(function(oe){oe.method="initialized",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType(oe.method)})(H||(e.InitializedNotification=H={}));var j;(function(oe){oe.method="shutdown",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType0(oe.method)})(j||(e.ShutdownRequest=j={}));var U;(function(oe){oe.method="exit",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType0(oe.method)})(U||(e.ExitNotification=U={}));var Q;(function(oe){oe.method="workspace/didChangeConfiguration",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType(oe.method)})(Q||(e.DidChangeConfigurationNotification=Q={}));var Y;(function(oe){oe.Error=1,oe.Warning=2,oe.Info=3,oe.Log=4,oe.Debug=5})(Y||(e.MessageType=Y={}));var ae;(function(oe){oe.method="window/showMessage",oe.messageDirection=t.MessageDirection.serverToClient,oe.type=new t.ProtocolNotificationType(oe.method)})(ae||(e.ShowMessageNotification=ae={}));var J;(function(oe){oe.method="window/showMessageRequest",oe.messageDirection=t.MessageDirection.serverToClient,oe.type=new t.ProtocolRequestType(oe.method)})(J||(e.ShowMessageRequest=J={}));var te;(function(oe){oe.method="window/logMessage",oe.messageDirection=t.MessageDirection.serverToClient,oe.type=new t.ProtocolNotificationType(oe.method)})(te||(e.LogMessageNotification=te={}));var re;(function(oe){oe.method="telemetry/event",oe.messageDirection=t.MessageDirection.serverToClient,oe.type=new t.ProtocolNotificationType(oe.method)})(re||(e.TelemetryEventNotification=re={}));var ee;(function(oe){oe.None=0,oe.Full=1,oe.Incremental=2})(ee||(e.TextDocumentSyncKind=ee={}));var Te;(function(oe){oe.method="textDocument/didOpen",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType(oe.method)})(Te||(e.DidOpenTextDocumentNotification=Te={}));var ue;(function(oe){function ht(et){let pe=et;return pe!=null&&typeof pe.text=="string"&&pe.range!==void 0&&(pe.rangeLength===void 0||typeof pe.rangeLength=="number")}o(ht,"isIncremental"),S(ht,"isIncremental"),oe.isIncremental=ht;function gt(et){let pe=et;return pe!=null&&typeof pe.text=="string"&&pe.range===void 0&&pe.rangeLength===void 0}o(gt,"isFull"),S(gt,"isFull"),oe.isFull=gt})(ue||(e.TextDocumentContentChangeEvent=ue={}));var De;(function(oe){oe.method="textDocument/didChange",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType(oe.method)})(De||(e.DidChangeTextDocumentNotification=De={}));var Ie;(function(oe){oe.method="textDocument/didClose",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType(oe.method)})(Ie||(e.DidCloseTextDocumentNotification=Ie={}));var Ee;(function(oe){oe.method="textDocument/didSave",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType(oe.method)})(Ee||(e.DidSaveTextDocumentNotification=Ee={}));var we;(function(oe){oe.Manual=1,oe.AfterDelay=2,oe.FocusOut=3})(we||(e.TextDocumentSaveReason=we={}));var Me;(function(oe){oe.method="textDocument/willSave",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType(oe.method)})(Me||(e.WillSaveTextDocumentNotification=Me={}));var $e;(function(oe){oe.method="textDocument/willSaveWaitUntil",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})($e||(e.WillSaveTextDocumentWaitUntilRequest=$e={}));var de;(function(oe){oe.method="workspace/didChangeWatchedFiles",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolNotificationType(oe.method)})(de||(e.DidChangeWatchedFilesNotification=de={}));var rt;(function(oe){oe.Created=1,oe.Changed=2,oe.Deleted=3})(rt||(e.FileChangeType=rt={}));var ke;(function(oe){function ht(gt){let et=gt;return i.objectLiteral(et)&&(r.URI.is(et.baseUri)||r.WorkspaceFolder.is(et.baseUri))&&i.string(et.pattern)}o(ht,"is"),S(ht,"is"),oe.is=ht})(ke||(e.RelativePattern=ke={}));var Fe;(function(oe){oe.Create=1,oe.Change=2,oe.Delete=4})(Fe||(e.WatchKind=Fe={}));var He;(function(oe){oe.method="textDocument/publishDiagnostics",oe.messageDirection=t.MessageDirection.serverToClient,oe.type=new t.ProtocolNotificationType(oe.method)})(He||(e.PublishDiagnosticsNotification=He={}));var at;(function(oe){oe.Invoked=1,oe.TriggerCharacter=2,oe.TriggerForIncompleteCompletions=3})(at||(e.CompletionTriggerKind=at={}));var qe;(function(oe){oe.method="textDocument/completion",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(qe||(e.CompletionRequest=qe={}));var Ue;(function(oe){oe.method="completionItem/resolve",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Ue||(e.CompletionResolveRequest=Ue={}));var ye;(function(oe){oe.method="textDocument/hover",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(ye||(e.HoverRequest=ye={}));var ve;(function(oe){oe.Invoked=1,oe.TriggerCharacter=2,oe.ContentChange=3})(ve||(e.SignatureHelpTriggerKind=ve={}));var ie;(function(oe){oe.method="textDocument/signatureHelp",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(ie||(e.SignatureHelpRequest=ie={}));var fe;(function(oe){oe.method="textDocument/definition",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(fe||(e.DefinitionRequest=fe={}));var W;(function(oe){oe.method="textDocument/references",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(W||(e.ReferencesRequest=W={}));var ce;(function(oe){oe.method="textDocument/documentHighlight",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(ce||(e.DocumentHighlightRequest=ce={}));var K;(function(oe){oe.method="textDocument/documentSymbol",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(K||(e.DocumentSymbolRequest=K={}));var Re;(function(oe){oe.method="textDocument/codeAction",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Re||(e.CodeActionRequest=Re={}));var xe;(function(oe){oe.method="codeAction/resolve",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(xe||(e.CodeActionResolveRequest=xe={}));var Oe;(function(oe){oe.method="workspace/symbol",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Oe||(e.WorkspaceSymbolRequest=Oe={}));var be;(function(oe){oe.method="workspaceSymbol/resolve",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(be||(e.WorkspaceSymbolResolveRequest=be={}));var Be;(function(oe){oe.method="textDocument/codeLens",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Be||(e.CodeLensRequest=Be={}));var Ae;(function(oe){oe.method="codeLens/resolve",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Ae||(e.CodeLensResolveRequest=Ae={}));var Ve;(function(oe){oe.method="workspace/codeLens/refresh",oe.messageDirection=t.MessageDirection.serverToClient,oe.type=new t.ProtocolRequestType0(oe.method)})(Ve||(e.CodeLensRefreshRequest=Ve={}));var Pe;(function(oe){oe.method="textDocument/documentLink",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Pe||(e.DocumentLinkRequest=Pe={}));var Ye;(function(oe){oe.method="documentLink/resolve",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Ye||(e.DocumentLinkResolveRequest=Ye={}));var le;(function(oe){oe.method="textDocument/formatting",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(le||(e.DocumentFormattingRequest=le={}));var st;(function(oe){oe.method="textDocument/rangeFormatting",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(st||(e.DocumentRangeFormattingRequest=st={}));var me;(function(oe){oe.method="textDocument/rangesFormatting",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(me||(e.DocumentRangesFormattingRequest=me={}));var ot;(function(oe){oe.method="textDocument/onTypeFormatting",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(ot||(e.DocumentOnTypeFormattingRequest=ot={}));var kt;(function(oe){oe.Identifier=1})(kt||(e.PrepareSupportDefaultBehavior=kt={}));var Gt;(function(oe){oe.method="textDocument/rename",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Gt||(e.RenameRequest=Gt={}));var Tt;(function(oe){oe.method="textDocument/prepareRename",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Tt||(e.PrepareRenameRequest=Tt={}));var Et;(function(oe){oe.method="workspace/executeCommand",oe.messageDirection=t.MessageDirection.clientToServer,oe.type=new t.ProtocolRequestType(oe.method)})(Et||(e.ExecuteCommandRequest=Et={}));var yt;(function(oe){oe.method="workspace/applyEdit",oe.messageDirection=t.MessageDirection.serverToClient,oe.type=new t.ProtocolRequestType("workspace/applyEdit")})(yt||(e.ApplyWorkspaceEditRequest=yt={}))}}),Hlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/connection.js"(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createProtocolConnection=void 0;var t=ay();function r(i,n,a,s){return t.ConnectionStrategy.is(s)&&(s={connectionStrategy:s}),(0,t.createMessageConnection)(i,n,a,s)}o(r,"createProtocolConnection"),S(r,"createProtocolConnection"),e.createProtocolConnection=r}}),Ylt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/api.js"(e){"use strict";var t=e&&e.__createBinding||(Object.create?(function(a,s,l,u){u===void 0&&(u=l);var h=Object.getOwnPropertyDescriptor(s,l);(!h||("get"in h?!s.__esModule:h.writable||h.configurable))&&(h={enumerable:!0,get:S(function(){return s[l]},"get")}),Object.defineProperty(a,u,h)}):(function(a,s,l,u){u===void 0&&(u=l),a[u]=s[l]})),r=e&&e.__exportStar||function(a,s){for(var l in a)l!=="default"&&!Object.prototype.hasOwnProperty.call(s,l)&&t(s,a,l)};Object.defineProperty(e,"__esModule",{value:!0}),e.LSPErrorCodes=e.createProtocolConnection=void 0,r(ay(),e),r((bT(),u$(q5)),e),r(tn(),e),r(Ult(),e);var i=Hlt();Object.defineProperty(e,"createProtocolConnection",{enumerable:!0,get:S(function(){return i.createProtocolConnection},"get")});var n;(function(a){a.lspReservedErrorRangeStart=-32899,a.RequestFailed=-32803,a.ServerCancelled=-32802,a.ContentModified=-32801,a.RequestCancelled=-32800,a.lspReservedErrorRangeEnd=-32800})(n||(e.LSPErrorCodes=n={}))}}),jlt=Lr({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/browser/main.js"(e){"use strict";var t=e&&e.__createBinding||(Object.create?(function(a,s,l,u){u===void 0&&(u=l);var h=Object.getOwnPropertyDescriptor(s,l);(!h||("get"in h?!s.__esModule:h.writable||h.configurable))&&(h={enumerable:!0,get:S(function(){return s[l]},"get")}),Object.defineProperty(a,u,h)}):(function(a,s,l,u){u===void 0&&(u=l),a[u]=s[l]})),r=e&&e.__exportStar||function(a,s){for(var l in a)l!=="default"&&!Object.prototype.hasOwnProperty.call(s,l)&&t(s,a,l)};Object.defineProperty(e,"__esModule",{value:!0}),e.createProtocolConnection=void 0;var i=g1e();r(g1e(),e),r(Ylt(),e);function n(a,s,l,u){return(0,i.createMessageConnection)(a,s,l,u)}o(n,"createProtocolConnection"),S(n,"createProtocolConnection"),e.createProtocolConnection=n}}),uve={};xf(uve,{AbstractAstReflection:o(()=>p$,"AbstractAstReflection"),AbstractCstNode:o(()=>gG,"AbstractCstNode"),AbstractLangiumParser:o(()=>vG,"AbstractLangiumParser"),AbstractParserErrorMessageProvider:o(()=>JSe,"AbstractParserErrorMessageProvider"),AbstractThreadedAsyncParser:o(()=>kvt,"AbstractThreadedAsyncParser"),AstUtils:o(()=>m$,"AstUtils"),BiMap:o(()=>$5,"BiMap"),Cancellation:o(()=>Ii,"Cancellation"),CompositeCstNodeImpl:o(()=>GA,"CompositeCstNodeImpl"),ContextCache:o(()=>jA,"ContextCache"),CstNodeBuilder:o(()=>XSe,"CstNodeBuilder"),CstUtils:o(()=>d$,"CstUtils"),DEFAULT_TOKENIZE_OPTIONS:o(()=>PG,"DEFAULT_TOKENIZE_OPTIONS"),DONE_RESULT:o(()=>as,"DONE_RESULT"),DatatypeSymbol:o(()=>O5,"DatatypeSymbol"),DefaultAstNodeDescriptionProvider:o(()=>D3e,"DefaultAstNodeDescriptionProvider"),DefaultAstNodeLocator:o(()=>L3e,"DefaultAstNodeLocator"),DefaultAsyncParser:o(()=>X3e,"DefaultAsyncParser"),DefaultCommentProvider:o(()=>j3e,"DefaultCommentProvider"),DefaultConfigurationProvider:o(()=>M3e,"DefaultConfigurationProvider"),DefaultDocumentBuilder:o(()=>N3e,"DefaultDocumentBuilder"),DefaultDocumentValidator:o(()=>_3e,"DefaultDocumentValidator"),DefaultHydrator:o(()=>Z3e,"DefaultHydrator"),DefaultIndexManager:o(()=>I3e,"DefaultIndexManager"),DefaultJsonSerializer:o(()=>w3e,"DefaultJsonSerializer"),DefaultLangiumDocumentFactory:o(()=>m3e,"DefaultLangiumDocumentFactory"),DefaultLangiumDocuments:o(()=>g3e,"DefaultLangiumDocuments"),DefaultLangiumProfiler:o(()=>_vt,"DefaultLangiumProfiler"),DefaultLexer:o(()=>BG,"DefaultLexer"),DefaultLexerErrorMessageProvider:o(()=>P3e,"DefaultLexerErrorMessageProvider"),DefaultLinker:o(()=>y3e,"DefaultLinker"),DefaultNameProvider:o(()=>v3e,"DefaultNameProvider"),DefaultReferenceDescriptionProvider:o(()=>R3e,"DefaultReferenceDescriptionProvider"),DefaultReferences:o(()=>x3e,"DefaultReferences"),DefaultScopeComputation:o(()=>b3e,"DefaultScopeComputation"),DefaultScopeProvider:o(()=>k3e,"DefaultScopeProvider"),DefaultServiceRegistry:o(()=>S3e,"DefaultServiceRegistry"),DefaultTokenBuilder:o(()=>qA,"DefaultTokenBuilder"),DefaultValueConverter:o(()=>SG,"DefaultValueConverter"),DefaultWorkspaceLock:o(()=>K3e,"DefaultWorkspaceLock"),DefaultWorkspaceManager:o(()=>O3e,"DefaultWorkspaceManager"),Deferred:o(()=>mh,"Deferred"),Disposable:o(()=>F0,"Disposable"),DisposableCache:o(()=>YA,"DisposableCache"),DocumentCache:o(()=>C3e,"DocumentCache"),DocumentState:o(()=>zr,"DocumentState"),DocumentValidator:o(()=>Qo,"DocumentValidator"),EMPTY_SCOPE:o(()=>xvt,"EMPTY_SCOPE"),EMPTY_STREAM:o(()=>H1,"EMPTY_STREAM"),EmptyFileSystem:o(()=>fn,"EmptyFileSystem"),EmptyFileSystemProvider:o(()=>eEe,"EmptyFileSystemProvider"),ErrorWithLocation:o(()=>eA,"ErrorWithLocation"),GrammarAST:o(()=>fve,"GrammarAST"),GrammarUtils:o(()=>U$,"GrammarUtils"),IndentationAwareLexer:o(()=>Svt,"IndentationAwareLexer"),IndentationAwareTokenBuilder:o(()=>J3e,"IndentationAwareTokenBuilder"),JSDocDocumentationProvider:o(()=>Y3e,"JSDocDocumentationProvider"),LangiumCompletionParser:o(()=>e3e,"LangiumCompletionParser"),LangiumParser:o(()=>QSe,"LangiumParser"),LangiumParserErrorMessageProvider:o(()=>xG,"LangiumParserErrorMessageProvider"),LeafCstNodeImpl:o(()=>I5,"LeafCstNodeImpl"),LexingMode:o(()=>P0,"LexingMode"),MapScope:o(()=>vvt,"MapScope"),Module:o(()=>XF,"Module"),MultiMap:o(()=>gh,"MultiMap"),MultiMapScope:o(()=>T3e,"MultiMapScope"),OperationCancelled:o(()=>Zc,"OperationCancelled"),ParserWorker:o(()=>wvt,"ParserWorker"),ProfilingTask:o(()=>rEe,"ProfilingTask"),Reduction:o(()=>iT,"Reduction"),RefResolving:o(()=>f0,"RefResolving"),RegExpUtils:o(()=>Y$,"RegExpUtils"),RootCstNodeImpl:o(()=>yG,"RootCstNodeImpl"),SimpleCache:o(()=>LG,"SimpleCache"),StreamImpl:o(()=>Kc,"StreamImpl"),StreamScope:o(()=>UF,"StreamScope"),TextDocument:o(()=>B5,"TextDocument"),TreeStreamImpl:o(()=>Y1,"TreeStreamImpl"),URI:o(()=>fo,"URI"),UriTrie:o(()=>DG,"UriTrie"),UriUtils:o(()=>os,"UriUtils"),VALIDATE_EACH_NODE:o(()=>A3e,"VALIDATE_EACH_NODE"),ValidationCategory:o(()=>z5,"ValidationCategory"),ValidationRegistry:o(()=>E3e,"ValidationRegistry"),ValueConverter:o(()=>jc,"ValueConverter"),WorkspaceCache:o(()=>MG,"WorkspaceCache"),assertCondition:o(()=>H$,"assertCondition"),assertUnreachable:o(()=>bf,"assertUnreachable"),createCompletionParser:o(()=>CG,"createCompletionParser"),createDefaultCoreModule:o(()=>rn,"createDefaultCoreModule"),createDefaultSharedCoreModule:o(()=>nn,"createDefaultSharedCoreModule"),createGrammarConfig:o(()=>hz,"createGrammarConfig"),createLangiumParser:o(()=>kG,"createLangiumParser"),createParser:o(()=>VA,"createParser"),delayNextTick:o(()=>UA,"delayNextTick"),diagnosticData:o(()=>O0,"diagnosticData"),eagerLoad:o(()=>qG,"eagerLoad"),getDiagnosticRange:o(()=>IG,"getDiagnosticRange"),indentationBuilderDefaultOptions:o(()=>ZF,"indentationBuilderDefaultOptions"),inject:o(()=>Hr,"inject"),interruptAndCheck:o(()=>la,"interruptAndCheck"),isAstNode:o(()=>Rn,"isAstNode"),isAstNodeDescription:o(()=>f$,"isAstNodeDescription"),isAstNodeWithComment:o(()=>NG,"isAstNodeWithComment"),isCompositeCstNode:o(()=>oh,"isCompositeCstNode"),isIMultiModeLexerDefinition:o(()=>ZA,"isIMultiModeLexerDefinition"),isJSDoc:o(()=>$G,"isJSDoc"),isLeafCstNode:o(()=>q0,"isLeafCstNode"),isLinkingError:o(()=>g0,"isLinkingError"),isMultiReference:o(()=>Qc,"isMultiReference"),isNamed:o(()=>RG,"isNamed"),isOperationCancelled:o(()=>cm,"isOperationCancelled"),isReference:o(()=>ss,"isReference"),isRootCstNode:o(()=>H5,"isRootCstNode"),isTokenTypeArray:o(()=>KA,"isTokenTypeArray"),isTokenTypeDictionary:o(()=>G5,"isTokenTypeDictionary"),loadGrammarFromJson:o(()=>xo,"loadGrammarFromJson"),parseJSDoc:o(()=>FG,"parseJSDoc"),prepareLangiumParser:o(()=>wG,"prepareLangiumParser"),setInterruptionPeriod:o(()=>EG,"setInterruptionPeriod"),startCancelableOperation:o(()=>HA,"startCancelableOperation"),stream:o(()=>gi,"stream"),toDiagnosticData:o(()=>OG,"toDiagnosticData"),toDiagnosticSeverity:o(()=>J2,"toDiagnosticSeverity")});d$={};xf(d$,{DefaultNameRegexp:o(()=>z$,"DefaultNameRegexp"),RangeComparison:o(()=>Xc,"RangeComparison"),compareRange:o(()=>F$,"compareRange"),findCommentNode:o(()=>G$,"findCommentNode"),findDeclarationNodeAtOffset:o(()=>Mve,"findDeclarationNodeAtOffset"),findLeafNodeAtOffset:o(()=>J5,"findLeafNodeAtOffset"),findLeafNodeBeforeOffset:o(()=>V$,"findLeafNodeBeforeOffset"),flattenCst:o(()=>Lve,"flattenCst"),getDatatypeNode:o(()=>Rve,"getDatatypeNode"),getInteriorNodes:o(()=>Ove,"getInteriorNodes"),getNextNode:o(()=>Nve,"getNextNode"),getPreviousNode:o(()=>q$,"getPreviousNode"),getStartlineNode:o(()=>Ive,"getStartlineNode"),inRange:o(()=>$$,"inRange"),isChildNode:o(()=>B$,"isChildNode"),isCommentNode:o(()=>v5,"isCommentNode"),streamCst:o(()=>Z1,"streamCst"),toDocumentSegment:o(()=>Q1,"toDocumentSegment"),tokenToRange:o(()=>nT,"tokenToRange")});o(Rn,"isAstNode");S(Rn,"isAstNode");o(ss,"isReference");S(ss,"isReference");o(Qc,"isMultiReference");S(Qc,"isMultiReference");o(f$,"isAstNodeDescription");S(f$,"isAstNodeDescription");o(g0,"isLinkingError");S(g0,"isLinkingError");p$=class{static{o(this,"AbstractAstReflection")}static{S(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){let t=this.types[e.container.$type];if(!t)throw new Error(`Type ${e.container.$type||"undefined"} not found.`);let r=t.properties[e.property]?.referenceType;if(!r)throw new Error(`Property ${e.property||"undefined"} of type ${e.container.$type} is not a reference.`);return r}getTypeMetaData(e){let t=this.types[e];return t||{name:e,properties:{},superTypes:[]}}isInstance(e,t){return Rn(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});let i=r[t];if(i!==void 0)return i;{let n=this.types[e],a=n?n.superTypes.some(s=>this.isSubtype(s,t)):!1;return r[t]=a,a}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let r=this.getAllTypes(),i=[];for(let n of r)this.isSubtype(n,e)&&i.push(n);return this.allSubtypes[e]=i,i}}};o(oh,"isCompositeCstNode");S(oh,"isCompositeCstNode");o(q0,"isLeafCstNode");S(q0,"isLeafCstNode");o(H5,"isRootCstNode");S(H5,"isRootCstNode");Kc=class rh{static{o(this,"_StreamImpl")}static{S(this,"StreamImpl")}constructor(t,r){this.startFn=t,this.nextFn=r}iterator(){let t={state:this.startFn(),next:S(()=>this.nextFn(t.state),"next"),[Symbol.iterator]:()=>t};return t}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let t=this.iterator(),r=0,i=t.next();for(;!i.done;)r++,i=t.next();return r}toArray(){let t=[],r=this.iterator(),i;do i=r.next(),i.value!==void 0&&t.push(i.value);while(!i.done);return t}toSet(){return new Set(this)}toMap(t,r){let i=this.map(n=>[t?t(n):n,r?r(n):n]);return new Map(i)}toString(){return this.join()}concat(t){return new rh(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),r=>{let i;if(!r.firstDone){do if(i=this.nextFn(r.first),!i.done)return i;while(!i.done);r.firstDone=!0}do if(i=r.iterator.next(),!i.done)return i;while(!i.done);return as})}join(t=","){let r=this.iterator(),i="",n,a=!1;do n=r.next(),n.done||(a&&(i+=t),i+=hve(n.value)),a=!0;while(!n.done);return i}indexOf(t,r=0){let i=this.iterator(),n=0,a=i.next();for(;!a.done;){if(n>=r&&a.value===t)return n;a=i.next(),n++}return-1}every(t){let r=this.iterator(),i=r.next();for(;!i.done;){if(!t(i.value))return!1;i=r.next()}return!0}some(t){let r=this.iterator(),i=r.next();for(;!i.done;){if(t(i.value))return!0;i=r.next()}return!1}forEach(t){let r=this.iterator(),i=0,n=r.next();for(;!n.done;)t(n.value,i),n=r.next(),i++}map(t){return new rh(this.startFn,r=>{let{done:i,value:n}=this.nextFn(r);return i?as:{done:!1,value:t(n)}})}filter(t){return new rh(this.startFn,r=>{let i;do if(i=this.nextFn(r),!i.done&&t(i.value))return i;while(!i.done);return as})}nonNullable(){return this.filter(t=>t!=null)}reduce(t,r){let i=this.iterator(),n=r,a=i.next();for(;!a.done;)n===void 0?n=a.value:n=t(n,a.value),a=i.next();return n}reduceRight(t,r){return this.recursiveReduce(this.iterator(),t,r)}recursiveReduce(t,r,i){let n=t.next();if(n.done)return i;let a=this.recursiveReduce(t,r,i);return a===void 0?n.value:r(a,n.value)}find(t){let r=this.iterator(),i=r.next();for(;!i.done;){if(t(i.value))return i.value;i=r.next()}}findIndex(t){let r=this.iterator(),i=0,n=r.next();for(;!n.done;){if(t(n.value))return i;n=r.next(),i++}return-1}includes(t){let r=this.iterator(),i=r.next();for(;!i.done;){if(i.value===t)return!0;i=r.next()}return!1}flatMap(t){return new rh(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:i,value:n}=this.nextFn(r.this);if(!i){let a=t(n);if(rT(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return as})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let r=t>1?this.flat(t-1):this;return new rh(()=>({this:r.startFn()}),i=>{do{if(i.iterator){let s=i.iterator.next();if(s.done)i.iterator=void 0;else return s}let{done:n,value:a}=r.nextFn(i.this);if(!n)if(rT(a))i.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(i.iterator);return as})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(t=1){return new rh(()=>{let r=this.startFn();for(let i=0;i({size:0,state:this.startFn()}),r=>(r.size++,r.size>t?as:this.nextFn(r.state)))}distinct(t){return new rh(()=>({set:new Set,internalState:this.startFn()}),r=>{let i;do if(i=this.nextFn(r.internalState),!i.done){let n=t?t(i.value):i.value;if(!r.set.has(n))return r.set.add(n),i}while(!i.done);return as})}exclude(t,r){let i=new Set;for(let n of t){let a=r?r(n):n;i.add(a)}return this.filter(n=>{let a=r?r(n):n;return!i.has(a)})}};o(hve,"toString");S(hve,"toString");o(rT,"isIterable");S(rT,"isIterable");H1=new Kc(()=>{},()=>as),as=Object.freeze({done:!0,value:void 0});o(gi,"stream");S(gi,"stream");Y1=class extends Kc{static{o(this,"TreeStreamImpl")}static{S(this,"TreeStreamImpl")}constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return as})}iterator(){let e={state:this.startFn(),next:S(()=>this.nextFn(e.state),"next"),prune:S(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};(function(e){function t(a){return a.reduce((s,l)=>s+l,0)}o(t,"sum"),S(t,"sum"),e.sum=t;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),S(r,"product"),e.product=r;function i(a){return a.reduce((s,l)=>Math.min(s,l))}o(i,"min2"),S(i,"min"),e.min=i;function n(a){return a.reduce((s,l)=>Math.max(s,l))}o(n,"max"),S(n,"max"),e.max=n})(iT||(iT={}));m$={};xf(m$,{assignMandatoryProperties:o(()=>g$,"assignMandatoryProperties"),copyAstNode:o(()=>n5,"copyAstNode"),findRootNode:o(()=>V1,"findRootNode"),getContainerOfType:o(()=>U0,"getContainerOfType"),getDocument:o(()=>Wl,"getDocument"),getReferenceNodes:o(()=>r5,"getReferenceNodes"),hasContainerOfType:o(()=>dve,"hasContainerOfType"),linkContentToContainer:o(()=>j1,"linkContentToContainer"),streamAllContents:o(()=>yh,"streamAllContents"),streamAst:o(()=>ql,"streamAst"),streamContents:o(()=>CT,"streamContents"),streamReferences:o(()=>X1,"streamReferences")});o(j1,"linkContentToContainer");S(j1,"linkContentToContainer");o(U0,"getContainerOfType");S(U0,"getContainerOfType");o(dve,"hasContainerOfType");S(dve,"hasContainerOfType");o(Wl,"getDocument");S(Wl,"getDocument");o(V1,"findRootNode");S(V1,"findRootNode");o(r5,"getReferenceNodes");S(r5,"getReferenceNodes");o(CT,"streamContents");S(CT,"streamContents");o(yh,"streamAllContents");S(yh,"streamAllContents");o(ql,"streamAst");S(ql,"streamAst");o(i5,"isAstNodeInRange");S(i5,"isAstNodeInRange");o(X1,"streamReferences");S(X1,"streamReferences");o(g$,"assignMandatoryProperties");S(g$,"assignMandatoryProperties");o(y$,"copyDefaultValue");S(y$,"copyDefaultValue");o(n5,"copyAstNode");S(n5,"copyAstNode");fve={};xf(fve,{AbstractElement:o(()=>zs,"AbstractElement"),AbstractParserRule:o(()=>$2,"AbstractParserRule"),AbstractRule:o(()=>N1,"AbstractRule"),AbstractType:o(()=>ho,"AbstractType"),Action:o(()=>of,"Action"),Alternatives:o(()=>z2,"Alternatives"),ArrayLiteral:o(()=>a5,"ArrayLiteral"),ArrayType:o(()=>s5,"ArrayType"),Assignment:o(()=>lf,"Assignment"),BooleanLiteral:o(()=>o5,"BooleanLiteral"),CharacterRange:o(()=>cf,"CharacterRange"),Condition:o(()=>uf,"Condition"),Conjunction:o(()=>G2,"Conjunction"),CrossReference:o(()=>hf,"CrossReference"),Disjunction:o(()=>V2,"Disjunction"),EndOfFile:o(()=>l5,"EndOfFile"),Grammar:o(()=>nh,"Grammar"),GrammarImport:o(()=>c5,"GrammarImport"),Group:o(()=>y0,"Group"),InferredType:o(()=>u5,"InferredType"),InfixRule:o(()=>Hc,"InfixRule"),InfixRuleOperatorList:o(()=>W2,"InfixRuleOperatorList"),InfixRuleOperators:o(()=>h5,"InfixRuleOperators"),Interface:o(()=>I1,"Interface"),Keyword:o(()=>O1,"Keyword"),LangiumGrammarAstReflection:o(()=>P$,"LangiumGrammarAstReflection"),LangiumGrammarTerminals:o(()=>Xlt,"LangiumGrammarTerminals"),NamedArgument:o(()=>P1,"NamedArgument"),NegatedToken:o(()=>v0,"NegatedToken"),Negation:o(()=>d5,"Negation"),NumberLiteral:o(()=>f5,"NumberLiteral"),Parameter:o(()=>B1,"Parameter"),ParameterReference:o(()=>p5,"ParameterReference"),ParserRule:o(()=>zl,"ParserRule"),ReferenceType:o(()=>q2,"ReferenceType"),RegexToken:o(()=>x0,"RegexToken"),ReturnType:o(()=>m5,"ReturnType"),RuleCall:o(()=>b0,"RuleCall"),SimpleType:o(()=>F1,"SimpleType"),StringLiteral:o(()=>g5,"StringLiteral"),TerminalAlternatives:o(()=>T0,"TerminalAlternatives"),TerminalElement:o(()=>Gs,"TerminalElement"),TerminalGroup:o(()=>C0,"TerminalGroup"),TerminalRule:o(()=>ah,"TerminalRule"),TerminalRuleCall:o(()=>k0,"TerminalRuleCall"),Type:o(()=>U2,"Type"),TypeAttribute:o(()=>w0,"TypeAttribute"),TypeDefinition:o(()=>S0,"TypeDefinition"),UnionType:o(()=>y5,"UnionType"),UnorderedGroup:o(()=>H2,"UnorderedGroup"),UntilToken:o(()=>E0,"UntilToken"),ValueLiteral:o(()=>A0,"ValueLiteral"),Wildcard:o(()=>$1,"Wildcard"),isAbstractElement:o(()=>Y5,"isAbstractElement"),isAbstractParserRule:o(()=>H0,"isAbstractParserRule"),isAbstractRule:o(()=>pve,"isAbstractRule"),isAbstractType:o(()=>mve,"isAbstractType"),isAction:o(()=>pf,"isAction"),isAlternatives:o(()=>j5,"isAlternatives"),isArrayLiteral:o(()=>gve,"isArrayLiteral"),isArrayType:o(()=>v$,"isArrayType"),isAssignment:o(()=>lh,"isAssignment"),isBooleanLiteral:o(()=>x$,"isBooleanLiteral"),isCharacterRange:o(()=>b$,"isCharacterRange"),isCondition:o(()=>yve,"isCondition"),isConjunction:o(()=>T$,"isConjunction"),isCrossReference:o(()=>Y0,"isCrossReference"),isDisjunction:o(()=>C$,"isDisjunction"),isEndOfFile:o(()=>k$,"isEndOfFile"),isGrammar:o(()=>vve,"isGrammar"),isGrammarImport:o(()=>xve,"isGrammarImport"),isGroup:o(()=>j0,"isGroup"),isInferredType:o(()=>kT,"isInferredType"),isInfixRule:o(()=>K1,"isInfixRule"),isInfixRuleOperatorList:o(()=>bve,"isInfixRuleOperatorList"),isInfixRuleOperators:o(()=>Tve,"isInfixRuleOperators"),isInterface:o(()=>w$,"isInterface"),isKeyword:o(()=>ch,"isKeyword"),isNamedArgument:o(()=>Cve,"isNamedArgument"),isNegatedToken:o(()=>S$,"isNegatedToken"),isNegation:o(()=>E$,"isNegation"),isNumberLiteral:o(()=>kve,"isNumberLiteral"),isParameter:o(()=>wve,"isParameter"),isParameterReference:o(()=>A$,"isParameterReference"),isParserRule:o(()=>cs,"isParserRule"),isReferenceType:o(()=>_$,"isReferenceType"),isRegexToken:o(()=>D$,"isRegexToken"),isReturnType:o(()=>R$,"isReturnType"),isRuleCall:o(()=>uh,"isRuleCall"),isSimpleType:o(()=>X5,"isSimpleType"),isStringLiteral:o(()=>Sve,"isStringLiteral"),isTerminalAlternatives:o(()=>L$,"isTerminalAlternatives"),isTerminalElement:o(()=>Eve,"isTerminalElement"),isTerminalGroup:o(()=>M$,"isTerminalGroup"),isTerminalRule:o(()=>rl,"isTerminalRule"),isTerminalRuleCall:o(()=>K5,"isTerminalRuleCall"),isType:o(()=>Z5,"isType"),isTypeAttribute:o(()=>Ave,"isTypeAttribute"),isTypeDefinition:o(()=>_ve,"isTypeDefinition"),isUnionType:o(()=>N$,"isUnionType"),isUnorderedGroup:o(()=>Q5,"isUnorderedGroup"),isUntilToken:o(()=>I$,"isUntilToken"),isValueLiteral:o(()=>Dve,"isValueLiteral"),isWildcard:o(()=>O$,"isWildcard"),reflection:o(()=>dr,"reflection")});Xlt={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},zs={$type:"AbstractElement",cardinality:"cardinality"};o(Y5,"isAbstractElement");S(Y5,"isAbstractElement");$2={$type:"AbstractParserRule"};o(H0,"isAbstractParserRule");S(H0,"isAbstractParserRule");N1={$type:"AbstractRule"};o(pve,"isAbstractRule");S(pve,"isAbstractRule");ho={$type:"AbstractType"};o(mve,"isAbstractType");S(mve,"isAbstractType");of={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};o(pf,"isAction");S(pf,"isAction");z2={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};o(j5,"isAlternatives");S(j5,"isAlternatives");a5={$type:"ArrayLiteral",elements:"elements"};o(gve,"isArrayLiteral");S(gve,"isArrayLiteral");s5={$type:"ArrayType",elementType:"elementType"};o(v$,"isArrayType");S(v$,"isArrayType");lf={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};o(lh,"isAssignment");S(lh,"isAssignment");o5={$type:"BooleanLiteral",true:"true"};o(x$,"isBooleanLiteral");S(x$,"isBooleanLiteral");cf={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};o(b$,"isCharacterRange");S(b$,"isCharacterRange");uf={$type:"Condition"};o(yve,"isCondition");S(yve,"isCondition");G2={$type:"Conjunction",left:"left",right:"right"};o(T$,"isConjunction");S(T$,"isConjunction");hf={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};o(Y0,"isCrossReference");S(Y0,"isCrossReference");V2={$type:"Disjunction",left:"left",right:"right"};o(C$,"isDisjunction");S(C$,"isDisjunction");l5={$type:"EndOfFile",cardinality:"cardinality"};o(k$,"isEndOfFile");S(k$,"isEndOfFile");nh={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"};o(vve,"isGrammar");S(vve,"isGrammar");c5={$type:"GrammarImport",path:"path"};o(xve,"isGrammarImport");S(xve,"isGrammarImport");y0={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};o(j0,"isGroup");S(j0,"isGroup");u5={$type:"InferredType",name:"name"};o(kT,"isInferredType");S(kT,"isInferredType");Hc={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};o(K1,"isInfixRule");S(K1,"isInfixRule");W2={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"};o(bve,"isInfixRuleOperatorList");S(bve,"isInfixRuleOperatorList");h5={$type:"InfixRuleOperators",precedences:"precedences"};o(Tve,"isInfixRuleOperators");S(Tve,"isInfixRuleOperators");I1={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};o(w$,"isInterface");S(w$,"isInterface");O1={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};o(ch,"isKeyword");S(ch,"isKeyword");P1={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"};o(Cve,"isNamedArgument");S(Cve,"isNamedArgument");v0={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};o(S$,"isNegatedToken");S(S$,"isNegatedToken");d5={$type:"Negation",value:"value"};o(E$,"isNegation");S(E$,"isNegation");f5={$type:"NumberLiteral",value:"value"};o(kve,"isNumberLiteral");S(kve,"isNumberLiteral");B1={$type:"Parameter",name:"name"};o(wve,"isParameter");S(wve,"isParameter");p5={$type:"ParameterReference",parameter:"parameter"};o(A$,"isParameterReference");S(A$,"isParameterReference");zl={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};o(cs,"isParserRule");S(cs,"isParserRule");q2={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"};o(_$,"isReferenceType");S(_$,"isReferenceType");x0={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};o(D$,"isRegexToken");S(D$,"isRegexToken");m5={$type:"ReturnType",name:"name"};o(R$,"isReturnType");S(R$,"isReturnType");b0={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};o(uh,"isRuleCall");S(uh,"isRuleCall");F1={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};o(X5,"isSimpleType");S(X5,"isSimpleType");g5={$type:"StringLiteral",value:"value"};o(Sve,"isStringLiteral");S(Sve,"isStringLiteral");T0={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};o(L$,"isTerminalAlternatives");S(L$,"isTerminalAlternatives");Gs={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};o(Eve,"isTerminalElement");S(Eve,"isTerminalElement");C0={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};o(M$,"isTerminalGroup");S(M$,"isTerminalGroup");ah={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};o(rl,"isTerminalRule");S(rl,"isTerminalRule");k0={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};o(K5,"isTerminalRuleCall");S(K5,"isTerminalRuleCall");U2={$type:"Type",name:"name",type:"type"};o(Z5,"isType");S(Z5,"isType");w0={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"};o(Ave,"isTypeAttribute");S(Ave,"isTypeAttribute");S0={$type:"TypeDefinition"};o(_ve,"isTypeDefinition");S(_ve,"isTypeDefinition");y5={$type:"UnionType",types:"types"};o(N$,"isUnionType");S(N$,"isUnionType");H2={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};o(Q5,"isUnorderedGroup");S(Q5,"isUnorderedGroup");E0={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};o(I$,"isUntilToken");S(I$,"isUntilToken");A0={$type:"ValueLiteral"};o(Dve,"isValueLiteral");S(Dve,"isValueLiteral");$1={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};o(O$,"isWildcard");S(O$,"isWildcard");P$=class extends p${static{o(this,"LangiumGrammarAstReflection")}static{S(this,"LangiumGrammarAstReflection")}constructor(){super(...arguments),this.types={AbstractElement:{name:zs.$type,properties:{cardinality:{name:zs.cardinality}},superTypes:[]},AbstractParserRule:{name:$2.$type,properties:{},superTypes:[N1.$type,ho.$type]},AbstractRule:{name:N1.$type,properties:{},superTypes:[]},AbstractType:{name:ho.$type,properties:{},superTypes:[]},Action:{name:of.$type,properties:{cardinality:{name:of.cardinality},feature:{name:of.feature},inferredType:{name:of.inferredType},operator:{name:of.operator},type:{name:of.type,referenceType:ho.$type}},superTypes:[zs.$type]},Alternatives:{name:z2.$type,properties:{cardinality:{name:z2.cardinality},elements:{name:z2.elements,defaultValue:[]}},superTypes:[zs.$type]},ArrayLiteral:{name:a5.$type,properties:{elements:{name:a5.elements,defaultValue:[]}},superTypes:[A0.$type]},ArrayType:{name:s5.$type,properties:{elementType:{name:s5.elementType}},superTypes:[S0.$type]},Assignment:{name:lf.$type,properties:{cardinality:{name:lf.cardinality},feature:{name:lf.feature},operator:{name:lf.operator},predicate:{name:lf.predicate},terminal:{name:lf.terminal}},superTypes:[zs.$type]},BooleanLiteral:{name:o5.$type,properties:{true:{name:o5.true,defaultValue:!1}},superTypes:[uf.$type,A0.$type]},CharacterRange:{name:cf.$type,properties:{cardinality:{name:cf.cardinality},left:{name:cf.left},lookahead:{name:cf.lookahead},parenthesized:{name:cf.parenthesized,defaultValue:!1},right:{name:cf.right}},superTypes:[Gs.$type]},Condition:{name:uf.$type,properties:{},superTypes:[]},Conjunction:{name:G2.$type,properties:{left:{name:G2.left},right:{name:G2.right}},superTypes:[uf.$type]},CrossReference:{name:hf.$type,properties:{cardinality:{name:hf.cardinality},deprecatedSyntax:{name:hf.deprecatedSyntax,defaultValue:!1},isMulti:{name:hf.isMulti,defaultValue:!1},terminal:{name:hf.terminal},type:{name:hf.type,referenceType:ho.$type}},superTypes:[zs.$type]},Disjunction:{name:V2.$type,properties:{left:{name:V2.left},right:{name:V2.right}},superTypes:[uf.$type]},EndOfFile:{name:l5.$type,properties:{cardinality:{name:l5.cardinality}},superTypes:[zs.$type]},Grammar:{name:nh.$type,properties:{imports:{name:nh.imports,defaultValue:[]},interfaces:{name:nh.interfaces,defaultValue:[]},isDeclared:{name:nh.isDeclared,defaultValue:!1},name:{name:nh.name},rules:{name:nh.rules,defaultValue:[]},types:{name:nh.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:c5.$type,properties:{path:{name:c5.path}},superTypes:[]},Group:{name:y0.$type,properties:{cardinality:{name:y0.cardinality},elements:{name:y0.elements,defaultValue:[]},guardCondition:{name:y0.guardCondition},predicate:{name:y0.predicate}},superTypes:[zs.$type]},InferredType:{name:u5.$type,properties:{name:{name:u5.name}},superTypes:[ho.$type]},InfixRule:{name:Hc.$type,properties:{call:{name:Hc.call},dataType:{name:Hc.dataType},inferredType:{name:Hc.inferredType},name:{name:Hc.name},operators:{name:Hc.operators},parameters:{name:Hc.parameters,defaultValue:[]},returnType:{name:Hc.returnType,referenceType:ho.$type}},superTypes:[$2.$type]},InfixRuleOperatorList:{name:W2.$type,properties:{associativity:{name:W2.associativity},operators:{name:W2.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:h5.$type,properties:{precedences:{name:h5.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:I1.$type,properties:{attributes:{name:I1.attributes,defaultValue:[]},name:{name:I1.name},superTypes:{name:I1.superTypes,defaultValue:[],referenceType:ho.$type}},superTypes:[ho.$type]},Keyword:{name:O1.$type,properties:{cardinality:{name:O1.cardinality},predicate:{name:O1.predicate},value:{name:O1.value}},superTypes:[zs.$type]},NamedArgument:{name:P1.$type,properties:{calledByName:{name:P1.calledByName,defaultValue:!1},parameter:{name:P1.parameter,referenceType:B1.$type},value:{name:P1.value}},superTypes:[]},NegatedToken:{name:v0.$type,properties:{cardinality:{name:v0.cardinality},lookahead:{name:v0.lookahead},parenthesized:{name:v0.parenthesized,defaultValue:!1},terminal:{name:v0.terminal}},superTypes:[Gs.$type]},Negation:{name:d5.$type,properties:{value:{name:d5.value}},superTypes:[uf.$type]},NumberLiteral:{name:f5.$type,properties:{value:{name:f5.value}},superTypes:[A0.$type]},Parameter:{name:B1.$type,properties:{name:{name:B1.name}},superTypes:[]},ParameterReference:{name:p5.$type,properties:{parameter:{name:p5.parameter,referenceType:B1.$type}},superTypes:[uf.$type]},ParserRule:{name:zl.$type,properties:{dataType:{name:zl.dataType},definition:{name:zl.definition},entry:{name:zl.entry,defaultValue:!1},fragment:{name:zl.fragment,defaultValue:!1},inferredType:{name:zl.inferredType},name:{name:zl.name},parameters:{name:zl.parameters,defaultValue:[]},returnType:{name:zl.returnType,referenceType:ho.$type}},superTypes:[$2.$type]},ReferenceType:{name:q2.$type,properties:{isMulti:{name:q2.isMulti,defaultValue:!1},referenceType:{name:q2.referenceType}},superTypes:[S0.$type]},RegexToken:{name:x0.$type,properties:{cardinality:{name:x0.cardinality},lookahead:{name:x0.lookahead},parenthesized:{name:x0.parenthesized,defaultValue:!1},regex:{name:x0.regex}},superTypes:[Gs.$type]},ReturnType:{name:m5.$type,properties:{name:{name:m5.name}},superTypes:[]},RuleCall:{name:b0.$type,properties:{arguments:{name:b0.arguments,defaultValue:[]},cardinality:{name:b0.cardinality},predicate:{name:b0.predicate},rule:{name:b0.rule,referenceType:N1.$type}},superTypes:[zs.$type]},SimpleType:{name:F1.$type,properties:{primitiveType:{name:F1.primitiveType},stringType:{name:F1.stringType},typeRef:{name:F1.typeRef,referenceType:ho.$type}},superTypes:[S0.$type]},StringLiteral:{name:g5.$type,properties:{value:{name:g5.value}},superTypes:[A0.$type]},TerminalAlternatives:{name:T0.$type,properties:{cardinality:{name:T0.cardinality},elements:{name:T0.elements,defaultValue:[]},lookahead:{name:T0.lookahead},parenthesized:{name:T0.parenthesized,defaultValue:!1}},superTypes:[Gs.$type]},TerminalElement:{name:Gs.$type,properties:{cardinality:{name:Gs.cardinality},lookahead:{name:Gs.lookahead},parenthesized:{name:Gs.parenthesized,defaultValue:!1}},superTypes:[zs.$type]},TerminalGroup:{name:C0.$type,properties:{cardinality:{name:C0.cardinality},elements:{name:C0.elements,defaultValue:[]},lookahead:{name:C0.lookahead},parenthesized:{name:C0.parenthesized,defaultValue:!1}},superTypes:[Gs.$type]},TerminalRule:{name:ah.$type,properties:{definition:{name:ah.definition},fragment:{name:ah.fragment,defaultValue:!1},hidden:{name:ah.hidden,defaultValue:!1},name:{name:ah.name},type:{name:ah.type}},superTypes:[N1.$type]},TerminalRuleCall:{name:k0.$type,properties:{cardinality:{name:k0.cardinality},lookahead:{name:k0.lookahead},parenthesized:{name:k0.parenthesized,defaultValue:!1},rule:{name:k0.rule,referenceType:ah.$type}},superTypes:[Gs.$type]},Type:{name:U2.$type,properties:{name:{name:U2.name},type:{name:U2.type}},superTypes:[ho.$type]},TypeAttribute:{name:w0.$type,properties:{defaultValue:{name:w0.defaultValue},isOptional:{name:w0.isOptional,defaultValue:!1},name:{name:w0.name},type:{name:w0.type}},superTypes:[]},TypeDefinition:{name:S0.$type,properties:{},superTypes:[]},UnionType:{name:y5.$type,properties:{types:{name:y5.types,defaultValue:[]}},superTypes:[S0.$type]},UnorderedGroup:{name:H2.$type,properties:{cardinality:{name:H2.cardinality},elements:{name:H2.elements,defaultValue:[]}},superTypes:[zs.$type]},UntilToken:{name:E0.$type,properties:{cardinality:{name:E0.cardinality},lookahead:{name:E0.lookahead},parenthesized:{name:E0.parenthesized,defaultValue:!1},terminal:{name:E0.terminal}},superTypes:[Gs.$type]},ValueLiteral:{name:A0.$type,properties:{},superTypes:[]},Wildcard:{name:$1.$type,properties:{cardinality:{name:$1.cardinality},lookahead:{name:$1.lookahead},parenthesized:{name:$1.parenthesized,defaultValue:!1}},superTypes:[Gs.$type]}}}},dr=new P$;o(Rve,"getDatatypeNode");S(Rve,"getDatatypeNode");o(Z1,"streamCst");S(Z1,"streamCst");o(Lve,"flattenCst");S(Lve,"flattenCst");o(B$,"isChildNode");S(B$,"isChildNode");o(nT,"tokenToRange");S(nT,"tokenToRange");o(Q1,"toDocumentSegment");S(Q1,"toDocumentSegment");(function(e){e[e.Before=0]="Before",e[e.After=1]="After",e[e.OverlapFront=2]="OverlapFront",e[e.OverlapBack=3]="OverlapBack",e[e.Inside=4]="Inside",e[e.Outside=5]="Outside"})(Xc||(Xc={}));o(F$,"compareRange");S(F$,"compareRange");o($$,"inRange");S($$,"inRange");z$=/^[\w\p{L}]$/u;o(Mve,"findDeclarationNodeAtOffset");S(Mve,"findDeclarationNodeAtOffset");o(G$,"findCommentNode");S(G$,"findCommentNode");o(v5,"isCommentNode");S(v5,"isCommentNode");o(J5,"findLeafNodeAtOffset");S(J5,"findLeafNodeAtOffset");o(V$,"findLeafNodeBeforeOffset");S(V$,"findLeafNodeBeforeOffset");o(W$,"binarySearch");S(W$,"binarySearch");o(q$,"getPreviousNode");S(q$,"getPreviousNode");o(Nve,"getNextNode");S(Nve,"getNextNode");o(Ive,"getStartlineNode");S(Ive,"getStartlineNode");o(Ove,"getInteriorNodes");S(Ove,"getInteriorNodes");o(Pve,"getCommonParent");S(Pve,"getCommonParent");o(pF,"getParentChain");S(pF,"getParentChain");U$={};xf(U$,{findAssignment:o(()=>nz,"findAssignment"),findNameAssignment:o(()=>oA,"findNameAssignment"),findNodeForKeyword:o(()=>iz,"findNodeForKeyword"),findNodeForProperty:o(()=>nA,"findNodeForProperty"),findNodesForKeyword:o(()=>Wve,"findNodesForKeyword"),findNodesForKeywordInternal:o(()=>sA,"findNodesForKeywordInternal"),findNodesForProperty:o(()=>rz,"findNodesForProperty"),getActionAtElement:o(()=>sz,"getActionAtElement"),getActionType:o(()=>lz,"getActionType"),getAllReachableRules:o(()=>iA,"getAllReachableRules"),getAllRulesUsedForCrossReferences:o(()=>Vve,"getAllRulesUsedForCrossReferences"),getCrossReferenceTerminal:o(()=>ez,"getCrossReferenceTerminal"),getEntryRule:o(()=>Z$,"getEntryRule"),getExplicitRuleType:o(()=>ST,"getExplicitRuleType"),getHiddenRules:o(()=>Q$,"getHiddenRules"),getRuleType:o(()=>cz,"getRuleType"),getRuleTypeName:o(()=>jve,"getRuleTypeName"),getTypeName:o(()=>$0,"getTypeName"),isArrayCardinality:o(()=>Uve,"isArrayCardinality"),isArrayOperator:o(()=>Hve,"isArrayOperator"),isCommentTerminal:o(()=>tz,"isCommentTerminal"),isDataType:o(()=>Yve,"isDataType"),isDataTypeRule:o(()=>wT,"isDataTypeRule"),isOptionalCardinality:o(()=>qve,"isOptionalCardinality"),terminalRegex:o(()=>ET,"terminalRegex")});eA=class extends Error{static{o(this,"ErrorWithLocation")}static{S(this,"ErrorWithLocation")}constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};o(bf,"assertUnreachable");S(bf,"assertUnreachable");o(H$,"assertCondition");S(H$,"assertCondition");Y$={};xf(Y$,{NEWLINE_REGEXP:o(()=>Fve,"NEWLINE_REGEXP"),escapeRegExp:o(()=>sy,"escapeRegExp"),getTerminalParts:o(()=>zve,"getTerminalParts"),isMultilineComment:o(()=>j$,"isMultilineComment"),isWhitespace:o(()=>rA,"isWhitespace"),partialMatches:o(()=>X$,"partialMatches"),partialRegExp:o(()=>K$,"partialRegExp"),whitespaceCharacters:o(()=>Gve,"whitespaceCharacters")});o(yr,"cc");S(yr,"cc");o(GE,"insertToSet");S(GE,"insertToSet");o(R1,"addFlag");S(R1,"addFlag");o(u0,"ASSERT_EXISTS");S(u0,"ASSERT_EXISTS");o(I2,"ASSERT_NEVER_REACH_HERE");S(I2,"ASSERT_NEVER_REACH_HERE");o(mF,"isCharacter");S(mF,"isCharacter");x5=[];for(let e=yr("0");e<=yr("9");e++)x5.push(e);b5=[yr("_")].concat(x5);for(let e=yr("a");e<=yr("z");e++)b5.push(e);for(let e=yr("A");e<=yr("Z");e++)b5.push(e);y1e=[yr(" "),yr("\f"),yr(` +`),yr("\r"),yr(" "),yr("\v"),yr(" "),yr("\xA0"),yr("\u1680"),yr("\u2000"),yr("\u2001"),yr("\u2002"),yr("\u2003"),yr("\u2004"),yr("\u2005"),yr("\u2006"),yr("\u2007"),yr("\u2008"),yr("\u2009"),yr("\u200A"),yr("\u2028"),yr("\u2029"),yr("\u202F"),yr("\u205F"),yr("\u3000"),yr("\uFEFF")],Klt=/[0-9a-fA-F]/,mE=/[0-9]/,Zlt=/[1-9]/,Bve=class{static{o(this,"RegExpParser")}static{S(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let t=this.disjunction();this.consumeChar("/");let r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":R1(r,"global");break;case"i":R1(r,"ignoreCase");break;case"m":R1(r,"multiLine");break;case"u":R1(r,"unicode");break;case"y":R1(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break;case"<":{switch(this.popChar()){case"=":t="Lookbehind";break;case"!":t="NegativeLookbehind"}break}}u0(t);let r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return I2()}quantifier(e=!1){let t,r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let n;this.isDigit()?(n=this.integerIncludingZero(),t={atLeast:i,atMost:n}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;u0(t);break}if(!(e===!0&&t===void 0)&&u0(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e,t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),u0(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):I2()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[yr(` +`),yr("\r"),yr("\u2028"),yr("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=x5;break;case"D":e=x5,t=!0;break;case"s":e=y1e;break;case"S":e=y1e,t=!0;break;case"w":e=b5;break;case"W":e=b5,t=!0;break}return u0(e)?{type:"Set",value:e,complement:t}:I2()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=yr("\f");break;case"n":e=yr(` +`);break;case"r":e=yr("\r");break;case"t":e=yr(" ");break;case"v":e=yr("\v");break}return u0(e)?{type:"Character",value:e}:I2()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:yr("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:yr(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:yr(e)}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let r=this.classAtom(),i=r.type==="Character";if(mF(r)&&this.isRangeDash()){this.consumeChar("-");let n=this.classAtom(),a=n.type==="Character";if(mF(n)){if(n.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}},tA=class{static{o(this,"BaseRegExpVisitor")}static{S(this,"BaseRegExpVisitor")}visitChildren(e){for(let t in e){let r=e[t];e.hasOwnProperty(t)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Lookbehind":this.visitLookbehind(e);break;case"NegativeLookbehind":this.visitNegativeLookbehind(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}},Fve=/\r?\n/gm,$ve=new Bve,Qlt=class extends tA{static{o(this,"TerminalRegExpVisitor")}static{S(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let t=String.fromCharCode(e.value);if(!this.multiline&&t===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=sy(t);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){let t=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(t);this.multiline=!!` +`.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},N0=new Qlt;o(zve,"getTerminalParts");S(zve,"getTerminalParts");o(j$,"isMultilineComment");S(j$,"isMultilineComment");Gve=`\f +\r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");o(rA,"isWhitespace");S(rA,"isWhitespace");o(sy,"escapeRegExp");S(sy,"escapeRegExp");o(X$,"partialMatches");S(X$,"partialMatches");o(K$,"partialRegExp");S(K$,"partialRegExp");o(Z$,"getEntryRule");S(Z$,"getEntryRule");o(Q$,"getHiddenRules");S(Q$,"getHiddenRules");o(iA,"getAllReachableRules");S(iA,"getAllReachableRules");o(J$,"ruleDfs");S(J$,"ruleDfs");o(Vve,"getAllRulesUsedForCrossReferences");S(Vve,"getAllRulesUsedForCrossReferences");o(ez,"getCrossReferenceTerminal");S(ez,"getCrossReferenceTerminal");o(tz,"isCommentTerminal");S(tz,"isCommentTerminal");o(rz,"findNodesForProperty");S(rz,"findNodesForProperty");o(nA,"findNodeForProperty");S(nA,"findNodeForProperty");o(aA,"findNodesForPropertyInternal");S(aA,"findNodesForPropertyInternal");o(Wve,"findNodesForKeyword");S(Wve,"findNodesForKeyword");o(iz,"findNodeForKeyword");S(iz,"findNodeForKeyword");o(sA,"findNodesForKeywordInternal");S(sA,"findNodesForKeywordInternal");o(nz,"findAssignment");S(nz,"findAssignment");o(oA,"findNameAssignment");S(oA,"findNameAssignment");o(az,"findNameAssignmentInternal");S(az,"findNameAssignmentInternal");o(sz,"getActionAtElement");S(sz,"getActionAtElement");o(qve,"isOptionalCardinality");S(qve,"isOptionalCardinality");o(Uve,"isArrayCardinality");S(Uve,"isArrayCardinality");o(Hve,"isArrayOperator");S(Hve,"isArrayOperator");o(wT,"isDataTypeRule");S(wT,"isDataTypeRule");o(oz,"isDataTypeRuleInternal");S(oz,"isDataTypeRuleInternal");o(Yve,"isDataType");S(Yve,"isDataType");o(T5,"isDataTypeInternal");S(T5,"isDataTypeInternal");o(ST,"getExplicitRuleType");S(ST,"getExplicitRuleType");o($0,"getTypeName");S($0,"getTypeName");o(lz,"getActionType");S(lz,"getActionType");o(jve,"getRuleTypeName");S(jve,"getRuleTypeName");o(cz,"getRuleType");S(cz,"getRuleType");o(ET,"terminalRegex");S(ET,"terminalRegex");uz=/[\s\S]/.source;o(X0,"abstractElementToRegex");S(X0,"abstractElementToRegex");o(Xve,"terminalAlternativesToRegex");S(Xve,"terminalAlternativesToRegex");o(Kve,"terminalGroupToRegex");S(Kve,"terminalGroupToRegex");o(Zve,"untilTokenToRegex");S(Zve,"untilTokenToRegex");o(Qve,"negateTokenToRegex");S(Qve,"negateTokenToRegex");o(Jve,"characterRangeToRegex");S(Jve,"characterRangeToRegex");o(VE,"keywordToRegex");S(VE,"keywordToRegex");o(Jc,"withCardinality");S(Jc,"withCardinality");o(hz,"createGrammarConfig");S(hz,"createGrammarConfig");Jlt=typeof global=="object"&&global&&global.Object===Object&&global,exe=Jlt,ect=typeof self=="object"&&self&&self.Object===Object&&self,tct=exe||ect||Function("return this")(),tu=tct,rct=tu.Symbol,el=rct,txe=Object.prototype,ict=txe.hasOwnProperty,nct=txe.toString,x2=el?el.toStringTag:void 0;o(rxe,"getRawTag");S(rxe,"getRawTag");act=rxe,sct=Object.prototype,oct=sct.toString;o(ixe,"objectToString");S(ixe,"objectToString");lct=ixe,cct="[object Null]",uct="[object Undefined]",v1e=el?el.toStringTag:void 0;o(nxe,"baseGetTag");S(nxe,"baseGetTag");Tf=nxe;o(axe,"isObjectLike");S(axe,"isObjectLike");Yl=axe,hct="[object Symbol]";o(sxe,"isSymbol");S(sxe,"isSymbol");lA=sxe;o(oxe,"arrayMap");S(oxe,"arrayMap");AT=oxe,dct=Array.isArray,Kr=dct,fct=1/0,x1e=el?el.prototype:void 0,b1e=x1e?x1e.toString:void 0;o(dz,"baseToString");S(dz,"baseToString");pct=dz,mct=/\s/;o(lxe,"trimmedEndIndex");S(lxe,"trimmedEndIndex");gct=lxe,yct=/^\s+/;o(cxe,"baseTrim");S(cxe,"baseTrim");vct=cxe;o(uxe,"isObject");S(uxe,"isObject");tl=uxe,T1e=NaN,xct=/^[-+]0x[0-9a-f]+$/i,bct=/^0b[01]+$/i,Tct=/^0o[0-7]+$/i,Cct=parseInt;o(hxe,"toNumber");S(hxe,"toNumber");kct=hxe,C1e=1/0,wct=17976931348623157e292;o(dxe,"toFinite");S(dxe,"toFinite");Sct=dxe;o(fxe,"toInteger");S(fxe,"toInteger");_T=fxe;o(pxe,"identity");S(pxe,"identity");J1=pxe,Ect="[object AsyncFunction]",Act="[object Function]",_ct="[object GeneratorFunction]",Dct="[object Proxy]";o(mxe,"isFunction");S(mxe,"isFunction");vh=mxe,Rct=tu["__core-js_shared__"],YP=Rct,k1e=(function(){var e=/[^.]+$/.exec(YP&&YP.keys&&YP.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();o(gxe,"isMasked");S(gxe,"isMasked");Lct=gxe,Mct=Function.prototype,Nct=Mct.toString;o(yxe,"toSource");S(yxe,"toSource");K0=yxe,Ict=/[\\^$.*+?()[\]{}|]/g,Oct=/^\[object .+?Constructor\]$/,Pct=Function.prototype,Bct=Object.prototype,Fct=Pct.toString,$ct=Bct.hasOwnProperty,zct=RegExp("^"+Fct.call($ct).replace(Ict,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(vxe,"baseIsNative");S(vxe,"baseIsNative");Gct=vxe;o(xxe,"getValue");S(xxe,"getValue");Vct=xxe;o(bxe,"getNative");S(bxe,"getNative");Z0=bxe,Wct=Z0(tu,"WeakMap"),gF=Wct,w1e=Object.create,qct=(function(){function e(){}return o(e,"object"),S(e,"object"),function(t){if(!tl(t))return{};if(w1e)return w1e(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),Uct=qct;o(Txe,"apply");S(Txe,"apply");Hct=Txe;o(Cxe,"noop");S(Cxe,"noop");Un=Cxe;o(kxe,"copyArray");S(kxe,"copyArray");Yct=kxe,jct=800,Xct=16,Kct=Date.now;o(wxe,"shortOut");S(wxe,"shortOut");Zct=wxe;o(Sxe,"constant");S(Sxe,"constant");Qct=Sxe,Jct=(function(){try{var e=Z0(Object,"defineProperty");return e({},"",{}),e}catch{}})(),C5=Jct,eut=C5?function(e,t){return C5(e,"toString",{configurable:!0,enumerable:!1,value:Qct(t),writable:!0})}:J1,tut=eut,rut=Zct(tut),iut=rut;o(Exe,"arrayEach");S(Exe,"arrayEach");Axe=Exe;o(_xe,"baseFindIndex");S(_xe,"baseFindIndex");Dxe=_xe;o(Rxe,"baseIsNaN");S(Rxe,"baseIsNaN");nut=Rxe;o(Lxe,"strictIndexOf");S(Lxe,"strictIndexOf");aut=Lxe;o(Mxe,"baseIndexOf");S(Mxe,"baseIndexOf");fz=Mxe;o(Nxe,"arrayIncludes");S(Nxe,"arrayIncludes");Ixe=Nxe,sut=9007199254740991,out=/^(?:0|[1-9]\d*)$/;o(Oxe,"isIndex");S(Oxe,"isIndex");cA=Oxe;o(Pxe,"baseAssignValue");S(Pxe,"baseAssignValue");pz=Pxe;o(Bxe,"eq");S(Bxe,"eq");DT=Bxe,lut=Object.prototype,cut=lut.hasOwnProperty;o(Fxe,"assignValue");S(Fxe,"assignValue");uA=Fxe;o($xe,"copyObject");S($xe,"copyObject");RT=$xe,S1e=Math.max;o(zxe,"overRest");S(zxe,"overRest");uut=zxe;o(Gxe,"baseRest");S(Gxe,"baseRest");mz=Gxe,hut=9007199254740991;o(Vxe,"isLength");S(Vxe,"isLength");gz=Vxe;o(Wxe,"isArrayLike");S(Wxe,"isArrayLike");ru=Wxe;o(qxe,"isIterateeCall");S(qxe,"isIterateeCall");hA=qxe;o(Uxe,"createAssigner");S(Uxe,"createAssigner");dut=Uxe,fut=Object.prototype;o(Hxe,"isPrototype");S(Hxe,"isPrototype");LT=Hxe;o(Yxe,"baseTimes");S(Yxe,"baseTimes");put=Yxe,mut="[object Arguments]";o(jxe,"baseIsArguments");S(jxe,"baseIsArguments");E1e=jxe,Xxe=Object.prototype,gut=Xxe.hasOwnProperty,yut=Xxe.propertyIsEnumerable,vut=E1e((function(){return arguments})())?E1e:function(e){return Yl(e)&&gut.call(e,"callee")&&!yut.call(e,"callee")},dA=vut;o(Kxe,"stubFalse");S(Kxe,"stubFalse");xut=Kxe,Zxe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,A1e=Zxe&&typeof module=="object"&&module&&!module.nodeType&&module,but=A1e&&A1e.exports===Zxe,_1e=but?tu.Buffer:void 0,Tut=_1e?_1e.isBuffer:void 0,Cut=Tut||xut,aT=Cut,kut="[object Arguments]",wut="[object Array]",Sut="[object Boolean]",Eut="[object Date]",Aut="[object Error]",_ut="[object Function]",Dut="[object Map]",Rut="[object Number]",Lut="[object Object]",Mut="[object RegExp]",Nut="[object Set]",Iut="[object String]",Out="[object WeakMap]",Put="[object ArrayBuffer]",But="[object DataView]",Fut="[object Float32Array]",$ut="[object Float64Array]",zut="[object Int8Array]",Gut="[object Int16Array]",Vut="[object Int32Array]",Wut="[object Uint8Array]",qut="[object Uint8ClampedArray]",Uut="[object Uint16Array]",Hut="[object Uint32Array]",Gi={};Gi[Fut]=Gi[$ut]=Gi[zut]=Gi[Gut]=Gi[Vut]=Gi[Wut]=Gi[qut]=Gi[Uut]=Gi[Hut]=!0;Gi[kut]=Gi[wut]=Gi[Put]=Gi[Sut]=Gi[But]=Gi[Eut]=Gi[Aut]=Gi[_ut]=Gi[Dut]=Gi[Rut]=Gi[Lut]=Gi[Mut]=Gi[Nut]=Gi[Iut]=Gi[Out]=!1;o(Qxe,"baseIsTypedArray");S(Qxe,"baseIsTypedArray");Yut=Qxe;o(Jxe,"baseUnary");S(Jxe,"baseUnary");MT=Jxe,ebe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Y2=ebe&&typeof module=="object"&&module&&!module.nodeType&&module,jut=Y2&&Y2.exports===ebe,jP=jut&&exe.process,Xut=(function(){try{var e=Y2&&Y2.require&&Y2.require("util").types;return e||jP&&jP.binding&&jP.binding("util")}catch{}})(),mf=Xut,D1e=mf&&mf.isTypedArray,Kut=D1e?MT(D1e):Yut,yz=Kut,Zut=Object.prototype,Qut=Zut.hasOwnProperty;o(tbe,"arrayLikeKeys");S(tbe,"arrayLikeKeys");rbe=tbe;o(ibe,"overArg");S(ibe,"overArg");nbe=ibe,Jut=nbe(Object.keys,Object),eht=Jut,tht=Object.prototype,rht=tht.hasOwnProperty;o(abe,"baseKeys");S(abe,"baseKeys");sbe=abe;o(obe,"keys");S(obe,"keys");po=obe,iht=Object.prototype,nht=iht.hasOwnProperty,aht=dut(function(e,t){if(LT(t)||ru(t)){RT(t,po(t),e);return}for(var r in t)nht.call(t,r)&&uA(e,r,t[r])}),mo=aht;o(lbe,"nativeKeysIn");S(lbe,"nativeKeysIn");sht=lbe,oht=Object.prototype,lht=oht.hasOwnProperty;o(cbe,"baseKeysIn");S(cbe,"baseKeysIn");cht=cbe;o(ube,"keysIn");S(ube,"keysIn");fA=ube,uht=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hht=/^\w*$/;o(hbe,"isKey");S(hbe,"isKey");vz=hbe,dht=Z0(Object,"create"),sT=dht;o(dbe,"hashClear");S(dbe,"hashClear");fht=dbe;o(fbe,"hashDelete");S(fbe,"hashDelete");pht=fbe,mht="__lodash_hash_undefined__",ght=Object.prototype,yht=ght.hasOwnProperty;o(pbe,"hashGet");S(pbe,"hashGet");vht=pbe,xht=Object.prototype,bht=xht.hasOwnProperty;o(mbe,"hashHas");S(mbe,"hashHas");Tht=mbe,Cht="__lodash_hash_undefined__";o(gbe,"hashSet");S(gbe,"hashSet");kht=gbe;o(Q0,"Hash");S(Q0,"Hash");Q0.prototype.clear=fht;Q0.prototype.delete=pht;Q0.prototype.get=vht;Q0.prototype.has=Tht;Q0.prototype.set=kht;R1e=Q0;o(ybe,"listCacheClear");S(ybe,"listCacheClear");wht=ybe;o(vbe,"assocIndexOf");S(vbe,"assocIndexOf");pA=vbe,Sht=Array.prototype,Eht=Sht.splice;o(xbe,"listCacheDelete");S(xbe,"listCacheDelete");Aht=xbe;o(bbe,"listCacheGet");S(bbe,"listCacheGet");_ht=bbe;o(Tbe,"listCacheHas");S(Tbe,"listCacheHas");Dht=Tbe;o(Cbe,"listCacheSet");S(Cbe,"listCacheSet");Rht=Cbe;o(J0,"ListCache");S(J0,"ListCache");J0.prototype.clear=wht;J0.prototype.delete=Aht;J0.prototype.get=_ht;J0.prototype.has=Dht;J0.prototype.set=Rht;mA=J0,Lht=Z0(tu,"Map"),oT=Lht;o(kbe,"mapCacheClear");S(kbe,"mapCacheClear");Mht=kbe;o(wbe,"isKeyable");S(wbe,"isKeyable");Nht=wbe;o(Sbe,"getMapData");S(Sbe,"getMapData");gA=Sbe;o(Ebe,"mapCacheDelete");S(Ebe,"mapCacheDelete");Iht=Ebe;o(Abe,"mapCacheGet");S(Abe,"mapCacheGet");Oht=Abe;o(_be,"mapCacheHas");S(_be,"mapCacheHas");Pht=_be;o(Dbe,"mapCacheSet");S(Dbe,"mapCacheSet");Bht=Dbe;o(em,"MapCache");S(em,"MapCache");em.prototype.clear=Mht;em.prototype.delete=Iht;em.prototype.get=Oht;em.prototype.has=Pht;em.prototype.set=Bht;yA=em,Fht="Expected a function";o(vA,"memoize");S(vA,"memoize");vA.Cache=yA;$ht=vA,zht=500;o(Rbe,"memoizeCapped");S(Rbe,"memoizeCapped");Ght=Rbe,Vht=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wht=/\\(\\)?/g,qht=Ght(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Vht,function(r,i,n,a){t.push(n?a.replace(Wht,"$1"):i||r)}),t}),Uht=qht;o(Lbe,"toString2");S(Lbe,"toString");Hht=Lbe;o(Mbe,"castPath");S(Mbe,"castPath");xA=Mbe,Yht=1/0;o(Nbe,"toKey");S(Nbe,"toKey");NT=Nbe;o(Ibe,"baseGet");S(Ibe,"baseGet");xz=Ibe;o(Obe,"get");S(Obe,"get");jht=Obe;o(Pbe,"arrayPush");S(Pbe,"arrayPush");bz=Pbe,L1e=el?el.isConcatSpreadable:void 0;o(Bbe,"isFlattenable");S(Bbe,"isFlattenable");Xht=Bbe;o(Tz,"baseFlatten");S(Tz,"baseFlatten");Cz=Tz;o(Fbe,"flatten");S(Fbe,"flatten");Ul=Fbe,Kht=nbe(Object.getPrototypeOf,Object),$be=Kht;o(zbe,"baseSlice");S(zbe,"baseSlice");Gbe=zbe;o(Vbe,"arrayReduce");S(Vbe,"arrayReduce");Zht=Vbe;o(Wbe,"stackClear");S(Wbe,"stackClear");Qht=Wbe;o(qbe,"stackDelete");S(qbe,"stackDelete");Jht=qbe;o(Ube,"stackGet");S(Ube,"stackGet");edt=Ube;o(Hbe,"stackHas");S(Hbe,"stackHas");tdt=Hbe,rdt=200;o(Ybe,"stackSet");S(Ybe,"stackSet");idt=Ybe;o(tm,"Stack");S(tm,"Stack");tm.prototype.clear=Qht;tm.prototype.delete=Jht;tm.prototype.get=edt;tm.prototype.has=tdt;tm.prototype.set=idt;j2=tm;o(jbe,"baseAssign");S(jbe,"baseAssign");ndt=jbe;o(Xbe,"baseAssignIn");S(Xbe,"baseAssignIn");adt=Xbe,Kbe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,M1e=Kbe&&typeof module=="object"&&module&&!module.nodeType&&module,sdt=M1e&&M1e.exports===Kbe,N1e=sdt?tu.Buffer:void 0,I1e=N1e?N1e.allocUnsafe:void 0;o(Zbe,"cloneBuffer");S(Zbe,"cloneBuffer");odt=Zbe;o(Qbe,"arrayFilter");S(Qbe,"arrayFilter");kz=Qbe;o(Jbe,"stubArray");S(Jbe,"stubArray");e2e=Jbe,ldt=Object.prototype,cdt=ldt.propertyIsEnumerable,O1e=Object.getOwnPropertySymbols,udt=O1e?function(e){return e==null?[]:(e=Object(e),kz(O1e(e),function(t){return cdt.call(e,t)}))}:e2e,wz=udt;o(t2e,"copySymbols");S(t2e,"copySymbols");hdt=t2e,ddt=Object.getOwnPropertySymbols,fdt=ddt?function(e){for(var t=[];e;)bz(t,wz(e)),e=$be(e);return t}:e2e,r2e=fdt;o(i2e,"copySymbolsIn");S(i2e,"copySymbolsIn");pdt=i2e;o(n2e,"baseGetAllKeys");S(n2e,"baseGetAllKeys");a2e=n2e;o(s2e,"getAllKeys");S(s2e,"getAllKeys");yF=s2e;o(o2e,"getAllKeysIn");S(o2e,"getAllKeysIn");l2e=o2e,mdt=Z0(tu,"DataView"),vF=mdt,gdt=Z0(tu,"Promise"),xF=gdt,ydt=Z0(tu,"Set"),W1=ydt,P1e="[object Map]",vdt="[object Object]",B1e="[object Promise]",F1e="[object Set]",$1e="[object WeakMap]",z1e="[object DataView]",xdt=K0(vF),bdt=K0(oT),Tdt=K0(xF),Cdt=K0(W1),kdt=K0(gF),h0=Tf;(vF&&h0(new vF(new ArrayBuffer(1)))!=z1e||oT&&h0(new oT)!=P1e||xF&&h0(xF.resolve())!=B1e||W1&&h0(new W1)!=F1e||gF&&h0(new gF)!=$1e)&&(h0=S(function(e){var t=Tf(e),r=t==vdt?e.constructor:void 0,i=r?K0(r):"";if(i)switch(i){case xdt:return z1e;case bdt:return P1e;case Tdt:return B1e;case Cdt:return F1e;case kdt:return $1e}return t},"getTag"));ey=h0,wdt=Object.prototype,Sdt=wdt.hasOwnProperty;o(c2e,"initCloneArray");S(c2e,"initCloneArray");Edt=c2e,Adt=tu.Uint8Array,k5=Adt;o(u2e,"cloneArrayBuffer");S(u2e,"cloneArrayBuffer");Sz=u2e;o(h2e,"cloneDataView");S(h2e,"cloneDataView");_dt=h2e,Ddt=/\w*$/;o(d2e,"cloneRegExp");S(d2e,"cloneRegExp");Rdt=d2e,G1e=el?el.prototype:void 0,V1e=G1e?G1e.valueOf:void 0;o(f2e,"cloneSymbol");S(f2e,"cloneSymbol");Ldt=f2e;o(p2e,"cloneTypedArray");S(p2e,"cloneTypedArray");Mdt=p2e,Ndt="[object Boolean]",Idt="[object Date]",Odt="[object Map]",Pdt="[object Number]",Bdt="[object RegExp]",Fdt="[object Set]",$dt="[object String]",zdt="[object Symbol]",Gdt="[object ArrayBuffer]",Vdt="[object DataView]",Wdt="[object Float32Array]",qdt="[object Float64Array]",Udt="[object Int8Array]",Hdt="[object Int16Array]",Ydt="[object Int32Array]",jdt="[object Uint8Array]",Xdt="[object Uint8ClampedArray]",Kdt="[object Uint16Array]",Zdt="[object Uint32Array]";o(m2e,"initCloneByTag");S(m2e,"initCloneByTag");Qdt=m2e;o(g2e,"initCloneObject");S(g2e,"initCloneObject");Jdt=g2e,eft="[object Map]";o(y2e,"baseIsMap");S(y2e,"baseIsMap");tft=y2e,W1e=mf&&mf.isMap,rft=W1e?MT(W1e):tft,ift=rft,nft="[object Set]";o(v2e,"baseIsSet");S(v2e,"baseIsSet");aft=v2e,q1e=mf&&mf.isSet,sft=q1e?MT(q1e):aft,oft=sft,lft=1,cft=2,uft=4,x2e="[object Arguments]",hft="[object Array]",dft="[object Boolean]",fft="[object Date]",pft="[object Error]",b2e="[object Function]",mft="[object GeneratorFunction]",gft="[object Map]",yft="[object Number]",T2e="[object Object]",vft="[object RegExp]",xft="[object Set]",bft="[object String]",Tft="[object Symbol]",Cft="[object WeakMap]",kft="[object ArrayBuffer]",wft="[object DataView]",Sft="[object Float32Array]",Eft="[object Float64Array]",Aft="[object Int8Array]",_ft="[object Int16Array]",Dft="[object Int32Array]",Rft="[object Uint8Array]",Lft="[object Uint8ClampedArray]",Mft="[object Uint16Array]",Nft="[object Uint32Array]",Ni={};Ni[x2e]=Ni[hft]=Ni[kft]=Ni[wft]=Ni[dft]=Ni[fft]=Ni[Sft]=Ni[Eft]=Ni[Aft]=Ni[_ft]=Ni[Dft]=Ni[gft]=Ni[yft]=Ni[T2e]=Ni[vft]=Ni[xft]=Ni[bft]=Ni[Tft]=Ni[Rft]=Ni[Lft]=Ni[Mft]=Ni[Nft]=!0;Ni[pft]=Ni[b2e]=Ni[Cft]=!1;o(X2,"baseClone");S(X2,"baseClone");Ift=X2,Oft=4;o(C2e,"clone");S(C2e,"clone");ka=C2e;o(k2e,"compact");S(k2e,"compact");IT=k2e,Pft="__lodash_hash_undefined__";o(w2e,"setCacheAdd");S(w2e,"setCacheAdd");Bft=w2e;o(S2e,"setCacheHas");S(S2e,"setCacheHas");Fft=S2e;o(lT,"SetCache");S(lT,"SetCache");lT.prototype.add=lT.prototype.push=Bft;lT.prototype.has=Fft;Ez=lT;o(E2e,"arraySome");S(E2e,"arraySome");A2e=E2e;o(_2e,"cacheHas");S(_2e,"cacheHas");Az=_2e,$ft=1,zft=2;o(D2e,"equalArrays");S(D2e,"equalArrays");R2e=D2e;o(L2e,"mapToArray");S(L2e,"mapToArray");Gft=L2e;o(M2e,"setToArray");S(M2e,"setToArray");_z=M2e,Vft=1,Wft=2,qft="[object Boolean]",Uft="[object Date]",Hft="[object Error]",Yft="[object Map]",jft="[object Number]",Xft="[object RegExp]",Kft="[object Set]",Zft="[object String]",Qft="[object Symbol]",Jft="[object ArrayBuffer]",ept="[object DataView]",U1e=el?el.prototype:void 0,XP=U1e?U1e.valueOf:void 0;o(N2e,"equalByTag");S(N2e,"equalByTag");tpt=N2e,rpt=1,ipt=Object.prototype,npt=ipt.hasOwnProperty;o(I2e,"equalObjects");S(I2e,"equalObjects");apt=I2e,spt=1,H1e="[object Arguments]",Y1e="[object Array]",gE="[object Object]",opt=Object.prototype,j1e=opt.hasOwnProperty;o(O2e,"baseIsEqualDeep");S(O2e,"baseIsEqualDeep");lpt=O2e;o(Dz,"baseIsEqual");S(Dz,"baseIsEqual");P2e=Dz,cpt=1,upt=2;o(B2e,"baseIsMatch");S(B2e,"baseIsMatch");hpt=B2e;o(F2e,"isStrictComparable");S(F2e,"isStrictComparable");$2e=F2e;o(z2e,"getMatchData");S(z2e,"getMatchData");dpt=z2e;o(G2e,"matchesStrictComparable");S(G2e,"matchesStrictComparable");V2e=G2e;o(W2e,"baseMatches");S(W2e,"baseMatches");fpt=W2e;o(q2e,"baseHasIn");S(q2e,"baseHasIn");ppt=q2e;o(U2e,"hasPath");S(U2e,"hasPath");H2e=U2e;o(Y2e,"hasIn");S(Y2e,"hasIn");mpt=Y2e,gpt=1,ypt=2;o(j2e,"baseMatchesProperty");S(j2e,"baseMatchesProperty");vpt=j2e;o(X2e,"baseProperty");S(X2e,"baseProperty");xpt=X2e;o(K2e,"basePropertyDeep");S(K2e,"basePropertyDeep");bpt=K2e;o(Z2e,"property");S(Z2e,"property");Tpt=Z2e;o(Q2e,"baseIteratee");S(Q2e,"baseIteratee");iu=Q2e;o(J2e,"arrayAggregator");S(J2e,"arrayAggregator");Cpt=J2e;o(eTe,"createBaseFor");S(eTe,"createBaseFor");kpt=eTe,wpt=kpt(),Spt=wpt;o(tTe,"baseForOwn");S(tTe,"baseForOwn");Ept=tTe;o(rTe,"createBaseEach");S(rTe,"createBaseEach");Apt=rTe,_pt=Apt(Ept),rm=_pt;o(iTe,"baseAggregator");S(iTe,"baseAggregator");Dpt=iTe;o(nTe,"createAggregator");S(nTe,"createAggregator");Rpt=nTe,aTe=Object.prototype,Lpt=aTe.hasOwnProperty,Mpt=mz(function(e,t){e=Object(e);var r=-1,i=t.length,n=i>2?t[2]:void 0;for(n&&hA(t[0],t[1],n)&&(i=1);++r{t.accept(e)})}},us=class extends nu{static{o(this,"NonTerminal")}static{S(this,"NonTerminal")}constructor(e){super([]),this.idx=1,mo(this,Xl(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},oy=class extends nu{static{o(this,"Rule")}static{S(this,"Rule")}constructor(e){super(e.definition),this.orgText="",mo(this,Xl(e,t=>t!==void 0))}},Ws=class extends nu{static{o(this,"Alternative")}static{S(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,mo(this,Xl(e,t=>t!==void 0))}},Ca=class extends nu{static{o(this,"Option")}static{S(this,"Option")}constructor(e){super(e.definition),this.idx=1,mo(this,Xl(e,t=>t!==void 0))}},yo=class extends nu{static{o(this,"RepetitionMandatory")}static{S(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,mo(this,Xl(e,t=>t!==void 0))}},vo=class extends nu{static{o(this,"RepetitionMandatoryWithSeparator")}static{S(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,mo(this,Xl(e,t=>t!==void 0))}},hn=class extends nu{static{o(this,"Repetition")}static{S(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,mo(this,Xl(e,t=>t!==void 0))}},qs=class extends nu{static{o(this,"RepetitionWithSeparator")}static{S(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,mo(this,Xl(e,t=>t!==void 0))}},Us=class extends nu{static{o(this,"Alternation")}static{S(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,mo(this,Xl(e,t=>t!==void 0))}},Wi=class{static{o(this,"Terminal")}static{S(this,"Terminal")}constructor(e){this.idx=1,mo(this,Xl(e,t=>t!==void 0))}accept(e){e.visit(this)}};o(ZTe,"serializeGrammar");S(ZTe,"serializeGrammar");o(K2,"serializeProduction");S(K2,"serializeProduction");ly=class{static{o(this,"GAstVisitor")}static{S(this,"GAstVisitor")}visit(e){let t=e;switch(t.constructor){case us:return this.visitNonTerminal(t);case Ws:return this.visitAlternative(t);case Ca:return this.visitOption(t);case yo:return this.visitRepetitionMandatory(t);case vo:return this.visitRepetitionMandatoryWithSeparator(t);case qs:return this.visitRepetitionWithSeparator(t);case hn:return this.visitRepetition(t);case Us:return this.visitAlternation(t);case Wi:return this.visitTerminal(t);case oy:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};o(QTe,"isSequenceProd");S(QTe,"isSequenceProd");o(uT,"isOptionalProd");S(uT,"isOptionalProd");o(JTe,"isBranchingProd");S(JTe,"isBranchingProd");o(Gl,"getProductionDslName");S(Gl,"getProductionDslName");CA=class{static{o(this,"RestWalker")}static{S(this,"RestWalker")}walk(e,t=[]){vr(e.definition,(r,i)=>{let n=Ta(e.definition,i+1);if(r instanceof us)this.walkProdRef(r,n,t);else if(r instanceof Wi)this.walkTerminal(r,n,t);else if(r instanceof Ws)this.walkFlat(r,n,t);else if(r instanceof Ca)this.walkOption(r,n,t);else if(r instanceof yo)this.walkAtLeastOne(r,n,t);else if(r instanceof vo)this.walkAtLeastOneSep(r,n,t);else if(r instanceof qs)this.walkManySep(r,n,t);else if(r instanceof hn)this.walkMany(r,n,t);else if(r instanceof Us)this.walkOr(r,n,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){let i=t.concat(r);this.walk(e,i)}walkOption(e,t,r){let i=t.concat(r);this.walk(e,i)}walkAtLeastOne(e,t,r){let i=[new Ca({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){let i=bF(e,t,r);this.walk(e,i)}walkMany(e,t,r){let i=[new Ca({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){let i=bF(e,t,r);this.walk(e,i)}walkOr(e,t,r){let i=t.concat(r);vr(e.definition,n=>{let a=new Ws({definition:[n]});this.walk(a,i)})}};o(bF,"restForRepetitionWithSeparator");S(bF,"restForRepetitionWithSeparator");o(cy,"first");S(cy,"first");o(eCe,"firstForSequence");S(eCe,"firstForSequence");o(tCe,"firstForBranching");S(tCe,"firstForBranching");o(rCe,"firstForTerminal");S(rCe,"firstForTerminal");iCe="_~IN~_",x0t=class extends CA{static{o(this,"ResyncFollowsWalker")}static{S(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){let i=aCe(e.referencedRule,e.idx)+this.topProd.name,n=t.concat(r),a=new Ws({definition:n}),s=cy(a);this.follows[i]=s}};o(nCe,"computeAllProdsFollows");S(nCe,"computeAllProdsFollows");o(aCe,"buildBetweenProdsFollowPrefix");S(aCe,"buildBetweenProdsFollowPrefix");WE={},b0t=new Bve;o(OT,"getRegExpAst");S(OT,"getRegExpAst");o(sCe,"clearRegExpParserCache");S(sCe,"clearRegExpParserCache");oCe="Complement Sets are not supported for first char optimization",S5=`Unable to use "first char" lexer optimizations: +`;o(lCe,"getOptimizedStartCodesIndices");S(lCe,"getOptimizedStartCodesIndices");o(E5,"firstCharOptimizedIndices");S(E5,"firstCharOptimizedIndices");o(O2,"addOptimizedIdxToResult");S(O2,"addOptimizedIdxToResult");o(cCe,"handleIgnoreCase");S(cCe,"handleIgnoreCase");o(TF,"findCode");S(TF,"findCode");o(A5,"isWholeOptional");S(A5,"isWholeOptional");T0t=class extends tA{static{o(this,"CharCodeFinder")}static{S(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return;case"Lookbehind":this.visitLookbehind(e);return;case"NegativeLookbehind":this.visitNegativeLookbehind(e);return}super.visitChildren(e)}}visitCharacter(e){fs(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?TF(e,this.targetCharCodes)===void 0&&(this.found=!0):TF(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};o(kA,"canMatchCharCode");S(kA,"canMatchCharCode");G0="PATTERN",P2="defaultMode",yE="modes",uCe=typeof new RegExp("(?:)").sticky=="boolean";o(hCe,"analyzeTokenTypes");S(hCe,"analyzeTokenTypes");o(dCe,"validatePatterns");S(dCe,"validatePatterns");o(fCe,"validateRegExpPattern");S(fCe,"validateRegExpPattern");o(pCe,"findMissingPatterns");S(pCe,"findMissingPatterns");o(mCe,"findInvalidPatterns");S(mCe,"findInvalidPatterns");C0t=/[^\\][$]/;o(gCe,"findEndOfInputAnchor");S(gCe,"findEndOfInputAnchor");o(yCe,"findEmptyMatchRegExps");S(yCe,"findEmptyMatchRegExps");k0t=/[^\\[][\^]|^\^/;o(vCe,"findStartOfInputAnchor");S(vCe,"findStartOfInputAnchor");o(xCe,"findUnsupportedFlags");S(xCe,"findUnsupportedFlags");o(bCe,"findDuplicatePatterns");S(bCe,"findDuplicatePatterns");o(TCe,"findInvalidGroupType");S(TCe,"findInvalidGroupType");o(CCe,"findModesThatDoNotExist");S(CCe,"findModesThatDoNotExist");o(kCe,"findUnreachablePatterns");S(kCe,"findUnreachablePatterns");o(wCe,"tryToMatchStrToPattern");S(wCe,"tryToMatchStrToPattern");o(SCe,"noMetaChar");S(SCe,"noMetaChar");o(ECe,"usesLookAheadOrBehind");S(ECe,"usesLookAheadOrBehind");o(CF,"addStartOfInput");S(CF,"addStartOfInput");o(kF,"addStickyFlag");S(kF,"addStickyFlag");o(ACe,"performRuntimeChecks");S(ACe,"performRuntimeChecks");o(_Ce,"performWarningRuntimeChecks");S(_Ce,"performWarningRuntimeChecks");o(DCe,"cloneEmptyGroups");S(DCe,"cloneEmptyGroups");o(Oz,"isCustomPattern");S(Oz,"isCustomPattern");o(RCe,"isShortPattern");S(RCe,"isShortPattern");w0t={test:S(function(e){let t=e.length;for(let r=this.lastIndex;r${e.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(e,t,r,i,n,a){return`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${r} characters.`}};(function(e){e[e.MISSING_PATTERN=0]="MISSING_PATTERN",e[e.INVALID_PATTERN=1]="INVALID_PATTERN",e[e.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e[e.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e[e.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e[e.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e[e.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e[e.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e[e.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e[e.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e[e.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e[e.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e[e.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(dn||(dn={}));F2={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:SF,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(F2);ls=class{static{o(this,"Lexer")}static{S(this,"Lexer")}constructor(e,t=F2){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,n)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:s,value:l}=Nz(n),u=s>10?console.warn:console.log;return this.traceInitIndent time: ${s}ms`),this.traceInitIndent--,l}else return n()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=mo({},F2,t);let r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,n=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===F2.lineTerminatorsPattern)this.config.lineTerminatorsPattern=w0t;else if(this.config.lineTerminatorCharacters===F2.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Kr(e)?i={modes:{defaultMode:ka(e)},defaultMode:P2}:(n=!1,i=ka(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(ACe(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(_Ce(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},vr(i.modes,(s,l)=>{i.modes[l]=TA(s,u=>dh(u))});let a=po(i.modes);if(vr(i.modes,(s,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(dCe(s,a))}),Oi(this.lexerDefinitionErrors)){hy(s);let u;this.TRACE_INIT("analyzeTokenTypes",()=>{u=hCe(s,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=u.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=u.charCodeToPatternIdxToConfig,this.emptyGroups=mo({},this.emptyGroups,u.emptyGroups),this.hasCustom=u.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=u.canBeOptimized}})}),this.defaultMode=i.defaultMode,!Oi(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let l=nr(this.lexerDefinitionErrors,u=>u.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+l)}vr(this.lexerDefinitionWarning,s=>{Mz(s.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(uCe?(this.chopInput=J1,this.match=this.matchWithTest):(this.updateLastIndex=Un,this.match=this.matchWithExec),n&&(this.handleModes=Un),this.trackStartLines===!1&&(this.computeNewColumn=J1),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=Un),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let s=go(this.canModeBeOptimized,(l,u,h)=>(u===!1&&l.push(h),l),[]);if(t.ensureOptimizations&&!Oi(s))throw Error(`Lexer Modes: < ${s.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{sCe()}),this.TRACE_INIT("toFastProperties",()=>{Iz(this)})})}tokenize(e,t=this.defaultMode){if(!Oi(this.lexerDefinitionErrors)){let i=nr(this.lexerDefinitionErrors,n=>n.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,i,n,a,s,l,u,h,d,f,p,m,g,y,v,x,b=e,T=b.length,w=0,C=0,k=this.hasCustom?0:Math.floor(e.length/10),E=new Array(k),A=[],N=this.trackStartLines?1:void 0,P=this.trackStartLines?1:void 0,I=DCe(this.emptyGroups),D=this.trackStartLines,_=this.config.lineTerminatorsPattern,R=0,M=[],L=[],B=[],O=[];Object.freeze(O);let $;function G(){return M}o(G,"getPossiblePatternsSlow"),S(G,"getPossiblePatternsSlow");function F(Q){let Y=fh(Q),ae=L[Y];return ae===void 0?O:ae}o(F,"getPossiblePatternsOptimized"),S(F,"getPossiblePatternsOptimized");let V=S(Q=>{if(B.length===1&&Q.tokenType.PUSH_MODE===void 0){let Y=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(Q);A.push({offset:Q.startOffset,line:Q.startLine,column:Q.startColumn,length:Q.image.length,message:Y})}else{B.pop();let Y=z0(B);M=this.patternIdxToConfig[Y],L=this.charCodeToPatternIdxToConfig[Y],R=M.length;let ae=this.canModeBeOptimized[Y]&&this.config.safeMode===!1;L&&ae?$=F:$=G}},"pop_mode");function H(Q){B.push(Q),L=this.charCodeToPatternIdxToConfig[Q],M=this.patternIdxToConfig[Q],R=M.length,R=M.length;let Y=this.canModeBeOptimized[Q]&&this.config.safeMode===!1;L&&Y?$=F:$=G}o(H,"push_mode"),S(H,"push_mode"),H.call(this,t);let j,U=this.config.recoveryEnabled;for(;wl.length){l=a,u=h,j=ee;break}}}break}}if(l!==null){if(d=l.length,f=j.group,f!==void 0&&(p=j.tokenTypeIdx,m=this.createTokenInstance(l,w,p,j.tokenType,N,P,d),this.handlePayload(m,u),f===!1?C=this.addToken(E,C,m):I[f].push(m)),e=this.chopInput(e,d),w=w+d,P=this.computeNewColumn(P,d),D===!0&&j.canLineTerminator===!0){let J=0,te,re;_.lastIndex=0;do te=_.test(l),te===!0&&(re=_.lastIndex-1,J++);while(te===!0);J!==0&&(N=N+J,P=d-re,this.updateTokenEndLineColumnLocation(m,f,re,J,N,P,d))}this.handleModes(j,V,H,m)}else{let J=w,te=N,re=P,ee=U===!1;for(;ee===!1&&w ${B0(e)} <--`:`token of type --> ${e.name} <--`} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:e,ruleName:t}){return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:r,customUserDescription:i,ruleName:n}){let a="Expecting: ",l=` +but found: '`+jl(t).image+"'";if(i)return a+i+l;{let u=go(e,(p,m)=>p.concat(m),[]),h=nr(u,p=>`[${nr(p,m=>B0(m)).join(", ")}]`),f=`one of these possible Token sequences: +${nr(h,(p,m)=>` ${m+1}. ${p}`).join(` +`)}`;return a+f+l}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:r,ruleName:i}){let n="Expecting: ",s=` +but found: '`+jl(t).image+"'";if(r)return n+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${nr(e,h=>`[${nr(h,d=>B0(d)).join(",")}]`).join(" ,")}>`;return n+u+s}}};Object.freeze(z1);E0t={buildRuleNotFoundError(e,t){return"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+`<- +inside top level rule: ->`+e.name+"<-"}},I0={buildDuplicateFoundError(e,t){function r(d){return d instanceof Wi?d.terminalType.name:d instanceof us?d.nonTerminalName:""}o(r,"getExtraProductionArgument2"),S(r,"getExtraProductionArgument");let i=e.name,n=jl(t),a=n.idx,s=Gl(n),l=r(n),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""} + appears more than once (${t.length} times) in the top level rule: ->${i}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,` +`),h},buildNamespaceConflictError(e){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(e){let t=nr(e.prefixPath,n=>B0(n)).join(", "),r=e.alternation.idx===0?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(e){let t=nr(e.prefixPath,n=>B0(n)).join(", "),r=e.alternation.idx===0?"":e.alternation.idx,i=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +`;return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError(e){let t=Gl(e.repetition);return e.repetition.idx!==0&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(e){return"deprecated"},buildEmptyAlternationError(e){return`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in inside <${e.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(e){return`An Alternation cannot have more than 256 alternatives: + inside <${e.topLevelRule.name}> Rule. + has ${e.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(e){let t=e.topLevelRule.name,r=nr(e.leftRecursionPath,a=>a.name),i=`${t} --> ${r.concat([t]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${t}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${i} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(e){return"deprecated"},buildDuplicateRuleNameError(e){let t;return e.topLevelRule instanceof oy?t=e.topLevelRule.name:t=e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};o(VCe,"resolveGrammar");S(VCe,"resolveGrammar");A0t=class extends ly{static{o(this,"GastRefResolverVisitor")}static{S(this,"GastRefResolverVisitor")}constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){vr(Hn(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:hs.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}},_0t=class extends CA{static{o(this,"AbstractNextPossibleTokensWalker")}static{S(this,"AbstractNextPossibleTokensWalker")}constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=ka(this.path.ruleStack).reverse(),this.occurrenceStack=ka(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){Oi(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},D0t=class extends _0t{static{o(this,"NextAfterTokenWalker")}static{S(this,"NextAfterTokenWalker")}constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=t.concat(r),n=new Ws({definition:i});this.possibleTokTypes=cy(n),this.found=!0}}},wA=class extends CA{static{o(this,"AbstractNextTerminalAfterProductionWalker")}static{S(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},R0t=class extends wA{static{o(this,"NextTerminalAfterManyWalker")}static{S(this,"NextTerminalAfterManyWalker")}walkMany(e,t,r){if(e.idx===this.occurrence){let i=jl(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof Wi&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}},oye=class extends wA{static{o(this,"NextTerminalAfterManySepWalker")}static{S(this,"NextTerminalAfterManySepWalker")}walkManySep(e,t,r){if(e.idx===this.occurrence){let i=jl(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof Wi&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}},L0t=class extends wA{static{o(this,"NextTerminalAfterAtLeastOneWalker")}static{S(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){let i=jl(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof Wi&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}},lye=class extends wA{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}static{S(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){let i=jl(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof Wi&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}};o(_5,"possiblePathsFrom");S(_5,"possiblePathsFrom");o(Vz,"nextPossibleTokensAfter");S(Vz,"nextPossibleTokensAfter");o(WCe,"expandTopLevelRule");S(WCe,"expandTopLevelRule");(function(e){e[e.OPTION=0]="OPTION",e[e.REPETITION=1]="REPETITION",e[e.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",e[e.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",e[e.ALTERNATION=5]="ALTERNATION"})(en||(en={}));o(SA,"getProdType");S(SA,"getProdType");o(EF,"getLookaheadPaths");S(EF,"getLookaheadPaths");o(qCe,"buildLookaheadFuncForOr");S(qCe,"buildLookaheadFuncForOr");o(UCe,"buildLookaheadFuncForOptionalProd");S(UCe,"buildLookaheadFuncForOptionalProd");o(HCe,"buildAlternativesLookAheadFunc");S(HCe,"buildAlternativesLookAheadFunc");o(YCe,"buildSingleAlternativeLookaheadFunction");S(YCe,"buildSingleAlternativeLookaheadFunction");M0t=class extends CA{static{o(this,"RestDefinitionFinderWalker")}static{S(this,"RestDefinitionFinderWalker")}constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,i){return e.idx===this.targetOccurrence&&this.targetProdType===t?(this.restDef=r.concat(i),!0):!1}walkOption(e,t,r){this.checkIsTarget(e,en.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,en.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,en.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,en.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,en.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}},jCe=class extends ly{static{o(this,"InsideDefinitionFinderVisitor")}static{S(this,"InsideDefinitionFinderVisitor")}constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,en.OPTION)}visitRepetition(e){this.checkIsTarget(e,en.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,en.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,en.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,en.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,en.ALTERNATION)}};o(AF,"initializeArrayOfArrays");S(AF,"initializeArrayOfArrays");o(HE,"pathToHashKeys");S(HE,"pathToHashKeys");o(XCe,"isUniquePrefixHash");S(XCe,"isUniquePrefixHash");o(Wz,"lookAheadSequenceFromAlternatives");S(Wz,"lookAheadSequenceFromAlternatives");o(BT,"getLookaheadPathsForOr");S(BT,"getLookaheadPathsForOr");o(FT,"getLookaheadPathsForOptionalProd");S(FT,"getLookaheadPathsForOptionalProd");o(D5,"containsPath");S(D5,"containsPath");o(KCe,"isStrictPrefixOfPath");S(KCe,"isStrictPrefixOfPath");o(qz,"areTokenCategoriesNotUsed");S(qz,"areTokenCategoriesNotUsed");o(ZCe,"validateLookahead");S(ZCe,"validateLookahead");o(QCe,"validateGrammar");S(QCe,"validateGrammar");o(JCe,"validateDuplicateProductions");S(JCe,"validateDuplicateProductions");o(eke,"identifyProductionForDuplicates");S(eke,"identifyProductionForDuplicates");o(Uz,"getExtraProductionArgument");S(Uz,"getExtraProductionArgument");N0t=class extends ly{static{o(this,"OccurrenceValidationCollector")}static{S(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};o(tke,"validateRuleDoesNotAlreadyExist");S(tke,"validateRuleDoesNotAlreadyExist");o(rke,"validateRuleIsOverridden");S(rke,"validateRuleIsOverridden");o(Hz,"validateNoLeftRecursion");S(Hz,"validateNoLeftRecursion");o(Z2,"getFirstNoneTerminal");S(Z2,"getFirstNoneTerminal");Yz=class extends ly{static{o(this,"OrCollector")}static{S(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};o(ike,"validateEmptyOrAlternative");S(ike,"validateEmptyOrAlternative");o(nke,"validateAmbiguousAlternationAlternatives");S(nke,"validateAmbiguousAlternationAlternatives");I0t=class extends ly{static{o(this,"RepetitionCollector")}static{S(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};o(ake,"validateTooManyAlts");S(ake,"validateTooManyAlts");o(ske,"validateSomeNonEmptyLookaheadPath");S(ske,"validateSomeNonEmptyLookaheadPath");o(oke,"checkAlternativesAmbiguities");S(oke,"checkAlternativesAmbiguities");o(lke,"checkPrefixAlternativesAmbiguities");S(lke,"checkPrefixAlternativesAmbiguities");o(cke,"checkTerminalAndNoneTerminalsNameSpace");S(cke,"checkTerminalAndNoneTerminalsNameSpace");o(uke,"resolveGrammar2");S(uke,"resolveGrammar");o(hke,"validateGrammar2");S(hke,"validateGrammar");dke="MismatchedTokenException",fke="NoViableAltException",pke="EarlyExitException",mke="NotAllInputParsedException",gke=[dke,fke,pke,mke];Object.freeze(gke);o(dT,"isRecognitionException");S(dT,"isRecognitionException");EA=class extends Error{static{o(this,"RecognitionException")}static{S(this,"RecognitionException")}constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},yke=class extends EA{static{o(this,"MismatchedTokenException")}static{S(this,"MismatchedTokenException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=dke}},O0t=class extends EA{static{o(this,"NoViableAltException")}static{S(this,"NoViableAltException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=fke}},P0t=class extends EA{static{o(this,"NotAllInputParsedException")}static{S(this,"NotAllInputParsedException")}constructor(e,t){super(e,t),this.name=mke}},B0t=class extends EA{static{o(this,"EarlyExitException")}static{S(this,"EarlyExitException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=pke}},KP={},vke="InRuleRecoveryException",F0t=class extends Error{static{o(this,"InRuleRecoveryException")}static{S(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=vke}},$0t=class{static{o(this,"Recoverable")}static{S(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=mr(e,"recoveryEnabled")?e.recoveryEnabled:ph.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=xke)}getTokenToInsert(e){let t=PT(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,i){let n=this.findReSyncTokenType(),a=this.exportLexerState(),s=[],l=!1,u=this.LA(1),h=this.LA(1),d=S(()=>{let f=this.LA(0),p=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:u,previous:f,ruleName:this.getCurrRuleFullName()}),m=new yke(p,u,this.LA(0));m.resyncedTokens=cT(s),this.SAVE_ERROR(m)},"generateErrorMessage");for(;!l;)if(this.tokenMatcher(h,i)){d();return}else if(r.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(h,n)?l=!0:(h=this.SKIP_TOKEN(),this.addToResyncTokens(h,s));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new F0t("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||Oi(t))return!1;let r=this.LA(1);return ty(t,n=>this.tokenMatcher(r,n))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(t);return fs(r,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),r=2;for(;;){let i=ty(e,n=>Gz(t,n));if(i!==void 0)return i;t=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return KP;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return nr(e,(r,i)=>i===0?KP:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=nr(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return Ul(e)}getFollowSetFromFollowKey(e){if(e===KP)return[gf];let t=e.ruleName+e.idxInCallingRule+iCe+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,gf)||t.push(e),t}reSyncTo(e){let t=[],r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return cT(t)}attemptInRepetitionRecovery(e,t,r,i,n,a,s){}getCurrentGrammarPath(e,t){let r=this.getHumanReadableRuleStack(),i=ka(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return nr(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};o(xke,"attemptInRepetitionRecovery");S(xke,"attemptInRepetitionRecovery");z0t=4,Cf=8,G0t=8,bke=1<Hz(t,t,I0))}validateEmptyOrAlternatives(e){return Jo(e,t=>ike(t,I0))}validateAmbiguousAlternationAlternatives(e,t){return Jo(e,r=>nke(r,t,I0))}validateSomeNonEmptyLookaheadPath(e,t){return ske(e,t,I0)}buildLookaheadForAlternation(e){return qCe(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,HCe)}buildLookaheadForOptional(e){return UCe(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,SA(e.prodType),YCe)}},V0t=class{static{o(this,"LooksAhead")}static{S(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=mr(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:ph.dynamicTokensEnabled,this.maxLookahead=mr(e,"maxLookahead")?e.maxLookahead:ph.maxLookahead,this.lookaheadStrategy=mr(e,"lookaheadStrategy")?e.lookaheadStrategy:new jz({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){vr(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{let{alternation:r,repetition:i,option:n,repetitionMandatory:a,repetitionMandatoryWithSeparator:s,repetitionWithSeparator:l}=Cke(t);vr(r,u=>{let h=u.idx===0?"":u.idx;this.TRACE_INIT(`${Gl(u)}${h}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:u.idx,rule:t,maxLookahead:u.maxLookahead||this.maxLookahead,hasPredicates:u.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),f=jE(this.fullRuleNameToShort[t.name],bke,u.idx);this.setLaFuncCache(f,d)})}),vr(i,u=>{this.computeLookaheadFunc(t,u.idx,_F,"Repetition",u.maxLookahead,Gl(u))}),vr(n,u=>{this.computeLookaheadFunc(t,u.idx,Tke,"Option",u.maxLookahead,Gl(u))}),vr(a,u=>{this.computeLookaheadFunc(t,u.idx,DF,"RepetitionMandatory",u.maxLookahead,Gl(u))}),vr(s,u=>{this.computeLookaheadFunc(t,u.idx,YE,"RepetitionMandatoryWithSeparator",u.maxLookahead,Gl(u))}),vr(l,u=>{this.computeLookaheadFunc(t,u.idx,RF,"RepetitionWithSeparator",u.maxLookahead,Gl(u))})})})}computeLookaheadFunc(e,t,r,i,n,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{let s=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:n||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=jE(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(l,s)})}getKeyForAutomaticLookahead(e,t){let r=this.getLastExplicitRuleShortName();return jE(r,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},W0t=class extends ly{static{o(this,"DslMethodsCollectorVisitor")}static{S(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},vE=new W0t;o(Cke,"collectMethods");S(Cke,"collectMethods");o(LF,"setNodeLocationOnlyOffset");S(LF,"setNodeLocationOnlyOffset");o(MF,"setNodeLocationFull");S(MF,"setNodeLocationFull");o(kke,"addTerminalToCst");S(kke,"addTerminalToCst");o(wke,"addNoneTerminalToCst");S(wke,"addNoneTerminalToCst");q0t="name";o(Xz,"defineNameProp");S(Xz,"defineNameProp");o(Ske,"defaultVisit");S(Ske,"defaultVisit");o(Eke,"createBaseSemanticVisitorConstructor");S(Eke,"createBaseSemanticVisitorConstructor");o(Ake,"createBaseVisitorConstructorWithDefaults");S(Ake,"createBaseVisitorConstructorWithDefaults");(function(e){e[e.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",e[e.MISSING_METHOD=1]="MISSING_METHOD"})(NF||(NF={}));o(_ke,"validateVisitor");S(_ke,"validateVisitor");o(Dke,"validateMissingCstMethods");S(Dke,"validateMissingCstMethods");U0t=class{static{o(this,"TreeBuilder")}static{S(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=mr(e,"nodeLocationTracking")?e.nodeLocationTracking:ph.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Un,this.cstFinallyStateUpdate=Un,this.cstPostTerminal=Un,this.cstPostNonTerminal=Un,this.cstPostRule=Un;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=MF,this.setNodeLocationFromNode=MF,this.cstPostRule=Un,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Un,this.setNodeLocationFromNode=Un,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=LF,this.setNodeLocationFromNode=LF,this.cstPostRule=Un,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Un,this.setNodeLocationFromNode=Un,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Un,this.setNodeLocationFromNode=Un,this.cstPostRule=Un,this.setInitialNodeLocation=Un;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];kke(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];wke(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(dh(this.baseCstVisitorConstructor)){let e=Eke(this.className,po(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(dh(this.baseCstVisitorWithDefaultsConstructor)){let e=Ake(this.className,po(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},H0t=class{static{o(this,"LexerAdapter")}static{S(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):R5}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?R5:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},Y0t=class{static{o(this,"RecognizerApi")}static{S(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=L5){if(fs(this.definedRulesNames,e)){let a={message:I0.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:hs.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);let i=this.defineRule(e,t,r);return this[e]=i,i}OVERRIDE_RULE(e,t,r=L5){let i=rke(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let n=this.defineRule(e,t,r);return this[e]=n,n}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let r=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if(dT(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return ZTe(Hn(this.gastProductionsCache))}},j0t=class{static{o(this,"RecognizerEngine")}static{S(this,"RecognizerEngine")}initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=hT,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},mr(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(Kr(e)){if(Oi(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(Kr(e))this.tokensMap=go(e,(n,a)=>(n[a.name]=a,n),{});else if(mr(e,"modes")&&Hl(Ul(Hn(e.modes)),zCe)){let n=Ul(Hn(e.modes)),a=Lz(n);this.tokensMap=go(a,(s,l)=>(s[l.name]=l,s),{})}else if(tl(e))this.tokensMap=ka(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=gf;let r=mr(e,"modes")?Ul(Hn(e.modes)):Hn(e),i=Hl(r,n=>Oi(n.categoryMatches));this.tokenMatcher=i?hT:uy,hy(Hn(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=mr(r,"resyncEnabled")?r.resyncEnabled:L5.resyncEnabled,n=mr(r,"recoveryValueFunc")?r.recoveryValueFunc:L5.recoveryValueFunc,a=this.ruleShortNameIdx<a.call(this)&&s.call(this),"lookAheadFunc")}}else n=e;if(i.call(this)===!0)return n.call(this)}atLeastOneInternal(e,t){let r=this.getKeyForAutomaticLookahead(DF,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),n;if(typeof t!="function"){n=t.DEF;let a=t.GATE;if(a!==void 0){let s=i;i=S(()=>a.call(this)&&s.call(this),"lookAheadFunc")}}else n=t;if(i.call(this)===!0){let a=this.doSingleRepetition(n);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(n)}else throw this.raiseEarlyExitException(e,en.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,DF,e,L0t)}atLeastOneSepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(YE,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){let i=t.DEF,n=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);let s=S(()=>this.tokenMatcher(this.LA(1),n),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),n)===!0;)this.CONSUME(n),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,n,s,i,lye],s,YE,e,lye)}else throw this.raiseEarlyExitException(e,en.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let r=this.getKeyForAutomaticLookahead(_F,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),n;if(typeof t!="function"){n=t.DEF;let s=t.GATE;if(s!==void 0){let l=i;i=S(()=>s.call(this)&&l.call(this),"lookaheadFunction")}}else n=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(n);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,_F,e,R0t,a)}manySepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(RF,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){let i=t.DEF,n=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);let s=S(()=>this.tokenMatcher(this.LA(1),n),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),n)===!0;)this.CONSUME(n),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,n,s,i,oye],s,RF,e,oye)}}repetitionSepSecondInternal(e,t,r,i,n){for(;r();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,i,n],r,YE,e,n)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let r=this.getKeyForAutomaticLookahead(bke,t),i=Kr(e)?e:e.DEF,a=this.getLaFuncFromCache(r).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new P0t(t,e))}}subruleInternal(e,t,r){let i;try{let n=r!==void 0?r.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,n),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(n){throw this.subruleInternalError(n,r,e.ruleName)}}subruleInternalError(e,t,r){throw dT(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let i;try{let n=this.LA(1);this.tokenMatcher(n,e)===!0?(this.consumeToken(),i=n):this.consumeInternalError(e,n,r)}catch(n){i=this.consumeInternalRecovery(e,t,n)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,t,r){let i,n=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:n,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yke(i,t,n))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(n){throw n.name===vke?r:n}}else throw r}saveRecogState(){let e=this.errors,t=ka(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),gf)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},X0t=class{static{o(this,"ErrorHandler")}static{S(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=mr(e,"errorMessageProvider")?e.errorMessageProvider:ph.errorMessageProvider}SAVE_ERROR(e){if(dT(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:ka(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return ka(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){let i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=FT(e,n,t,this.maxLookahead)[0],l=[];for(let h=1;h<=this.maxLookahead;h++)l.push(this.LA(h));let u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:s,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new B0t(u,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],n=BT(e,i,this.maxLookahead),a=[];for(let u=1;u<=this.maxLookahead;u++)a.push(this.LA(u));let s=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:n,actual:a,previous:s,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new O0t(l,this.LA(1),s))}},K0t=class{static{o(this,"ContentAssist")}static{S(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,t){let r=this.gastProductionsCache[e];if(dh(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return Vz([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=jl(e.ruleStack),i=this.getGAstProductions()[t];return new D0t(i,e).startWalking()}},AA={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(AA);cye=!0,uye=Math.pow(2,Cf)-1,Rke=q1({name:"RECORDING_PHASE_TOKEN",pattern:ls.NA});hy([Rke]);Lke=PT(Rke,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Lke);Z0t={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Q0t=class{static{o(this,"GastRecorder")}static{S(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let t=e>0?e:"";this[`CONSUME${t}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${t}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${t}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${t}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${t}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${t}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${t}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${t}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let t=0;t<10;t++){let r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return R5}topLevelRuleRecord(e,t){try{let r=new oy({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,t){return L1.call(this,Ca,e,t)}atLeastOneInternalRecord(e,t){L1.call(this,yo,t,e)}atLeastOneSepFirstInternalRecord(e,t){L1.call(this,vo,t,e,cye)}manyInternalRecord(e,t){L1.call(this,hn,t,e)}manySepFirstInternalRecord(e,t){L1.call(this,qs,t,e,cye)}orInternalRecord(e,t){return Mke.call(this,e,t)}subruleInternalRecord(e,t,r){if(fT(t),!e||mr(e,"ruleName")===!1){let s=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=z0(this.recordingProdStack),n=e.ruleName,a=new us({idx:t,nonTerminalName:n,label:r?.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?Z0t:AA}consumeInternalRecord(e,t,r){if(fT(t),!$z(e)){let a=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}let i=z0(this.recordingProdStack),n=new Wi({idx:t,terminalType:e,label:r?.LABEL});return i.definition.push(n),Lke}};o(L1,"recordProd");S(L1,"recordProd");o(Mke,"recordOrProd");S(Mke,"recordOrProd");o(IF,"getIdxSuffix");S(IF,"getIdxSuffix");o(fT,"assertMethodIdxIsValid");S(fT,"assertMethodIdxIsValid");J0t=class{static{o(this,"PerformanceTracer")}static{S(this,"PerformanceTracer")}initPerformanceTracer(e){if(mr(e,"traceInitPerf")){let t=e.traceInitPerf,r=typeof t=="number";this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=ph.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;let r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:i,value:n}=Nz(t),a=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,n}else return t()}};o(Nke,"applyMixins");S(Nke,"applyMixins");R5=PT(gf,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(R5);ph=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:z1,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),L5=Object.freeze({recoveryValueFunc:S(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(e){e[e.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",e[e.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",e[e.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",e[e.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",e[e.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",e[e.LEFT_RECURSION=5]="LEFT_RECURSION",e[e.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",e[e.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",e[e.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",e[e.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",e[e.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",e[e.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(hs||(hs={}));o(OF,"EMPTY_ALT");S(OF,"EMPTY_ALT");Kz=class Ike{static{o(this,"_Parser")}static{S(this,"Parser")}static performSelfAnalysis(t){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let t;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{Iz(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),vr(this.definedRulesNames,n=>{let s=this[n].originalGrammarAction,l;this.TRACE_INIT(`${n} Rule`,()=>{l=this.topLevelRuleRecord(n,s)}),this.gastProductionsCache[n]=l})}finally{this.disableRecording()}});let i=[];if(this.TRACE_INIT("Grammar Resolving",()=>{i=uke({rules:Hn(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(i)}),this.TRACE_INIT("Grammar Validations",()=>{if(Oi(i)&&this.skipValidations===!1){let n=hke({rules:Hn(this.gastProductionsCache),tokenTypes:Hn(this.tokensMap),errMsgProvider:I0,grammarName:r}),a=ZCe({lookaheadStrategy:this.lookaheadStrategy,rules:Hn(this.gastProductionsCache),tokenTypes:Hn(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(n,a)}}),Oi(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let n=nCe(Hn(this.gastProductionsCache));this.resyncFollows=n}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var n,a;(a=(n=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(n,{rules:Hn(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Hn(this.gastProductionsCache))})),!Ike.DEFER_DEFINITION_ERRORS_HANDLING&&!Oi(this.definitionErrors))throw t=nr(this.definitionErrors,n=>n.message),new Error(`Parser Definition Errors detected: + ${t.join(` +------------------------------- +`)}`)})}constructor(t,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let i=this;if(i.initErrorHandler(r),i.initLexerAdapter(),i.initLooksAhead(r),i.initRecognizerEngine(t,r),i.initRecoverable(r),i.initTreeBuilder(r),i.initContentAssist(),i.initGastRecorder(r),i.initPerformanceTracer(r),mr(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=mr(r,"skipValidations")?r.skipValidations:ph.skipValidations}};Kz.DEFER_DEFINITION_ERRORS_HANDLING=!1;Nke(Kz,[$0t,V0t,U0t,H0t,j0t,Y0t,X0t,K0t,Q0t,J0t]);emt=class extends Kz{static{o(this,"EmbeddedActionsParser")}static{S(this,"EmbeddedActionsParser")}constructor(e,t=ph){let r=ka(t);r.outputCst=!1,super(e,r)}};o(Oke,"arrayMap2");S(Oke,"arrayMap");Pke=Oke;o(Bke,"listCacheClear2");S(Bke,"listCacheClear");tmt=Bke;o(Fke,"eq2");S(Fke,"eq");$ke=Fke;o(zke,"assocIndexOf2");S(zke,"assocIndexOf");_A=zke,rmt=Array.prototype,imt=rmt.splice;o(Gke,"listCacheDelete2");S(Gke,"listCacheDelete");nmt=Gke;o(Vke,"listCacheGet2");S(Vke,"listCacheGet");amt=Vke;o(Wke,"listCacheHas2");S(Wke,"listCacheHas");smt=Wke;o(qke,"listCacheSet2");S(qke,"listCacheSet");omt=qke;o(im,"ListCache2");S(im,"ListCache");im.prototype.clear=tmt;im.prototype.delete=nmt;im.prototype.get=amt;im.prototype.has=smt;im.prototype.set=omt;DA=im;o(Uke,"stackClear2");S(Uke,"stackClear");lmt=Uke;o(Hke,"stackDelete2");S(Hke,"stackDelete");cmt=Hke;o(Yke,"stackGet2");S(Yke,"stackGet");umt=Yke;o(jke,"stackHas2");S(jke,"stackHas");hmt=jke,dmt=typeof global=="object"&&global&&global.Object===Object&&global,Xke=dmt,fmt=typeof self=="object"&&self&&self.Object===Object&&self,pmt=Xke||fmt||Function("return this")(),xh=pmt,mmt=xh.Symbol,eu=mmt,Kke=Object.prototype,gmt=Kke.hasOwnProperty,ymt=Kke.toString,b2=eu?eu.toStringTag:void 0;o(Zke,"getRawTag2");S(Zke,"getRawTag");vmt=Zke,xmt=Object.prototype,bmt=xmt.toString;o(Qke,"objectToString2");S(Qke,"objectToString");Tmt=Qke,Cmt="[object Null]",kmt="[object Undefined]",hye=eu?eu.toStringTag:void 0;o(Jke,"baseGetTag2");S(Jke,"baseGetTag");dy=Jke;o(ewe,"isObject2");S(ewe,"isObject");Zz=ewe,wmt="[object AsyncFunction]",Smt="[object Function]",Emt="[object GeneratorFunction]",Amt="[object Proxy]";o(twe,"isFunction2");S(twe,"isFunction");rwe=twe,_mt=xh["__core-js_shared__"],ZP=_mt,dye=(function(){var e=/[^.]+$/.exec(ZP&&ZP.keys&&ZP.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();o(iwe,"isMasked2");S(iwe,"isMasked");Dmt=iwe,Rmt=Function.prototype,Lmt=Rmt.toString;o(nwe,"toSource2");S(nwe,"toSource");nm=nwe,Mmt=/[\\^$.*+?()[\]{}|]/g,Nmt=/^\[object .+?Constructor\]$/,Imt=Function.prototype,Omt=Object.prototype,Pmt=Imt.toString,Bmt=Omt.hasOwnProperty,Fmt=RegExp("^"+Pmt.call(Bmt).replace(Mmt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(awe,"baseIsNative2");S(awe,"baseIsNative");$mt=awe;o(swe,"getValue2");S(swe,"getValue");zmt=swe;o(owe,"getNative2");S(owe,"getNative");fy=owe,Gmt=fy(xh,"Map"),pT=Gmt,Vmt=fy(Object,"create"),mT=Vmt;o(lwe,"hashClear2");S(lwe,"hashClear");Wmt=lwe;o(cwe,"hashDelete2");S(cwe,"hashDelete");qmt=cwe,Umt="__lodash_hash_undefined__",Hmt=Object.prototype,Ymt=Hmt.hasOwnProperty;o(uwe,"hashGet2");S(uwe,"hashGet");jmt=uwe,Xmt=Object.prototype,Kmt=Xmt.hasOwnProperty;o(hwe,"hashHas2");S(hwe,"hashHas");Zmt=hwe,Qmt="__lodash_hash_undefined__";o(dwe,"hashSet2");S(dwe,"hashSet");Jmt=dwe;o(am,"Hash2");S(am,"Hash");am.prototype.clear=Wmt;am.prototype.delete=qmt;am.prototype.get=jmt;am.prototype.has=Zmt;am.prototype.set=Jmt;fye=am;o(fwe,"mapCacheClear2");S(fwe,"mapCacheClear");egt=fwe;o(pwe,"isKeyable2");S(pwe,"isKeyable");tgt=pwe;o(mwe,"getMapData2");S(mwe,"getMapData");RA=mwe;o(gwe,"mapCacheDelete2");S(gwe,"mapCacheDelete");rgt=gwe;o(ywe,"mapCacheGet2");S(ywe,"mapCacheGet");igt=ywe;o(vwe,"mapCacheHas2");S(vwe,"mapCacheHas");ngt=vwe;o(xwe,"mapCacheSet2");S(xwe,"mapCacheSet");agt=xwe;o(sm,"MapCache2");S(sm,"MapCache");sm.prototype.clear=egt;sm.prototype.delete=rgt;sm.prototype.get=igt;sm.prototype.has=ngt;sm.prototype.set=agt;LA=sm,sgt=200;o(bwe,"stackSet2");S(bwe,"stackSet");ogt=bwe;o(om,"Stack2");S(om,"Stack");om.prototype.clear=lmt;om.prototype.delete=cmt;om.prototype.get=umt;om.prototype.has=hmt;om.prototype.set=ogt;XE=om,lgt="__lodash_hash_undefined__";o(Twe,"setCacheAdd2");S(Twe,"setCacheAdd");cgt=Twe;o(Cwe,"setCacheHas2");S(Cwe,"setCacheHas");ugt=Cwe;o(gT,"SetCache2");S(gT,"SetCache");gT.prototype.add=gT.prototype.push=cgt;gT.prototype.has=ugt;kwe=gT;o(wwe,"arraySome2");S(wwe,"arraySome");hgt=wwe;o(Swe,"cacheHas2");S(Swe,"cacheHas");Ewe=Swe,dgt=1,fgt=2;o(Awe,"equalArrays2");S(Awe,"equalArrays");_we=Awe,pgt=xh.Uint8Array,pye=pgt;o(Dwe,"mapToArray2");S(Dwe,"mapToArray");mgt=Dwe;o(Rwe,"setToArray2");S(Rwe,"setToArray");Qz=Rwe,ggt=1,ygt=2,vgt="[object Boolean]",xgt="[object Date]",bgt="[object Error]",Tgt="[object Map]",Cgt="[object Number]",kgt="[object RegExp]",wgt="[object Set]",Sgt="[object String]",Egt="[object Symbol]",Agt="[object ArrayBuffer]",_gt="[object DataView]",mye=eu?eu.prototype:void 0,QP=mye?mye.valueOf:void 0;o(Lwe,"equalByTag2");S(Lwe,"equalByTag");Dgt=Lwe;o(Mwe,"arrayPush2");S(Mwe,"arrayPush");Nwe=Mwe,Rgt=Array.isArray,ds=Rgt;o(Iwe,"baseGetAllKeys2");S(Iwe,"baseGetAllKeys");Lgt=Iwe;o(Owe,"arrayFilter2");S(Owe,"arrayFilter");Pwe=Owe;o(Bwe,"stubArray2");S(Bwe,"stubArray");Mgt=Bwe,Ngt=Object.prototype,Igt=Ngt.propertyIsEnumerable,gye=Object.getOwnPropertySymbols,Ogt=gye?function(e){return e==null?[]:(e=Object(e),Pwe(gye(e),function(t){return Igt.call(e,t)}))}:Mgt,Pgt=Ogt;o(Fwe,"baseTimes2");S(Fwe,"baseTimes");Bgt=Fwe;o($we,"isObjectLike2");S($we,"isObjectLike");ry=$we,Fgt="[object Arguments]";o(zwe,"baseIsArguments2");S(zwe,"baseIsArguments");yye=zwe,Gwe=Object.prototype,$gt=Gwe.hasOwnProperty,zgt=Gwe.propertyIsEnumerable,Ggt=yye((function(){return arguments})())?yye:function(e){return ry(e)&&$gt.call(e,"callee")&&!zgt.call(e,"callee")},MA=Ggt;o(Vwe,"stubFalse2");S(Vwe,"stubFalse");Vgt=Vwe,Wwe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vye=Wwe&&typeof module=="object"&&module&&!module.nodeType&&module,Wgt=vye&&vye.exports===Wwe,xye=Wgt?xh.Buffer:void 0,qgt=xye?xye.isBuffer:void 0,Ugt=qgt||Vgt,M5=Ugt,Hgt=9007199254740991,Ygt=/^(?:0|[1-9]\d*)$/;o(qwe,"isIndex2");S(qwe,"isIndex");Uwe=qwe,jgt=9007199254740991;o(Hwe,"isLength2");S(Hwe,"isLength");Jz=Hwe,Xgt="[object Arguments]",Kgt="[object Array]",Zgt="[object Boolean]",Qgt="[object Date]",Jgt="[object Error]",e1t="[object Function]",t1t="[object Map]",r1t="[object Number]",i1t="[object Object]",n1t="[object RegExp]",a1t="[object Set]",s1t="[object String]",o1t="[object WeakMap]",l1t="[object ArrayBuffer]",c1t="[object DataView]",u1t="[object Float32Array]",h1t="[object Float64Array]",d1t="[object Int8Array]",f1t="[object Int16Array]",p1t="[object Int32Array]",m1t="[object Uint8Array]",g1t="[object Uint8ClampedArray]",y1t="[object Uint16Array]",v1t="[object Uint32Array]",Vi={};Vi[u1t]=Vi[h1t]=Vi[d1t]=Vi[f1t]=Vi[p1t]=Vi[m1t]=Vi[g1t]=Vi[y1t]=Vi[v1t]=!0;Vi[Xgt]=Vi[Kgt]=Vi[l1t]=Vi[Zgt]=Vi[c1t]=Vi[Qgt]=Vi[Jgt]=Vi[e1t]=Vi[t1t]=Vi[r1t]=Vi[i1t]=Vi[n1t]=Vi[a1t]=Vi[s1t]=Vi[o1t]=!1;o(Ywe,"baseIsTypedArray2");S(Ywe,"baseIsTypedArray");x1t=Ywe;o(jwe,"baseUnary2");S(jwe,"baseUnary");b1t=jwe,Xwe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Q2=Xwe&&typeof module=="object"&&module&&!module.nodeType&&module,T1t=Q2&&Q2.exports===Xwe,JP=T1t&&Xke.process,C1t=(function(){try{var e=Q2&&Q2.require&&Q2.require("util").types;return e||JP&&JP.binding&&JP.binding("util")}catch{}})(),bye=C1t,Tye=bye&&bye.isTypedArray,k1t=Tye?b1t(Tye):x1t,eG=k1t,w1t=Object.prototype,S1t=w1t.hasOwnProperty;o(Kwe,"arrayLikeKeys2");S(Kwe,"arrayLikeKeys");E1t=Kwe,A1t=Object.prototype;o(Zwe,"isPrototype2");S(Zwe,"isPrototype");Qwe=Zwe;o(Jwe,"overArg2");S(Jwe,"overArg");_1t=Jwe,D1t=_1t(Object.keys,Object),R1t=D1t,L1t=Object.prototype,M1t=L1t.hasOwnProperty;o(e4e,"baseKeys2");S(e4e,"baseKeys");t4e=e4e;o(r4e,"isArrayLike2");S(r4e,"isArrayLike");NA=r4e;o(i4e,"keys2");S(i4e,"keys");tG=i4e;o(n4e,"getAllKeys2");S(n4e,"getAllKeys");Cye=n4e,N1t=1,I1t=Object.prototype,O1t=I1t.hasOwnProperty;o(a4e,"equalObjects2");S(a4e,"equalObjects");P1t=a4e,B1t=fy(xh,"DataView"),PF=B1t,F1t=fy(xh,"Promise"),BF=F1t,$1t=fy(xh,"Set"),U1=$1t,z1t=fy(xh,"WeakMap"),FF=z1t,kye="[object Map]",G1t="[object Object]",wye="[object Promise]",Sye="[object Set]",Eye="[object WeakMap]",Aye="[object DataView]",V1t=nm(PF),W1t=nm(pT),q1t=nm(BF),U1t=nm(U1),H1t=nm(FF),d0=dy;(PF&&d0(new PF(new ArrayBuffer(1)))!=Aye||pT&&d0(new pT)!=kye||BF&&d0(BF.resolve())!=wye||U1&&d0(new U1)!=Sye||FF&&d0(new FF)!=Eye)&&(d0=S(function(e){var t=dy(e),r=t==G1t?e.constructor:void 0,i=r?nm(r):"";if(i)switch(i){case V1t:return Aye;case W1t:return kye;case q1t:return wye;case U1t:return Sye;case H1t:return Eye}return t},"getTag"));$F=d0,Y1t=1,_ye="[object Arguments]",Dye="[object Array]",xE="[object Object]",j1t=Object.prototype,Rye=j1t.hasOwnProperty;o(s4e,"baseIsEqualDeep2");S(s4e,"baseIsEqualDeep");X1t=s4e;o(rG,"baseIsEqual2");S(rG,"baseIsEqual");o4e=rG,K1t=1,Z1t=2;o(l4e,"baseIsMatch2");S(l4e,"baseIsMatch");Q1t=l4e;o(c4e,"isStrictComparable2");S(c4e,"isStrictComparable");u4e=c4e;o(h4e,"getMatchData2");S(h4e,"getMatchData");J1t=h4e;o(d4e,"matchesStrictComparable2");S(d4e,"matchesStrictComparable");f4e=d4e;o(p4e,"baseMatches2");S(p4e,"baseMatches");eyt=p4e,tyt="[object Symbol]";o(m4e,"isSymbol2");S(m4e,"isSymbol");IA=m4e,ryt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,iyt=/^\w*$/;o(g4e,"isKey2");S(g4e,"isKey");iG=g4e,nyt="Expected a function";o(OA,"memoize2");S(OA,"memoize");OA.Cache=LA;ayt=OA,syt=500;o(y4e,"memoizeCapped2");S(y4e,"memoizeCapped");oyt=y4e,lyt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cyt=/\\(\\)?/g,uyt=oyt(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(lyt,function(r,i,n,a){t.push(n?a.replace(cyt,"$1"):i||r)}),t}),hyt=uyt,dyt=1/0,Lye=eu?eu.prototype:void 0,Mye=Lye?Lye.toString:void 0;o(nG,"baseToString2");S(nG,"baseToString");fyt=nG;o(v4e,"toString3");S(v4e,"toString");pyt=v4e;o(x4e,"castPath2");S(x4e,"castPath");b4e=x4e,myt=1/0;o(T4e,"toKey2");S(T4e,"toKey");PA=T4e;o(C4e,"baseGet2");S(C4e,"baseGet");k4e=C4e;o(w4e,"get2");S(w4e,"get");gyt=w4e;o(S4e,"baseHasIn2");S(S4e,"baseHasIn");yyt=S4e;o(E4e,"hasPath2");S(E4e,"hasPath");vyt=E4e;o(A4e,"hasIn2");S(A4e,"hasIn");xyt=A4e,byt=1,Tyt=2;o(_4e,"baseMatchesProperty2");S(_4e,"baseMatchesProperty");Cyt=_4e;o(D4e,"identity2");S(D4e,"identity");aG=D4e;o(R4e,"baseProperty2");S(R4e,"baseProperty");kyt=R4e;o(L4e,"basePropertyDeep2");S(L4e,"basePropertyDeep");wyt=L4e;o(M4e,"property2");S(M4e,"property");Syt=M4e;o(N4e,"baseIteratee2");S(N4e,"baseIteratee");BA=N4e;o(I4e,"createBaseFor2");S(I4e,"createBaseFor");Eyt=I4e,Ayt=Eyt(),_yt=Ayt;o(O4e,"baseForOwn2");S(O4e,"baseForOwn");Dyt=O4e;o(P4e,"createBaseEach2");S(P4e,"createBaseEach");Ryt=P4e,Lyt=Ryt(Dyt),FA=Lyt;o(B4e,"baseMap2");S(B4e,"baseMap");Myt=B4e;o(F4e,"map2");S(F4e,"map");sh=F4e;o($4e,"baseFilter2");S($4e,"baseFilter");Nyt=$4e;o(z4e,"filter2");S(z4e,"filter");Iyt=z4e;o(V0,"buildATNKey");S(V0,"buildATNKey");yf=1,Oyt=2,G4e=4,V4e=5,$T=7,Pyt=8,Byt=9,Fyt=10,$yt=11,W4e=12,sG=class{static{o(this,"AbstractTransition")}static{S(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},oG=class extends sG{static{o(this,"AtomTransition")}static{S(this,"AtomTransition")}constructor(e,t){super(e),this.tokenType=t}},q4e=class extends sG{static{o(this,"EpsilonTransition")}static{S(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},lG=class extends sG{static{o(this,"RuleTransition")}static{S(this,"RuleTransition")}constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}};o(U4e,"createATN");S(U4e,"createATN");o(H4e,"createRuleStartAndStopATNStates");S(H4e,"createRuleStartAndStopATNStates");o(cG,"atom");S(cG,"atom");o(Y4e,"repetition");S(Y4e,"repetition");o(j4e,"repetitionSep");S(j4e,"repetitionSep");o(X4e,"repetitionMandatory");S(X4e,"repetitionMandatory");o(K4e,"repetitionMandatorySep");S(K4e,"repetitionMandatorySep");o(Z4e,"alternation");S(Z4e,"alternation");o(Q4e,"option");S(Q4e,"option");o(kf,"block");S(kf,"block");o(uG,"plus");S(uG,"plus");o(hG,"star");S(hG,"star");o(J4e,"optional");S(J4e,"optional");o(bh,"defineDecisionState");S(bh,"defineDecisionState");o(lm,"makeAlts");S(lm,"makeAlts");o(eSe,"getProdType2");S(eSe,"getProdType");o(tSe,"makeBlock");S(tSe,"makeBlock");o($A,"tokenRef");S($A,"tokenRef");o(rSe,"ruleRef");S(rSe,"ruleRef");o(iSe,"buildRuleHandle");S(iSe,"buildRuleHandle");o(vn,"epsilon");S(vn,"epsilon");o(Yn,"newState");S(Yn,"newState");o(zA,"addTransition");S(zA,"addTransition");o(nSe,"removeState");S(nSe,"removeState");N5={},zF=class{static{o(this,"ATNConfigSet")}static{S(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let t=dG(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return sh(this.configs,e=>e.alt)}get key(){let e="";for(let t in this.map)e+=t+":";return e}};o(dG,"getATNConfigKey");S(dG,"getATNConfigKey");o(aSe,"baseExtremum");S(aSe,"baseExtremum");zyt=aSe;o(sSe,"baseLt");S(sSe,"baseLt");Gyt=sSe;o(oSe,"min");S(oSe,"min");Vyt=oSe,Nye=eu?eu.isConcatSpreadable:void 0;o(lSe,"isFlattenable2");S(lSe,"isFlattenable");Wyt=lSe;o(fG,"baseFlatten2");S(fG,"baseFlatten");cSe=fG;o(uSe,"flatMap2");S(uSe,"flatMap");qyt=uSe;o(hSe,"baseFindIndex2");S(hSe,"baseFindIndex");Uyt=hSe;o(dSe,"baseIsNaN2");S(dSe,"baseIsNaN");Hyt=dSe;o(fSe,"strictIndexOf2");S(fSe,"strictIndexOf");Yyt=fSe;o(pSe,"baseIndexOf2");S(pSe,"baseIndexOf");jyt=pSe;o(mSe,"arrayIncludes2");S(mSe,"arrayIncludes");Xyt=mSe;o(gSe,"arrayIncludesWith2");S(gSe,"arrayIncludesWith");Kyt=gSe;o(ySe,"noop2");S(ySe,"noop");Zyt=ySe,Qyt=1/0,Jyt=U1&&1/Qz(new U1([,-0]))[1]==Qyt?function(e){return new U1(e)}:Zyt,evt=Jyt,tvt=200;o(vSe,"baseUniq2");S(vSe,"baseUniq");rvt=vSe;o(xSe,"uniqBy");S(xSe,"uniqBy");ivt=xSe;o(bSe,"flatten2");S(bSe,"flatten");nvt=bSe;o(TSe,"arrayEach2");S(TSe,"arrayEach");avt=TSe;o(CSe,"castFunction2");S(CSe,"castFunction");svt=CSe;o(kSe,"forEach2");S(kSe,"forEach");eB=kSe,ovt="[object Map]",lvt="[object Set]",cvt=Object.prototype,uvt=cvt.hasOwnProperty;o(wSe,"isEmpty2");S(wSe,"isEmpty");hvt=wSe;o(SSe,"arrayReduce2");S(SSe,"arrayReduce");dvt=SSe;o(ESe,"baseReduce2");S(ESe,"baseReduce");fvt=ESe;o(ASe,"reduce2");S(ASe,"reduce");Iye=ASe;o(_Se,"createDFACache");S(_Se,"createDFACache");DSe=class{static{o(this,"PredicateSet")}static{S(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="",t=this.predicates.length;for(let r=0;rconsole.log(r))}initialize(e){this.atn=U4e(e.rules),this.dfas=RSe(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:r,hasPredicates:i,dynamicTokensEnabled:n}=e,a=this.dfas,s=this.logging,l=V0(r,"Alternation",t),h=this.atn.decisionMap[l].decision,d=sh(EF({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),f=>sh(f,p=>p[0]));if(GF(d,!1)&&!n){let f=Iye(d,(p,m,g)=>(eB(m,y=>{y&&(p[y.tokenTypeIdx]=g,eB(y.categoryMatches,v=>{p[v]=g}))}),p),{});return i?function(p){var m;let g=this.LA(1),y=f[g.tokenTypeIdx];if(p!==void 0&&y!==void 0){let v=(m=p[y])===null||m===void 0?void 0:m.GATE;if(v!==void 0&&v.call(this)===!1)return}return y}:function(){let p=this.LA(1);return f[p.tokenTypeIdx]}}else return i?function(f){let p=new DSe,m=f===void 0?0:f.length;for(let y=0;ysh(f,p=>p[0]));if(GF(d)&&d[0][0]&&!n){let f=d[0],p=nvt(f);if(p.length===1&&hvt(p[0].categoryMatches)){let g=p[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===g}}else{let m=Iye(p,(g,y)=>(y!==void 0&&(g[y.tokenTypeIdx]=!0,eB(y.categoryMatches,v=>{g[v]=!0})),g),{});return function(){let g=this.LA(1);return m[g.tokenTypeIdx]===!0}}}return function(){let f=KE.call(this,a,h,Oye,s);return typeof f=="object"?!1:f===0}}};o(GF,"isLL1Sequence");S(GF,"isLL1Sequence");o(RSe,"initATNSimulator");S(RSe,"initATNSimulator");o(KE,"adaptivePredict");S(KE,"adaptivePredict");o(LSe,"performLookahead");S(LSe,"performLookahead");o(MSe,"computeLookaheadTarget");S(MSe,"computeLookaheadTarget");o(NSe,"reportLookaheadAmbiguity");S(NSe,"reportLookaheadAmbiguity");o(ISe,"buildAmbiguityError");S(ISe,"buildAmbiguityError");o(OSe,"getProductionDslName2");S(OSe,"getProductionDslName");o(PSe,"buildAdaptivePredictError");S(PSe,"buildAdaptivePredictError");o(BSe,"getExistingTargetState");S(BSe,"getExistingTargetState");o(FSe,"computeReachSet");S(FSe,"computeReachSet");o($Se,"getReachableTarget");S($Se,"getReachableTarget");o(zSe,"getUniqueAlt");S(zSe,"getUniqueAlt");o(pG,"newDFAState");S(pG,"newDFAState");o(VF,"addDFAEdge");S(VF,"addDFAEdge");o(mG,"addDFAState");S(mG,"addDFAState");o(GSe,"computeStartState");S(GSe,"computeStartState");o(yT,"closure");S(yT,"closure");o(VSe,"getEpsilonTarget");S(VSe,"getEpsilonTarget");o(WSe,"hasConfigInRuleStopState");S(WSe,"hasConfigInRuleStopState");o(qSe,"allConfigsInRuleStopStates");S(qSe,"allConfigsInRuleStopStates");o(USe,"hasConflictTerminatingPrediction");S(USe,"hasConflictTerminatingPrediction");o(HSe,"getConflictingAltSets");S(HSe,"getConflictingAltSets");o(YSe,"hasConflictingAltSet");S(YSe,"hasConflictingAltSet");o(jSe,"hasStateAssociatedWithOneAlt");S(jSe,"hasStateAssociatedWithOneAlt");bT();XSe=class{static{o(this,"CstNodeBuilder")}static{S(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(e){return this.rootNode=new yG(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let t=new GA;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){let r=new I5(e.startOffset,e.image.length,nT(e),e.tokenType,!t);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){let t=e.container;if(t){let r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}addHiddenNodes(e){let t=[];for(let n of e){let a=new I5(n.startOffset,n.image.length,nT(n),n.tokenType,!0);a.root=this.rootNode,t.push(a)}let r=this.current,i=!1;if(r.content.length>0){r.content.push(...t);return}for(;r.container;){let n=r.container.content.indexOf(r);if(n>0){r.container.content.splice(n,0,...t),i=!0;break}r=r.container}i||this.rootNode.content.unshift(...t)}construct(e){let t=this.current;typeof e.$type=="string"&&!e.$infix&&(this.current.astNode=e),e.$cstNode=t;let r=this.nodeStack.pop();r?.content.length===0&&this.removeNode(r)}},gG=class{static{o(this,"AbstractCstNode")}static{S(this,"AbstractCstNode")}get hidden(){return!1}get astNode(){let e=typeof this._astNode?.$type=="string"?this._astNode:this.container?.astNode;if(!e)throw new Error("This node has no associated AST element");return e}set astNode(e){this._astNode=e}get text(){return this.root.fullText.substring(this.offset,this.end)}},I5=class extends gG{static{o(this,"LeafCstNodeImpl")}static{S(this,"LeafCstNodeImpl")}get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,i,n=!1){super(),this._hidden=n,this._offset=e,this._tokenType=i,this._length=t,this._range=r}},GA=class extends gG{static{o(this,"CompositeCstNodeImpl")}static{S(this,"CompositeCstNodeImpl")}constructor(){super(...arguments),this.content=new mvt(this)}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){let{range:r}=e,{range:i}=t;this._rangeCache={start:r.start,end:i.end.line=0;e--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}},mvt=class KSe extends Array{static{o(this,"_CstNodeContainer")}static{S(this,"CstNodeContainer")}constructor(t){super(),this.parent=t,Object.setPrototypeOf(this,KSe.prototype)}push(...t){return this.addParents(t),super.push(...t)}unshift(...t){return this.addParents(t),super.unshift(...t)}splice(t,r,...i){return this.addParents(i),super.splice(t,r,...i)}addParents(t){for(let r of t)r.container=this.parent}},yG=class extends GA{static{o(this,"RootCstNodeImpl")}static{S(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}},O5=Symbol("Datatype");o(ZE,"isDataTypeNode");S(ZE,"isDataTypeNode");Pye="\u200B",ZSe=S(e=>e.endsWith(Pye)?e:e+Pye,"withRuleSuffix"),vG=class{static{o(this,"AbstractLangiumParser")}static{S(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition,r=e.LanguageMetaData.mode==="production";e.shared.profilers.LangiumProfiler?.isActive("parsing")?this.wrapper=new yvt(t,{...e.parser.ParserConfig,skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider},e.shared.profilers.LangiumProfiler.createTask("parsing",e.LanguageMetaData.languageId)):this.wrapper=new t3e(t,{...e.parser.ParserConfig,skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider})}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},QSe=class extends vG{static{o(this,"LangiumParser")}static{S(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new XSe,this.stack=[],this.assignmentMap=new Map,this.operatorPrecedence=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let r=this.computeRuleType(e),i;K1(e)&&(i=e.name,this.registerPrecedenceMap(e));let n=this.wrapper.DEFINE_RULE(ZSe(e.name),this.startImplementation(r,i,t).bind(this));return this.allRules.set(e.name,n),cs(e)&&e.entry&&(this.mainRule=n),n}registerPrecedenceMap(e){let t=e.name,r=new Map;for(let i=0;i0&&(t=this.construct()),t===void 0)throw new Error("No result from parser");if(this.stack.length>0)throw new Error("Parser stack is not empty after parsing");return t}startImplementation(e,t,r){return i=>{let n=!this.isRecording()&&e!==void 0;if(n){let a={$type:e};this.stack.push(a),e===O5?a.value="":t!==void 0&&(a.$infixName=t)}return r(i),n?this.construct():void 0}}extractHiddenTokens(e){let t=this.lexerResult.hidden;if(!t.length)return[];let r=e.startOffset;for(let i=0;ir)return t.splice(0,i);return t.splice(0,t.length)}consume(e,t,r){let i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){let n=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(n);let a=this.nodeBuilder.buildLeafNode(i,r),{assignment:s,crossRef:l}=this.getAssignment(r),u=this.current;if(s){let h=ch(r)?i.image:this.converter.convert(i.image,a);this.assign(s.operator,s.feature,h,a,l)}else if(ZE(u)){let h=i.image;ch(r)||(h=this.converter.convert(h,a).toString()),u.value+=h}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,r,i,n){let a;!this.isRecording()&&!r&&(a=this.nodeBuilder.buildCompositeNode(i));let s;try{s=this.wrapper.wrapSubrule(e,t,n)}finally{this.isRecording()||(s===void 0&&!r&&(s=this.construct()),s!==void 0&&a&&a.length>0&&this.performSubruleAssignment(s,i,a))}}performSubruleAssignment(e,t,r){let{assignment:i,crossRef:n}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,r,n);else if(!i){let a=this.current;if(ZE(a))a.value+=e.toString();else if(typeof e=="object"&&e){let l=this.assignWithoutOverride(e,a);this.stack.pop(),this.stack.push(l)}}}action(e,t){if(!this.isRecording()){let r=this.current;if(t.feature&&t.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(r.$cstNode);let n={$type:e};this.stack.push(n),this.assign(t.operator,t.feature,r,r.$cstNode)}else r.$type=e}}construct(){if(this.isRecording())return;let e=this.stack.pop();return this.nodeBuilder.construct(e),"$infixName"in e?this.constructInfix(e,this.operatorPrecedence.get(e.$infixName)):ZE(e)?this.converter.convert(e.value,e.$cstNode):(g$(this.astReflection,e),e)}constructInfix(e,t){let r=e.parts;if(!Array.isArray(r)||r.length===0)return;let i=e.operators;if(!Array.isArray(i)||r.length<2)return r[0];let n=0,a=-1;for(let g=0;ga?(a=v.precedence,n=g):v.precedence===a&&(v.rightAssoc||(n=g))}let s=i.slice(0,n),l=i.slice(n+1),u=r.slice(0,n+1),h=r.slice(n+1),d={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:u,operators:s},f={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:h,operators:l},p=this.constructInfix(d,t),m=this.constructInfix(f,t);return{$type:e.$type,$cstNode:e.$cstNode,left:p,operator:i[n],right:m}}getAssignment(e){if(!this.assignmentMap.has(e)){let t=U0(e,lh);this.assignmentMap.set(e,{assignment:t,crossRef:t&&Y0(t.terminal)?t.terminal.isMulti?"multi":"single":void 0})}return this.assignmentMap.get(e)}assign(e,t,r,i,n){let a=this.current,s;switch(n==="single"&&typeof r=="string"?s=this.linker.buildReference(a,t,i,r):n==="multi"&&typeof r=="string"?s=this.linker.buildMultiReference(a,t,i,r):s=r,e){case"=":{a[t]=s;break}case"?=":{a[t]=!0;break}case"+=":Array.isArray(a[t])||(a[t]=[]),a[t].push(s)}}assignWithoutOverride(e,t){for(let[i,n]of Object.entries(t)){let a=e[i];a===void 0?e[i]=n:Array.isArray(a)&&Array.isArray(n)&&(n.push(...a),e[i]=n)}let r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},JSe=class{static{o(this,"AbstractParserErrorMessageProvider")}static{S(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return z1.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return z1.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return z1.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return z1.buildEarlyExitMessage(e)}},xG=class extends JSe{static{o(this,"LangiumParserErrorMessageProvider")}static{S(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:t}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},e3e=class extends vG{static{o(this,"LangiumCompletionParser")}static{S(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){let r=this.wrapper.DEFINE_RULE(ZSe(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,i,n){this.before(i),this.wrapper.wrapSubrule(e,t,n),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}},gvt={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new xG},t3e=class extends emt{static{o(this,"ChevrotainWrapper")}static{S(this,"ChevrotainWrapper")}constructor(e,t){let r=t&&"maxLookahead"in t;super(e,{...gvt,lookaheadStrategy:r?new jz({maxLookahead:t.maxLookahead}):new pvt({logging:t.skipValidations?()=>{}:void 0}),...t})}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t,r){return this.RULE(e,t,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t,void 0)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}rule(e){return e.call(this,{})}},yvt=class extends t3e{static{o(this,"ProfilerWrapper")}static{S(this,"ProfilerWrapper")}constructor(e,t,r){super(e,t),this.task=r}rule(e){this.task.start(),this.task.startSubTask(this.ruleName(e));try{return super.rule(e)}finally{this.task.stopSubTask(this.ruleName(e)),this.task.stop()}}ruleName(e){return e.ruleName}subrule(e,t,r){this.task.startSubTask(this.ruleName(t));try{return super.subrule(e,t,r)}finally{this.task.stopSubTask(this.ruleName(t))}}};o(VA,"createParser");S(VA,"createParser");o(r3e,"buildRules");S(r3e,"buildRules");o(i3e,"buildInfixRule");S(i3e,"buildInfixRule");o(vf,"buildElement");S(vf,"buildElement");o(n3e,"buildAction");S(n3e,"buildAction");o(a3e,"buildRuleCall");S(a3e,"buildRuleCall");o(s3e,"buildRuleCallPredicate");S(s3e,"buildRuleCallPredicate");o(Vl,"buildPredicate");S(Vl,"buildPredicate");o(o3e,"buildAlternatives");S(o3e,"buildAlternatives");o(l3e,"buildUnorderedGroup");S(l3e,"buildUnorderedGroup");o(c3e,"buildGroup");S(c3e,"buildGroup");o(vT,"getGuardCondition");S(vT,"getGuardCondition");o(bG,"buildCrossReference");S(bG,"buildCrossReference");o(u3e,"buildKeyword");S(u3e,"buildKeyword");o(TG,"wrap");S(TG,"wrap");o(WA,"getRule");S(WA,"getRule");o(h3e,"getRuleName");S(h3e,"getRuleName");o(P5,"getToken");S(P5,"getToken");o(CG,"createCompletionParser");S(CG,"createCompletionParser");o(kG,"createLangiumParser");S(kG,"createLangiumParser");o(wG,"prepareLangiumParser");S(wG,"prepareLangiumParser");qA=class{static{o(this,"DefaultTokenBuilder")}static{S(this,"DefaultTokenBuilder")}constructor(){this.diagnostics=[]}buildTokens(e,t){let r=gi(iA(e,!1)),i=this.buildTerminalTokens(r),n=this.buildKeywordTokens(r,i,t);return n.push(...i),n}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(rl).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){let t=ET(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:r};return typeof r=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=rA(t)?ls.SKIPPED:"hidden"),i}requiresCustomPattern(e){return!!(e.flags.includes("u")||e.flags.includes("s"))}regexPatternFunction(e){let t=new RegExp(e,e.flags+"y");return(r,i)=>(t.lastIndex=i,t.exec(r))}buildKeywordTokens(e,t,r){return e.filter(H0).flatMap(i=>yh(i).filter(ch)).distinct(i=>i.value).toArray().sort((i,n)=>n.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!r?.caseInsensitive))}buildKeywordToken(e,t,r){let i=this.buildKeywordPattern(e,r),n={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,t)};return typeof i=="function"&&(n.LINE_BREAKS=!0),n}buildKeywordPattern(e,t){return t?new RegExp(sy(e.value),"i"):e.value}findLongerAlt(e,t){return t.reduce((r,i)=>{let n=i?.PATTERN;return n?.source&&X$("^"+n.source+"$",e.value)&&r.push(i),r},[])}},SG=class{static{o(this,"DefaultValueConverter")}static{S(this,"DefaultValueConverter")}convert(e,t){let r=t.grammarSource;if(Y0(r)&&(r=ez(r)),uh(r)){let i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,t)}return e}runConverter(e,t,r){switch(e.name.toUpperCase()){case"INT":return jc.convertInt(t);case"STRING":return jc.convertString(t);case"ID":return jc.convertID(t)}switch(cz(e)?.toLowerCase()){case"number":return jc.convertNumber(t);case"boolean":return jc.convertBoolean(t);case"bigint":return jc.convertBigint(t);case"date":return jc.convertDate(t);default:return t}}};(function(e){function t(h){let d="";for(let f=1;f{this.resolve=r=>(e(r),this),this.reject=r=>(t(r),this)})}},Bye=class WF{static{o(this,"_FullTextDocument")}static{S(this,"FullTextDocument")}constructor(t,r,i,n){this._uri=t,this._languageId=r,this._version=i,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let r=this.offsetAt(t.start),i=this.offsetAt(t.end);return this._content.substring(r,i)}return this._content}update(t,r){for(let i of t)if(WF.isIncremental(i)){let n=_G(i.range),a=this.offsetAt(n.start),s=this.offsetAt(n.end);this._content=this._content.substring(0,a)+i.text+this._content.substring(s,this._content.length);let l=Math.max(n.start.line,0),u=Math.max(n.end.line,0),h=this._lineOffsets,d=qF(i.text,!1,a);if(u-l===d.length)for(let p=0,m=d.length;pt?n=s:i=s+1}let a=i-1;return t=this.ensureBeforeEOL(t,r[a]),{line:a,character:t-r[a]}}offsetAt(t){let r=this.getLineOffsets();if(t.line>=r.length)return this._content.length;if(t.line<0)return 0;let i=r[t.line];if(t.character<=0)return i;let n=t.line+1r&&AG(this._content.charCodeAt(t-1));)t--;return t}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let r=t;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(t){let r=t;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(e){function t(n,a,s,l){return new Bye(n,a,s,l)}o(t,"create"),S(t,"create"),e.create=t;function r(n,a,s){if(n instanceof Bye)return n.update(a,s),n;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),S(r,"update"),e.update=r;function i(n,a){let s=n.getText(),l=F5(a.map(f3e),(d,f)=>{let p=d.range.start.line-f.range.start.line;return p===0?d.range.start.character-f.range.start.character:p}),u=0,h=[];for(let d of l){let f=n.offsetAt(d.range.start);if(fu&&h.push(s.substring(u,f)),d.newText.length&&h.push(d.newText),u=n.offsetAt(d.range.end)}return h.push(s.substr(u)),h.join("")}o(i,"applyEdits"),S(i,"applyEdits"),e.applyEdits=i})(B5||(B5={}));o(F5,"mergeSort");S(F5,"mergeSort");o(qF,"computeLineOffsets");S(qF,"computeLineOffsets");o(AG,"isEOL");S(AG,"isEOL");o(_G,"getWellformedRange");S(_G,"getWellformedRange");o(f3e,"getWellformedEdit");S(f3e,"getWellformedEdit");(()=>{"use strict";var e={975:I=>{function D(M){if(typeof M!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(M))}o(D,"e2"),S(D,"e");function _(M,L){for(var B,O="",$=0,G=-1,F=0,V=0;V<=M.length;++V){if(V2){var H=O.lastIndexOf("/");if(H!==O.length-1){H===-1?(O="",$=0):$=(O=O.slice(0,H)).length-1-O.lastIndexOf("/"),G=V,F=0;continue}}else if(O.length===2||O.length===1){O="",$=0,G=V,F=0;continue}}L&&(O.length>0?O+="/..":O="..",$=2)}else O.length>0?O+="/"+M.slice(G+1,V):O=M.slice(G+1,V),$=V-G-1;G=V,F=0}else B===46&&F!==-1?++F:F=-1}return O}o(_,"r2"),S(_,"r");var R={resolve:S(function(){for(var M,L="",B=!1,O=arguments.length-1;O>=-1&&!B;O--){var $;O>=0?$=arguments[O]:(M===void 0&&(M=process.cwd()),$=M),D($),$.length!==0&&(L=$+"/"+L,B=$.charCodeAt(0)===47)}return L=_(L,!B),B?L.length>0?"/"+L:"/":L.length>0?L:"."},"resolve"),normalize:S(function(M){if(D(M),M.length===0)return".";var L=M.charCodeAt(0)===47,B=M.charCodeAt(M.length-1)===47;return(M=_(M,!L)).length!==0||L||(M="."),M.length>0&&B&&(M+="/"),L?"/"+M:M},"normalize"),isAbsolute:S(function(M){return D(M),M.length>0&&M.charCodeAt(0)===47},"isAbsolute"),join:S(function(){if(arguments.length===0)return".";for(var M,L=0;L0&&(M===void 0?M=B:M+="/"+B)}return M===void 0?".":R.normalize(M)},"join"),relative:S(function(M,L){if(D(M),D(L),M===L||(M=R.resolve(M))===(L=R.resolve(L)))return"";for(var B=1;BV){if(L.charCodeAt(G+j)===47)return L.slice(G+j+1);if(j===0)return L.slice(G+j)}else $>V&&(M.charCodeAt(B+j)===47?H=j:j===0&&(H=0));break}var U=M.charCodeAt(B+j);if(U!==L.charCodeAt(G+j))break;U===47&&(H=j)}var Q="";for(j=B+H+1;j<=O;++j)j!==O&&M.charCodeAt(j)!==47||(Q.length===0?Q+="..":Q+="/..");return Q.length>0?Q+L.slice(G+H):(G+=H,L.charCodeAt(G)===47&&++G,L.slice(G))},"relative"),_makeLong:S(function(M){return M},"_makeLong"),dirname:S(function(M){if(D(M),M.length===0)return".";for(var L=M.charCodeAt(0),B=L===47,O=-1,$=!0,G=M.length-1;G>=1;--G)if((L=M.charCodeAt(G))===47){if(!$){O=G;break}}else $=!1;return O===-1?B?"/":".":B&&O===1?"//":M.slice(0,O)},"dirname"),basename:S(function(M,L){if(L!==void 0&&typeof L!="string")throw new TypeError('"ext" argument must be a string');D(M);var B,O=0,$=-1,G=!0;if(L!==void 0&&L.length>0&&L.length<=M.length){if(L.length===M.length&&L===M)return"";var F=L.length-1,V=-1;for(B=M.length-1;B>=0;--B){var H=M.charCodeAt(B);if(H===47){if(!G){O=B+1;break}}else V===-1&&(G=!1,V=B+1),F>=0&&(H===L.charCodeAt(F)?--F==-1&&($=B):(F=-1,$=V))}return O===$?$=V:$===-1&&($=M.length),M.slice(O,$)}for(B=M.length-1;B>=0;--B)if(M.charCodeAt(B)===47){if(!G){O=B+1;break}}else $===-1&&(G=!1,$=B+1);return $===-1?"":M.slice(O,$)},"basename"),extname:S(function(M){D(M);for(var L=-1,B=0,O=-1,$=!0,G=0,F=M.length-1;F>=0;--F){var V=M.charCodeAt(F);if(V!==47)O===-1&&($=!1,O=F+1),V===46?L===-1?L=F:G!==1&&(G=1):L!==-1&&(G=-1);else if(!$){B=F+1;break}}return L===-1||O===-1||G===0||G===1&&L===O-1&&L===B+1?"":M.slice(L,O)},"extname"),format:S(function(M){if(M===null||typeof M!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof M);return(function(L,B){var O=B.dir||B.root,$=B.base||(B.name||"")+(B.ext||"");return O?O===B.root?O+$:O+"/"+$:$})(0,M)},"format"),parse:S(function(M){D(M);var L={root:"",dir:"",base:"",ext:"",name:""};if(M.length===0)return L;var B,O=M.charCodeAt(0),$=O===47;$?(L.root="/",B=1):B=0;for(var G=-1,F=0,V=-1,H=!0,j=M.length-1,U=0;j>=B;--j)if((O=M.charCodeAt(j))!==47)V===-1&&(H=!1,V=j+1),O===46?G===-1?G=j:U!==1&&(U=1):G!==-1&&(U=-1);else if(!H){F=j+1;break}return G===-1||V===-1||U===0||U===1&&G===V-1&&G===F+1?V!==-1&&(L.base=L.name=F===0&&$?M.slice(1,V):M.slice(F,V)):(F===0&&$?(L.name=M.slice(1,G),L.base=M.slice(1,V)):(L.name=M.slice(F,G),L.base=M.slice(F,V)),L.ext=M.slice(G,V)),F>0?L.dir=M.slice(0,F-1):$&&(L.dir="/"),L},"parse"),sep:"/",delimiter:":",win32:null,posix:null};R.posix=R,I.exports=R}},t={};function r(I){var D=t[I];if(D!==void 0)return D.exports;var _=t[I]={exports:{}};return e[I](_,_.exports,r),_.exports}o(r,"r"),S(r,"r"),r.d=(I,D)=>{for(var _ in D)r.o(D,_)&&!r.o(I,_)&&Object.defineProperty(I,_,{enumerable:!0,get:D[_]})},r.o=(I,D)=>Object.prototype.hasOwnProperty.call(I,D),r.r=I=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(I,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(I,"__esModule",{value:!0})};var i={};let n;r.r(i),r.d(i,{URI:S(()=>p,"URI"),Utils:S(()=>P,"Utils")}),typeof process=="object"?n=process.platform==="win32":typeof navigator=="object"&&(n=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(I,D){if(!I.scheme&&D)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${I.authority}", path: "${I.path}", query: "${I.query}", fragment: "${I.fragment}"}`);if(I.scheme&&!a.test(I.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(I.path){if(I.authority){if(!s.test(I.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(I.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"a"),S(u,"a");let h="",d="/",f=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"l")}static{S(this,"l")}static isUri(D){return D instanceof p||!!D&&typeof D.authority=="string"&&typeof D.fragment=="string"&&typeof D.path=="string"&&typeof D.query=="string"&&typeof D.scheme=="string"&&typeof D.fsPath=="string"&&typeof D.with=="function"&&typeof D.toString=="function"}scheme;authority;path;query;fragment;constructor(D,_,R,M,L,B=!1){typeof D=="object"?(this.scheme=D.scheme||h,this.authority=D.authority||h,this.path=D.path||h,this.query=D.query||h,this.fragment=D.fragment||h):(this.scheme=(function(O,$){return O||$?O:"file"})(D,B),this.authority=_||h,this.path=(function(O,$){switch(O){case"https":case"http":case"file":$?$[0]!==d&&($=d+$):$=d}return $})(this.scheme,R||h),this.query=M||h,this.fragment=L||h,u(this,B))}get fsPath(){return b(this,!1)}with(D){if(!D)return this;let{scheme:_,authority:R,path:M,query:L,fragment:B}=D;return _===void 0?_=this.scheme:_===null&&(_=h),R===void 0?R=this.authority:R===null&&(R=h),M===void 0?M=this.path:M===null&&(M=h),L===void 0?L=this.query:L===null&&(L=h),B===void 0?B=this.fragment:B===null&&(B=h),_===this.scheme&&R===this.authority&&M===this.path&&L===this.query&&B===this.fragment?this:new g(_,R,M,L,B)}static parse(D,_=!1){let R=f.exec(D);return R?new g(R[2]||h,k(R[4]||h),k(R[5]||h),k(R[7]||h),k(R[9]||h),_):new g(h,h,h,h,h)}static file(D){let _=h;if(n&&(D=D.replace(/\\/g,d)),D[0]===d&&D[1]===d){let R=D.indexOf(d,2);R===-1?(_=D.substring(2),D=d):(_=D.substring(2,R),D=D.substring(R)||d)}return new g("file",_,D,h,h)}static from(D){let _=new g(D.scheme,D.authority,D.path,D.query,D.fragment);return u(_,!0),_}toString(D=!1){return T(this,D)}toJSON(){return this}static revive(D){if(D){if(D instanceof p)return D;{let _=new g(D);return _._formatted=D.external,_._fsPath=D._sep===m?D.fsPath:null,_}}return D}}let m=n?1:void 0;class g extends p{static{o(this,"d")}static{S(this,"d")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(D=!1){return D?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let D={$mid:1};return this._fsPath&&(D.fsPath=this._fsPath,D._sep=m),this._formatted&&(D.external=this._formatted),this.path&&(D.path=this.path),this.scheme&&(D.scheme=this.scheme),this.authority&&(D.authority=this.authority),this.query&&(D.query=this.query),this.fragment&&(D.fragment=this.fragment),D}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(I,D,_){let R,M=-1;for(let L=0;L=97&&B<=122||B>=65&&B<=90||B>=48&&B<=57||B===45||B===46||B===95||B===126||D&&B===47||_&&B===91||_&&B===93||_&&B===58)M!==-1&&(R+=encodeURIComponent(I.substring(M,L)),M=-1),R!==void 0&&(R+=I.charAt(L));else{R===void 0&&(R=I.substr(0,L));let O=y[B];O!==void 0?(M!==-1&&(R+=encodeURIComponent(I.substring(M,L)),M=-1),R+=O):M===-1&&(M=L)}}return M!==-1&&(R+=encodeURIComponent(I.substring(M))),R!==void 0?R:I}o(v,"m"),S(v,"m");function x(I){let D;for(let _=0;_1&&I.scheme==="file"?`//${I.authority}${I.path}`:I.path.charCodeAt(0)===47&&(I.path.charCodeAt(1)>=65&&I.path.charCodeAt(1)<=90||I.path.charCodeAt(1)>=97&&I.path.charCodeAt(1)<=122)&&I.path.charCodeAt(2)===58?D?I.path.substr(1):I.path[1].toLowerCase()+I.path.substr(2):I.path,n&&(_=_.replace(/\//g,"\\")),_}o(b,"v"),S(b,"v");function T(I,D){let _=D?x:v,R="",{scheme:M,authority:L,path:B,query:O,fragment:$}=I;if(M&&(R+=M,R+=":"),(L||M==="file")&&(R+=d,R+=d),L){let G=L.indexOf("@");if(G!==-1){let F=L.substr(0,G);L=L.substr(G+1),G=F.lastIndexOf(":"),G===-1?R+=_(F,!1,!1):(R+=_(F.substr(0,G),!1,!1),R+=":",R+=_(F.substr(G+1),!1,!0)),R+="@"}L=L.toLowerCase(),G=L.lastIndexOf(":"),G===-1?R+=_(L,!1,!0):(R+=_(L.substr(0,G),!1,!0),R+=L.substr(G))}if(B){if(B.length>=3&&B.charCodeAt(0)===47&&B.charCodeAt(2)===58){let G=B.charCodeAt(1);G>=65&&G<=90&&(B=`/${String.fromCharCode(G+32)}:${B.substr(3)}`)}else if(B.length>=2&&B.charCodeAt(1)===58){let G=B.charCodeAt(0);G>=65&&G<=90&&(B=`${String.fromCharCode(G+32)}:${B.substr(2)}`)}R+=_(B,!0,!1)}return O&&(R+="?",R+=_(O,!1,!1)),$&&(R+="#",R+=D?$:v($,!1,!1)),R}o(T,"b"),S(T,"b");function w(I){try{return decodeURIComponent(I)}catch{return I.length>3?I.substr(0,3)+w(I.substr(3)):I}}o(w,"C"),S(w,"C");let C=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function k(I){return I.match(C)?I.replace(C,(D=>w(D))):I}o(k,"w"),S(k,"w");var E=r(975);let A=E.posix||E,N="/";var P;(function(I){I.joinPath=function(D,..._){return D.with({path:A.join(D.path,..._)})},I.resolvePath=function(D,..._){let R=D.path,M=!1;R[0]!==N&&(R=N+R,M=!0);let L=A.resolve(R,..._);return M&&L[0]===N&&!D.authority&&(L=L.substring(1)),D.with({path:L})},I.dirname=function(D){if(D.path.length===0||D.path===N)return D;let _=A.dirname(D.path);return _.length===1&&_.charCodeAt(0)===46&&(_=""),D.with({path:_})},I.basename=function(D){return A.basename(D.path)},I.extname=function(D){return A.extname(D.path)}})(P||(P={})),p3e=i})();({URI:fo,Utils:T2}=p3e);(function(e){e.basename=T2.basename,e.dirname=T2.dirname,e.extname=T2.extname,e.joinPath=T2.joinPath,e.resolvePath=T2.resolvePath;let t=typeof process=="object"&&process?.platform==="win32";function r(s,l){return s?.toString()===l?.toString()}o(r,"equals"),S(r,"equals"),e.equals=r;function i(s,l){let u=typeof s=="string"?fo.parse(s).path:s.path,h=typeof l=="string"?fo.parse(l).path:l.path,d=u.split("/").filter(y=>y.length>0),f=h.split("/").filter(y=>y.length>0);if(t){let y=/^[A-Z]:$/;if(d[0]&&y.test(d[0])&&(d[0]=d[0].toLowerCase()),f[0]&&y.test(f[0])&&(f[0]=f[0].toLowerCase()),d[0]!==f[0])return h.substring(1)}let p=0;for(;p({name:i.name,uri:os.joinPath(fo.parse(t),i.name).toString(),element:i.element})):[]}all(){return this.collectValues(this.root)}findAll(e){let t=this.getNode(os.normalize(e),!1);return t?this.collectValues(t):[]}getNode(e,t){let r=e.split("/");e.charAt(e.length-1)==="/"&&r.pop();let i=this.root;for(let n of r){let a=i.children.get(n);if(!a)if(t)a={name:n,children:new Map,parent:i},i.children.set(n,a);else return;i=a}return i}collectValues(e){let t=[];e.element&&t.push(e.element);for(let r of e.children.values())t.push(...this.collectValues(r));return t}};(function(e){e[e.Changed=0]="Changed",e[e.Parsed=1]="Parsed",e[e.IndexedContent=2]="IndexedContent",e[e.ComputedScopes=3]="ComputedScopes",e[e.Linked=4]="Linked",e[e.IndexedReferences=5]="IndexedReferences",e[e.Validated=6]="Validated"})(zr||(zr={}));m3e=class{static{o(this,"DefaultLangiumDocumentFactory")}static{S(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=Ii.CancellationToken.None){let r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return t=t??fo.parse(e.uri),Ii.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromString(e,t,r){return Ii.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,r){if(typeof t=="string"){let i=this.parse(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}else if("$model"in t){let i={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{let i=this.parse(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}async createAsync(e,t,r){if(typeof t=="string"){let i=await this.parseAsync(e,t,r);return this.createLangiumDocument(i,e,void 0,t)}else{let i=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(i,e,t)}}createLangiumDocument(e,t,r,i){let n;if(r)n={parseResult:e,uri:t,state:zr.Parsed,references:[],textDocument:r};else{let a=this.createTextDocumentGetter(t,i);n={parseResult:e,uri:t,state:zr.Parsed,references:[],get textDocument(){return a()}}}return e.value.$document=n,n}async update(e,t){let r=e.parseResult.value.$cstNode?.root.fullText,i=this.textDocuments?.get(e.uri.toString()),n=i?i.getText():await this.fileSystemProvider.readFile(e.uri);if(i)Object.defineProperty(e,"textDocument",{value:i});else{let a=this.createTextDocumentGetter(e.uri,n);Object.defineProperty(e,"textDocument",{get:a})}return r!==n&&(e.parseResult=await this.parseAsync(e.uri,n,t),e.parseResult.value.$document=e),e.state=zr.Parsed,e}parse(e,t,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,r)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){let r=this.serviceRegistry,i;return()=>i??(i=B5.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,t??""))}},g3e=class{static{o(this,"DefaultLangiumDocuments")}static{S(this,"DefaultLangiumDocuments")}constructor(e){this.documentTrie=new DG,this.services=e,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.documentBuilder=()=>e.workspace.DocumentBuilder}get all(){return gi(this.documentTrie.all())}addDocument(e){let t=e.uri.toString();if(this.documentTrie.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentTrie.insert(t,e)}getDocument(e){let t=e.toString();return this.documentTrie.find(t)}getDocuments(e){let t=e.toString();return this.documentTrie.findAll(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r),r)}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentTrie.has(e.toString())}invalidateDocument(e){let t=e.toString(),r=this.documentTrie.find(t);return r&&this.documentBuilder().resetToState(r,zr.Changed),r}deleteDocument(e){let t=e.toString(),r=this.documentTrie.find(t);return r&&(r.state=zr.Changed,this.documentTrie.delete(t)),r}deleteDocuments(e){let t=e.toString(),r=this.documentTrie.findAll(t);for(let i of r)i.state=zr.Changed;return this.documentTrie.delete(t),r}},f0=Symbol("RefResolving"),y3e=class{static{o(this,"DefaultLinker")}static{S(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async link(e,t=Ii.CancellationToken.None){if(this.profiler?.isActive("linking")){let r=this.profiler.createTask("linking",this.languageId);r.start();try{for(let i of ql(e.parseResult.value))await la(t),X1(i).forEach(n=>{let a=`${i.$type}:${n.property}`;r.startSubTask(a);try{this.doLink(n,e)}finally{r.stopSubTask(a)}})}finally{r.stop()}}else for(let r of ql(e.parseResult.value))await la(t),X1(r).forEach(i=>this.doLink(i,e))}doLink(e,t){let r=e.reference;if("_ref"in r&&r._ref===void 0){r._ref=f0;try{let i=this.getCandidate(e);if(g0(i))r._ref=i;else{r._nodeDescription=i;let n=this.loadAstNode(i);r._ref=n??this.createLinkingError(e,i)}}catch(i){console.error(`An error occurred while resolving reference to '${r.$refText}':`,i);let n=i.message??String(i);r._ref={info:e,message:`An error occurred while resolving reference to '${r.$refText}': ${n}`}}t.references.push(r)}else if("_items"in r&&r._items===void 0){r._items=f0;try{let i=this.getCandidates(e),n=[];if(g0(i))r._linkingError=i;else for(let a of i){let s=this.loadAstNode(a);s&&n.push({ref:s,$nodeDescription:a})}r._items=n}catch(i){r._linkingError={info:e,message:`An error occurred while resolving reference to '${r.$refText}': ${i}`},r._items=[]}t.references.push(r)}}unlink(e){for(let t of e.references)"_ref"in t?(t._ref=void 0,delete t._nodeDescription):"_items"in t&&(t._items=void 0,delete t._linkingError);e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}getCandidates(e){let r=this.scopeProvider.getScope(e).getElements(e.reference.$refText).distinct(i=>`${i.documentUri}#${i.path}`).toArray();return r.length>0?r:this.createLinkingError(e)}buildReference(e,t,r,i){let n=this,a={$refNode:r,$refText:i,_ref:void 0,get ref(){if(Rn(this._ref))return this._ref;if(f$(this._nodeDescription)){let s=n.loadAstNode(this._nodeDescription);this._ref=s??n.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){this._ref=f0;let s=V1(e).$document,l=n.getLinkedNode({reference:a,container:e,property:t});if(l.error&&s&&s.state0))return this._linkingError=n.createLinkingError({reference:a,container:e,property:t})}};return a}throwCyclicReferenceError(e,t,r){throw new Error(`Cyclic reference resolution detected: ${this.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${r}')`)}getLinkedNode(e){try{let t=this.getCandidate(e);if(g0(t))return{error:t};let r=this.loadAstNode(t);return r?{node:r,descr:t}:{descr:t,error:this.createLinkingError(e,t)}}catch(t){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,t);let r=t.message??String(t);return{error:{info:e,message:`An error occurred while resolving reference to '${e.reference.$refText}': ${r}`}}}}loadAstNode(e){if(e.node)return e.node;let t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){let r=V1(e.container).$document;r&&r.stateY0(t)&&t.isMulti)}findDeclarations(e){if(e){let t=nz(e),r=e.astNode;if(t&&r){let i=r[t.feature];if(ss(i)||Qc(i))return r5(i);if(Array.isArray(i)){for(let n of i)if((ss(n)||Qc(n))&&n.$refNode&&n.$refNode.offset<=e.offset&&n.$refNode.end>=e.end)return r5(n)}}if(r){let i=this.nameProvider.getNameNode(r);if(i&&(i===e||B$(e,i)))return this.getSelfNodes(r)}}return[]}getSelfNodes(e){if(this.hasMultiReference){let t=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e)),r=this.getNodeFromReferenceDescription(t.head());if(r){for(let i of X1(r))if(Qc(i.reference)&&i.reference.items.some(n=>n.ref===e))return i.reference.items.map(n=>n.ref)}return[e]}else return[e]}getNodeFromReferenceDescription(e){if(!e)return;let t=this.documents.getDocument(e.sourceUri);if(t)return this.nodeLocator.getAstNode(t.parseResult.value,e.sourcePath)}findDeclarationNodes(e){let t=this.findDeclarations(e),r=[];for(let i of t){let n=this.nameProvider.getNameNode(i)??i.$cstNode;n&&r.push(n)}return r}findReferences(e,t){let r=[];t.includeDeclaration&&r.push(...this.getSelfReferences(e));let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(n=>os.equals(n.sourceUri,t.documentUri))),r.push(...i),gi(r)}getSelfReferences(e){let t=this.getSelfNodes(e),r=[];for(let i of t){let n=this.nameProvider.getNameNode(i);if(n){let a=Wl(i),s=this.nodeLocator.getAstNodePath(i);r.push({sourceUri:a.uri,sourcePath:s,targetUri:a.uri,targetPath:s,segment:Q1(n),local:!0})}}return r}},gh=class{static{o(this,"MultiMap")}static{S(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[t,r]of e)this.add(t,r)}get size(){return iT.sum(gi(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{let r=this.map.get(e);if(r){let i=r.indexOf(t);if(i>=0)return r.length===1?this.map.delete(e):r.splice(i,1),!0}return!1}}get(e){return this.map.get(e)??[]}getStream(e){let t=this.map.get(e);return t?gi(t):H1}has(e,t){if(t===void 0)return this.map.has(e);{let r=this.map.get(e);return r?r.indexOf(t)>=0:!1}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return gi(this.map.entries()).flatMap(([e,t])=>t.map(r=>[e,r]))}keys(){return gi(this.map.keys())}values(){return gi(this.map.values()).flat()}entriesGroupedByKey(){return gi(this.map.entries())}},$5=class{static{o(this,"BiMap")}static{S(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}},b3e=class{static{o(this,"DefaultScopeComputation")}static{S(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async collectExportedSymbols(e,t=Ii.CancellationToken.None){return this.collectExportedSymbolsForNode(e.parseResult.value,e,void 0,t)}async collectExportedSymbolsForNode(e,t,r=CT,i=Ii.CancellationToken.None){let n=[];this.addExportedSymbol(e,n,t);for(let a of r(e))await la(i),this.addExportedSymbol(a,n,t);return n}addExportedSymbol(e,t,r){let i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,r))}async collectLocalSymbols(e,t=Ii.CancellationToken.None){let r=e.parseResult.value,i=new gh;for(let n of yh(r))await la(t),this.addLocalSymbol(n,e,i);return i}addLocalSymbol(e,t,r){let i=e.$container;if(i){let n=this.nameProvider.getName(e);n&&r.add(i,this.descriptions.createDescription(e,n,t))}}},UF=class{static{o(this,"StreamScope")}static{S(this,"StreamScope")}constructor(e,t,r){this.elements=e,this.outerScope=t,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.caseInsensitive?this.elements.find(i=>i.name.toLowerCase()===t):this.elements.find(i=>i.name===e);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.caseInsensitive?this.elements.filter(i=>i.name.toLowerCase()===t):this.elements.filter(i=>i.name===e);return(this.concatOuterScope||r.isEmpty())&&this.outerScope?r.concat(this.outerScope.getElements(e)):r}},vvt=class{static{o(this,"MapScope")}static{S(this,"MapScope")}constructor(e,t,r){this.elements=new Map,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0;for(let i of e){let n=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.set(n,i)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t),i=r?[r]:[];return(this.concatOuterScope||i.length>0)&&this.outerScope?gi(i).concat(this.outerScope.getElements(e)):gi(i)}getAllElements(){let e=gi(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},T3e=class{static{o(this,"MultiMapScope")}static{S(this,"MultiMapScope")}constructor(e,t,r){this.elements=new gh,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0;for(let i of e){let n=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.add(n,i)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t)[0];if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);return(this.concatOuterScope||r.length===0)&&this.outerScope?gi(r).concat(this.outerScope.getElements(e)):gi(r)}getAllElements(){let e=gi(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},xvt={getElement(){},getElements(){return H1},getAllElements(){return H1}},YA=class{static{o(this,"DisposableCache")}static{S(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},LG=class extends YA{static{o(this,"SimpleCache")}static{S(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){let r=t();return this.cache.set(e,r),r}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},jA=class extends YA{static{o(this,"ContextCache")}static{S(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(t=>t)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(r){let n=r();return i.set(t,n),n}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}},C3e=class extends jA{static{o(this,"DocumentCache")}static{S(this,"DocumentCache")}constructor(e,t){super(r=>r.toString()),t?(this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(t,r=>{this.clear(r.uri.toString())})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((r,i)=>{for(let n of i)this.clear(n)}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((r,i)=>{let n=r.concat(i);for(let a of n)this.clear(a)}))}},MG=class extends LG{static{o(this,"WorkspaceCache")}static{S(this,"WorkspaceCache")}constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}},k3e=class{static{o(this,"DefaultScopeProvider")}static{S(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new MG(e.shared)}getScope(e){let t=[],r=this.reflection.getReferenceType(e),i=Wl(e.container).localSymbols;if(i){let a=e.container;do i.has(a)&&t.push(i.getStream(a).filter(s=>this.reflection.isSubtype(s.type,r))),a=a.$container;while(a)}let n=this.getGlobalScope(r,e);for(let a=t.length-1;a>=0;a--)n=this.createScope(t[a],n);return n}createScope(e,t,r){return new UF(gi(e),t,r)}createScopeForNodes(e,t,r){let i=gi(e).map(n=>{let a=this.nameProvider.getName(n);if(a)return this.descriptions.createDescription(n,a)}).nonNullable();return new UF(i,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new T3e(this.indexManager.allElements(e)))}};o(NG,"isAstNodeWithComment");S(NG,"isAstNodeWithComment");o(HF,"isIntermediateReference");S(HF,"isIntermediateReference");w3e=class{static{o(this,"DefaultJsonSerializer")}static{S(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){let r=t??{},i=t?.replacer,n=S((s,l)=>this.replacer(s,l,r),"defaultReplacer"),a=i?(s,l)=>i(s,l,n):n;try{return this.currentDocument=Wl(e),JSON.stringify(e,a,t?.space)}finally{this.currentDocument=void 0}}deserialize(e,t){let r=t??{},i=JSON.parse(e);return this.linkNode(i,i,r),i}replacer(e,t,{refText:r,sourceText:i,textRegions:n,comments:a,uriConverter:s}){if(!this.ignoreProperties.has(e))if(ss(t)){let l=t.ref,u=r?t.$refText:void 0;if(l){let h=Wl(l),d="";this.currentDocument&&this.currentDocument!==h&&(s?d=s(h.uri,l):d=h.uri.toString());let f=this.astNodeLocator.getAstNodePath(l);return{$ref:`${d}#${f}`,$refText:u}}else return{$error:t.error?.message??"Could not resolve reference",$refText:u}}else if(Qc(t)){let l=r?t.$refText:void 0,u=[];for(let h of t.items){let d=h.ref,f=Wl(h.ref),p="";this.currentDocument&&this.currentDocument!==f&&(s?p=s(f.uri,d):p=f.uri.toString());let m=this.astNodeLocator.getAstNodePath(d);u.push(`${p}#${m}`)}return{$refs:u,$refText:l}}else if(Rn(t)){let l;if(n&&(l=this.addAstNodeRegionWithAssignmentsTo({...t}),(!e||t.$document)&&l?.$textRegion&&(l.$textRegion.documentURI=this.currentDocument?.uri.toString())),i&&!e&&(l??(l={...t}),l.$sourceText=t.$cstNode?.text),a){l??(l={...t});let u=this.commentProvider.getComment(t);u&&(l.$comment=u.replace(/\r/g,""))}return l??t}else return t}addAstNodeRegionWithAssignmentsTo(e){let t=S(r=>({offset:r.offset,end:r.end,length:r.length,range:r.range}),"createDocumentSegment");if(e.$cstNode){let r=e.$textRegion=t(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(n=>!n.startsWith("$")).forEach(n=>{let a=rz(e.$cstNode,n).map(t);a.length!==0&&(i[n]=a)}),e}}linkNode(e,t,r,i,n,a){for(let[l,u]of Object.entries(e))if(Array.isArray(u))for(let h=0;h{await this.handleException(()=>e.call(t,r,i,n),"An error occurred during validation",i,r)}}async handleException(e,t,r,i){try{await e()}catch(n){if(cm(n))throw n;console.error(`${t}:`,n),n instanceof Error&&n.stack&&console.error(n.stack);let a=n instanceof Error?n.message:String(n);r("error",`${t}: ${a}`,{node:i})}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(let r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=gi(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(i=>t.includes(i.category))),r.map(i=>i.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,r){return async(i,n,a,s)=>{await this.handleException(()=>e.call(r,i,n,a,s),t,n,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}getAllValidationCategories(e){return this.knownCategories}},A3e=Object.freeze({validateNode:!0,validateChildren:!0}),_3e=class{static{o(this,"DefaultDocumentValidator")}static{S(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async validateDocument(e,t={},r=Ii.CancellationToken.None){let i=e.parseResult,n=[];if(await la(r),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(i,n,t),t.stopAfterLexingErrors&&n.some(a=>a.data?.code===Qo.LexingError)||(this.processParsingErrors(i,n,t),t.stopAfterParsingErrors&&n.some(a=>a.data?.code===Qo.ParsingError))||(this.processLinkingErrors(e,n,t),t.stopAfterLinkingErrors&&n.some(a=>a.data?.code===Qo.LinkingError))))return n;try{n.push(...await this.validateAst(i.value,t,r))}catch(a){if(cm(a))throw a;console.error("An error occurred during validation:",a)}return await la(r),n}processLexingErrors(e,t,r){let i=[...e.lexerErrors,...e.lexerReport?.diagnostics??[]];for(let n of i){let a=n.severity??"error",s={severity:J2(a),range:{start:{line:n.line-1,character:n.column-1},end:{line:n.line-1,character:n.column+n.length-1}},message:n.message,data:OG(a),source:this.getSource()};t.push(s)}}processParsingErrors(e,t,r){for(let i of e.parserErrors){let n;if(isNaN(i.token.startOffset)){if("previousToken"in i){let a=i.previousToken;if(isNaN(a.startOffset)){let s={line:0,character:0};n={start:s,end:s}}else{let s={line:a.endLine-1,character:a.endColumn};n={start:s,end:s}}}}else n=nT(i.token);if(n){let a={severity:J2("error"),range:n,message:i.message,data:O0(Qo.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,r){for(let i of e.references){let n=i.error;if(n){let a={node:n.info.container,range:i.$refNode?.range,property:n.info.property,index:n.info.index,data:{code:Qo.LinkingError,containerType:n.info.container.$type,property:n.info.property,refText:n.info.reference.$refText}};t.push(this.toDiagnostic("error",n.message,a))}}}async validateAst(e,t,r=Ii.CancellationToken.None){let i=[],n=S((a,s,l)=>{i.push(this.toDiagnostic(a,s,l))},"acceptor");return await this.validateAstBefore(e,t,n,r),await this.validateAstNodes(e,t,n,r),await this.validateAstAfter(e,t,n,r),i}async validateAstBefore(e,t,r,i=Ii.CancellationToken.None){let n=this.validationRegistry.checksBefore;for(let a of n)await la(i),await a(e,r,t.categories??[],i)}async validateAstNodes(e,t,r,i=Ii.CancellationToken.None){if(this.profiler?.isActive("validating")){let n=this.profiler.createTask("validating",this.languageId);n.start();try{let a=ql(e).iterator();for(let s of a){n.startSubTask(s.$type);let l=this.validateSingleNodeOptions(s,t);if(l.validateNode)try{let u=this.validationRegistry.getChecks(s.$type,t.categories);for(let h of u)await h(s,r,i)}finally{n.stopSubTask(s.$type)}l.validateChildren||a.prune()}}finally{n.stop()}}else{let n=ql(e).iterator();for(let a of n){await la(i);let s=this.validateSingleNodeOptions(a,t);if(s.validateNode){let l=this.validationRegistry.getChecks(a.$type,t.categories);for(let u of l)await u(a,r,i)}s.validateChildren||n.prune()}}}validateSingleNodeOptions(e,t){return A3e}async validateAstAfter(e,t,r,i=Ii.CancellationToken.None){let n=this.validationRegistry.checksAfter;for(let a of n)await la(i),await a(e,r,t.categories??[],i)}toDiagnostic(e,t,r){return{message:t,range:IG(r),severity:J2(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(IG,"getDiagnosticRange");S(IG,"getDiagnosticRange");o(J2,"toDiagnosticSeverity");S(J2,"toDiagnosticSeverity");o(OG,"toDiagnosticData");S(OG,"toDiagnosticData");(function(e){e.LexingError="lexing-error",e.LexingWarning="lexing-warning",e.LexingInfo="lexing-info",e.LexingHint="lexing-hint",e.ParsingError="parsing-error",e.LinkingError="linking-error"})(Qo||(Qo={}));D3e=class{static{o(this,"DefaultAstNodeDescriptionProvider")}static{S(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r){let i=r??Wl(e);t??(t=this.nameProvider.getName(e));let n=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${n} has no name.`);let a,s=S(()=>a??(a=Q1(this.nameProvider.getNameNode(e)??e.$cstNode)),"nameSegmentGetter");return{node:e,name:t,get nameSegment(){return s()},selectionSegment:Q1(e.$cstNode),type:e.$type,documentUri:i.uri,path:n}}},R3e=class{static{o(this,"DefaultReferenceDescriptionProvider")}static{S(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=Ii.CancellationToken.None){let r=[],i=e.parseResult.value;for(let n of ql(i))await la(t),X1(n).forEach(a=>{a.reference.error||r.push(...this.createInfoDescriptions(a))});return r}createInfoDescriptions(e){let t=e.reference;if(t.error||!t.$refNode)return[];let r=[];ss(t)&&t.$nodeDescription?r=[t.$nodeDescription]:Qc(t)&&(r=t.items.map(l=>l.$nodeDescription).filter(l=>l!==void 0));let i=Wl(e.container).uri,n=this.nodeLocator.getAstNodePath(e.container),a=[],s=Q1(t.$refNode);for(let l of r)a.push({sourceUri:i,sourcePath:n,targetUri:l.documentUri,targetPath:l.path,segment:s,local:os.equals(l.documentUri,i)});return a}},L3e=class{static{o(this,"DefaultAstNodeLocator")}static{S(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return t!==void 0?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((i,n)=>{if(!i||n.length===0)return i;let a=n.indexOf(this.indexSeparator);if(a>0){let s=n.substring(0,a),l=parseInt(n.substring(a+1));return i[s]?.[l]}return i[n]},e)}},XA={};W5(XA,c$(ny(),1));M3e=class{static{o(this,"DefaultConfigurationProvider")}static{S(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new mh,this.onConfigurationSectionUpdateEmitter=new XA.Emitter,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){this.workspaceConfig=e.capabilities.workspace?.configuration??!1}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((i,n)=>{this.updateSectionConfiguration(i.section,r[n])})}}this._ready.resolve()}updateConfiguration(e){typeof e.settings!="object"||e.settings===null||Object.entries(e.settings).forEach(([t,r])=>{this.updateSectionConfiguration(t,r),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:r})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}},bE=c$(jlt(),1);(function(e){function t(r){return{dispose:S(async()=>await r(),"dispose")}}o(t,"create"),S(t,"create"),e.create=t})(F0||(F0={}));N3e=class{static{o(this,"DefaultDocumentBuilder")}static{S(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new gh,this.documentPhaseListeners=new gh,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=zr.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.fileSystemProvider=e.workspace.FileSystemProvider,this.workspaceManager=()=>e.workspace.WorkspaceManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=Ii.CancellationToken.None){for(let i of e){let n=i.uri.toString();if(i.state===zr.Validated){if(typeof t.validation=="boolean"&&t.validation)this.resetToState(i,zr.IndexedReferences);else if(typeof t.validation=="object"){let a=this.findMissingValidationCategories(i,t);a.length>0&&(this.buildState.set(n,{completed:!1,options:{validation:{categories:a}},result:this.buildState.get(n)?.result}),i.state=zr.IndexedReferences)}}else this.buildState.delete(n)}this.currentState=zr.Changed,await this.emitUpdate(e.map(i=>i.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=Ii.CancellationToken.None){this.currentState=zr.Changed;let i=[];for(let l of t){let u=this.langiumDocuments.deleteDocuments(l);for(let h of u)i.push(h.uri),this.cleanUpDeleted(h)}let n=(await Promise.all(e.map(l=>this.findChangedUris(l)))).flat();for(let l of n){let u=this.langiumDocuments.getDocument(l);u===void 0&&(u=this.langiumDocumentFactory.fromModel({$type:"INVALID"},l),u.state=zr.Changed,this.langiumDocuments.addDocument(u)),this.resetToState(u,zr.Changed)}let a=gi(n).concat(i).map(l=>l.toString()).toSet();this.langiumDocuments.all.filter(l=>!a.has(l.uri.toString())&&this.shouldRelink(l,a)).forEach(l=>this.resetToState(l,zr.ComputedScopes)),await this.emitUpdate(n,i),await la(r);let s=this.sortDocuments(this.langiumDocuments.all.filter(l=>l.state=1}findMissingValidationCategories(e,t){let r=this.buildState.get(e.uri.toString()),i=this.serviceRegistry.getServices(e.uri).validation.ValidationRegistry.getAllValidationCategories(e),n=r?.result?.validationChecks?new Set(r?.result?.validationChecks):r?.completed?i:new Set,a=t===void 0||t.validation===!0?i:typeof t.validation=="object"?t.validation.categories??i:[];return gi(a).filter(s=>!n.has(s)).toArray()}async findChangedUris(e){if(this.langiumDocuments.getDocument(e)??this.textDocuments?.get(e))return[e];try{let r=await this.fileSystemProvider.stat(e);if(r.isDirectory)return await this.workspaceManager().searchFolder(e);if(this.workspaceManager().shouldIncludeEntry(r))return[e]}catch{}return[]}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}sortDocuments(e){let t=0,r=e.length-1;for(;t=0&&!this.hasTextDocument(e[r]);)r--;tr.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),F0.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}resetToState(e,t){switch(t){case zr.Changed:case zr.Parsed:this.indexManager.removeContent(e.uri);case zr.IndexedContent:e.localSymbols=void 0;case zr.ComputedScopes:this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e);case zr.Linked:this.indexManager.removeReferences(e.uri);case zr.IndexedReferences:e.diagnostics=void 0,this.buildState.delete(e.uri.toString());case zr.Validated:}e.state>t&&(e.state=t)}cleanUpDeleted(e){this.buildState.delete(e.uri.toString()),this.indexManager.remove(e.uri),e.state=zr.Changed}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,zr.Parsed,r,a=>this.langiumDocumentFactory.update(a,r)),await this.runCancelable(e,zr.IndexedContent,r,a=>this.indexManager.updateContent(a,r)),await this.runCancelable(e,zr.ComputedScopes,r,async a=>{let s=this.serviceRegistry.getServices(a.uri).references.ScopeComputation;a.localSymbols=await s.collectLocalSymbols(a,r)});let i=e.filter(a=>this.shouldLink(a));await this.runCancelable(i,zr.Linked,r,a=>this.serviceRegistry.getServices(a.uri).references.Linker.link(a,r)),await this.runCancelable(i,zr.IndexedReferences,r,a=>this.indexManager.updateReferences(a,r));let n=e.filter(a=>this.shouldValidate(a)?!0:(this.markAsCompleted(a),!1));await this.runCancelable(n,zr.Validated,r,async a=>{await this.validate(a,r),this.markAsCompleted(a)})}markAsCompleted(e){let t=this.buildState.get(e.uri.toString());t&&(t.completed=!0)}prepareBuild(e,t){for(let r of e){let i=r.uri.toString(),n=this.buildState.get(i);(!n||n.completed)&&this.buildState.set(i,{completed:!1,options:t,result:n?.result})}}async runCancelable(e,t,r,i){for(let a of e)a.statea.state===t);await this.notifyBuildPhase(n,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),F0.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),F0.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let i;return t&&"path"in t?i=t:r=t,r??(r=Ii.CancellationToken.None),i?this.awaitDocumentState(e,i,r):this.awaitBuilderState(e,r)}awaitDocumentState(e,t,r){let i=this.langiumDocuments.getDocument(t);if(i){if(i.state>=e)return Promise.resolve(t);if(r.isCancellationRequested)return Promise.reject(Zc);if(this.currentState>=e&&e>i.state)return Promise.reject(new bE.ResponseError(bE.LSPErrorCodes.RequestFailed,`Document state of ${t.toString()} is ${zr[i.state]}, requiring ${zr[e]}, but workspace state is already ${zr[this.currentState]}. Returning undefined.`))}else return Promise.reject(new bE.ResponseError(bE.LSPErrorCodes.ServerCancelled,`No document found for URI: ${t.toString()}`));return new Promise((n,a)=>{let s=this.onDocumentPhase(e,u=>{os.equals(u.uri,t)&&(s.dispose(),l.dispose(),n(u.uri))}),l=r.onCancellationRequested(()=>{s.dispose(),l.dispose(),a(Zc)})})}awaitBuilderState(e,t){return this.currentState>=e?Promise.resolve():t.isCancellationRequested?Promise.reject(Zc):new Promise((r,i)=>{let n=this.onBuildPhase(e,()=>{n.dispose(),a.dispose(),r()}),a=t.onCancellationRequested(()=>{n.dispose(),a.dispose(),i(Zc)})})}async notifyDocumentPhase(e,t,r){let n=this.documentPhaseListeners.get(t).slice();for(let a of n)try{await la(r),await a(e,r)}catch(s){if(!cm(s))throw s}}async notifyBuildPhase(e,t,r){if(e.length===0)return;let n=this.buildPhaseListeners.get(t).slice();for(let a of n)await la(r),await a(e,r)}shouldLink(e){return this.getBuildOptions(e).eagerLinking??!0}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){let r=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,i=this.getBuildOptions(e),n=typeof i.validation=="object"?{...i.validation}:{};n.categories=this.findMissingValidationCategories(e,i);let a=await r.validateDocument(e,n,t);e.diagnostics?e.diagnostics.push(...a):e.diagnostics=a;let s=this.buildState.get(e.uri.toString());s&&(s.result??(s.result={}),s.result.validationChecks?s.result.validationChecks=gi(s.result.validationChecks).concat(n.categories).distinct().toArray():s.result.validationChecks=[...n.categories])}getBuildOptions(e){return this.buildState.get(e.uri.toString())?.options??{}}},I3e=class{static{o(this,"DefaultIndexManager")}static{S(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new jA,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let r=Wl(e).uri,i=[];return this.referenceIndex.forEach(n=>{n.forEach(a=>{os.equals(a.targetUri,r)&&a.targetPath===t&&i.push(a)})}),gi(i)}allElements(e,t){let r=gi(this.symbolIndex.keys());return t&&(r=r.filter(i=>!t||t.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){return t?this.symbolByTypeIndex.get(e,t,()=>(this.symbolIndex.get(e)??[]).filter(n=>this.astReflection.isSubtype(n.type,t))):this.symbolIndex.get(e)??[]}remove(e){this.removeContent(e),this.removeReferences(e)}removeContent(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t)}removeReferences(e){let t=e.toString();this.referenceIndex.delete(t)}async updateContent(e,t=Ii.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.collectExportedSymbols(e,t),n=e.uri.toString();this.symbolIndex.set(n,i),this.symbolByTypeIndex.clear(n)}async updateReferences(e,t=Ii.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,t){let r=this.referenceIndex.get(e.uri.toString());return r?r.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}},O3e=class{static{o(this,"DefaultWorkspaceManager")}static{S(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new mh,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){this.folders=e.workspaceFolders??void 0}initialized(e){return this.mutex.write(t=>this.initializeWorkspace(this.folders??[],t))}async initializeWorkspace(e,t=Ii.CancellationToken.None){let r=await this.performStartup(e);await la(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){let t=[],r=S(a=>{t.push(a),this.langiumDocuments.hasDocument(a.uri)||this.langiumDocuments.addDocument(a)},"collector");await this.loadAdditionalDocuments(e,r);let i=[];await Promise.all(e.map(a=>this.getRootFolder(a)).map(async a=>this.traverseFolder(a,i)));let n=gi(i).distinct(a=>a.toString()).filter(a=>!this.langiumDocuments.hasDocument(a));return await this.loadWorkspaceDocuments(n,r),this._ready.resolve(),t}async loadWorkspaceDocuments(e,t){await Promise.all(e.map(async r=>{let i=await this.langiumDocuments.getOrCreateDocument(r);t(i)}))}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return fo.parse(e.uri)}async traverseFolder(e,t){try{let r=await this.fileSystemProvider.readDirectory(e);await Promise.all(r.map(async i=>{this.shouldIncludeEntry(i)&&(i.isDirectory?await this.traverseFolder(i.uri,t):i.isFile&&t.push(i.uri))}))}catch(r){console.error("Failure to read directory content of "+e.toString(!0),r)}}async searchFolder(e){let t=[];return await this.traverseFolder(e,t),t}shouldIncludeEntry(e){let t=os.basename(e.uri);return t.startsWith(".")?!1:e.isDirectory?t!=="node_modules"&&t!=="out":e.isFile?this.serviceRegistry.hasServices(e.uri):!1}},P3e=class{static{o(this,"DefaultLexerErrorMessageProvider")}static{S(this,"DefaultLexerErrorMessageProvider")}buildUnexpectedCharactersMessage(e,t,r,i,n){return SF.buildUnexpectedCharactersMessage(e,t,r,i,n)}buildUnableToPopLexerModeMessage(e){return SF.buildUnableToPopLexerModeMessage(e)}},PG={mode:"full"},BG=class{static{o(this,"DefaultLexer")}static{S(this,"DefaultLexer")}constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);let r=G5(t)?Object.values(t):t,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new ls(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=PG){let r=this.chevrotainLexer.tokenize(e);return{tokens:r.tokens,errors:r.errors,hidden:r.groups.hidden??[],report:this.tokenBuilder.flushLexingReport?.(e)}}toTokenTypeDictionary(e){if(G5(e))return e;let t=ZA(e)?Object.values(e.modes).flat():e,r={};return t.forEach(i=>r[i.name]=i),r}};o(KA,"isTokenTypeArray");S(KA,"isTokenTypeArray");o(ZA,"isIMultiModeLexerDefinition");S(ZA,"isIMultiModeLexerDefinition");o(G5,"isTokenTypeDictionary");S(G5,"isTokenTypeDictionary");bT();o(FG,"parseJSDoc");S(FG,"parseJSDoc");o($G,"isJSDoc");S($G,"isJSDoc");o(zG,"getLines");S(zG,"getLines");Fye=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,bvt=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(B3e,"tokenize");S(B3e,"tokenize");o(F3e,"buildInlineTokens");S(F3e,"buildInlineTokens");Tvt=/\S/,Cvt=/\s*$/;o(V5,"skipWhitespace");S(V5,"skipWhitespace");o($3e,"lastCharacter");S($3e,"lastCharacter");o(z3e,"parseJSDocComment");S(z3e,"parseJSDocComment");o(G3e,"parseJSDocElement");S(G3e,"parseJSDocElement");o(V3e,"appendEmptyLine");S(V3e,"appendEmptyLine");o(GG,"parseJSDocText");S(GG,"parseJSDocText");o(W3e,"parseJSDocInline");S(W3e,"parseJSDocInline");o(VG,"parseJSDocTag");S(VG,"parseJSDocTag");o(WG,"parseJSDocLine");S(WG,"parseJSDocLine");o(QA,"normalizeOptions");S(QA,"normalizeOptions");o(JE,"normalizeOption");S(JE,"normalizeOption");$ye=class{static{o(this,"JSDocCommentImpl")}static{S(this,"JSDocCommentImpl")}constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let t of this.elements)if(e.length===0)e=t.toString();else{let r=t.toString();e+=jF(e)+r}return e.trim()}toMarkdown(e){let t="";for(let r of this.elements)if(t.length===0)t=r.toMarkdown(e);else{let i=r.toMarkdown(e);t+=jF(t)+i}return t.trim()}},tB=class{static{o(this,"JSDocTagImpl")}static{S(this,"JSDocTagImpl")}constructor(e,t,r,i){this.name=e,this.content=t,this.inline=r,this.range=i}toString(){let e=`@${this.name}`,t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e} +${t}`),this.inline?`{${e}}`:e}toMarkdown(e){return e?.renderTag?.(this)??this.toMarkdownDefault(e)}toMarkdownDefault(e){let t=this.content.toMarkdown(e);if(this.inline){let n=q3e(this.name,t,e??{});if(typeof n=="string")return n}let r="";e?.tag==="italic"||e?.tag===void 0?r="*":e?.tag==="bold"?r="**":e?.tag==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} \u2014 ${t}`:this.content.inlines.length>1&&(i=`${i} +${t}`),this.inline?`{${i}}`:i}};o(q3e,"renderInlineTag");S(q3e,"renderInlineTag");o(U3e,"renderLinkDefault");S(U3e,"renderLinkDefault");YF=class{static{o(this,"JSDocTextImpl")}static{S(this,"JSDocTextImpl")}constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;tr.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let t="";for(let r=0;ri.range.start.line&&(t+=` +`)}return t}},H3e=class{static{o(this,"JSDocLineImpl")}static{S(this,"JSDocLineImpl")}constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}};o(jF,"fillNewlines");S(jF,"fillNewlines");Y3e=class{static{o(this,"JSDocDocumentationProvider")}static{S(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let t=this.commentProvider.getComment(e);if(t&&$G(t))return FG(t).toMarkdown({renderLink:S((i,n)=>this.documentationLinkRenderer(e,i,n),"renderLink"),renderTag:S(i=>this.documentationTagRenderer(e,i),"renderTag")})}documentationLinkRenderer(e,t,r){let i=this.findNameInLocalSymbols(e,t)??this.findNameInGlobalScope(e,t);if(i&&i.nameSegment){let n=i.nameSegment.range.start.line+1,a=i.nameSegment.range.start.character+1,s=i.documentUri.with({fragment:`L${n},${a}`});return`[${r}](${s.toString()})`}else return}documentationTagRenderer(e,t){}findNameInLocalSymbols(e,t){let i=Wl(e).localSymbols;if(!i)return;let n=e;do{let s=i.getStream(n).find(l=>l.name===t);if(s)return s;n=n.$container}while(n)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}},j3e=class{static{o(this,"DefaultCommentProvider")}static{S(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){return NG(e)?e.$comment:G$(e.$cstNode,this.grammarConfig().multilineCommentRules)?.text}},X3e=class{static{o(this,"DefaultAsyncParser")}static{S(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}},kvt=class{static{o(this,"AbstractThreadedAsyncParser")}static{S(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{if(this.queue.length>0){let t=this.queue.shift();t&&(e.lock(),t.resolve(e))}}),this.workerPool.push(e)}}async parse(e,t){let r=await this.acquireParserWorker(t),i=new mh,n,a=t.onCancellationRequested(()=>{n=setTimeout(()=>{this.terminateWorker(r)},this.terminationDelay)});return r.parse(e).then(s=>{let l=this.hydrator.hydrate(s);i.resolve(l)}).catch(s=>{i.reject(s)}).finally(()=>{a.dispose(),clearTimeout(n)}),i.promise}terminateWorker(e){e.terminate();let t=this.workerPool.indexOf(e);t>=0&&this.workerPool.splice(t,1)}async acquireParserWorker(e){this.initializeWorkers();for(let r of this.workerPool)if(r.ready)return r.lock(),r;let t=new mh;return e.onCancellationRequested(()=>{let r=this.queue.indexOf(t);r>=0&&this.queue.splice(r,1),t.reject(Zc)}),this.queue.push(t),t.promise}},wvt=class{static{o(this,"ParserWorker")}static{S(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,t,r,i){this.onReadyEmitter=new XA.Emitter,this.deferred=new mh,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,t(n=>{let a=n;this.deferred.resolve(a),this.unlock()}),r(n=>{this.deferred.reject(n),this.unlock()})}terminate(){this.deferred.reject(Zc),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new mh,this.sendMessage(e),this.deferred.promise}},K3e=class{static{o(this,"DefaultWorkspaceLock")}static{S(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new Ii.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=HA();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=Ii.CancellationToken.None){let i=new mh,n={action:t,deferred:i,cancellationToken:r};return e.push(n),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:t,deferred:r,cancellationToken:i})=>{try{let n=await Promise.resolve().then(()=>t(i));r.resolve(n)}catch(n){cm(n)?r.resolve(void 0):r.reject(n)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}},Z3e=class{static{o(this,"DefaultHydrator")}static{S(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new $5,this.tokenTypeIdMap=new $5,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(t=>({...t,message:t.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let t=new Map,r=new Map;for(let i of ql(e))t.set(i,{});if(e.$cstNode)for(let i of Z1(e.$cstNode))r.set(i,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){let r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(let[i,n]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(n)){let a=[];r[i]=a;for(let s of n)Rn(s)?a.push(this.dehydrateAstNode(s,t)):ss(s)?a.push(this.dehydrateReference(s,t)):a.push(s)}else Rn(n)?r[i]=this.dehydrateAstNode(n,t):ss(n)?r[i]=this.dehydrateReference(n,t):n!==void 0&&(r[i]=n);return r}dehydrateReference(e,t){let r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){let r=t.cstNodes.get(e);return H5(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),oh(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,t)):q0(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){let t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){let t=new Map,r=new Map;for(let n of ql(e))t.set(n,{});let i;if(e.$cstNode)for(let n of Z1(e.$cstNode)){let a;"fullText"in n?(a=new yG(n.fullText),i=a):"content"in n?a=new GA:"tokenType"in n&&(a=this.hydrateCstLeafNode(n)),a&&(r.set(n,a),a.root=i)}return{astNodes:t,cstNodes:r}}hydrateAstNode(e,t){let r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode));for(let[i,n]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(n)){let a=[];r[i]=a;for(let s of n)Rn(s)?a.push(this.setParent(this.hydrateAstNode(s,t),r)):ss(s)?a.push(this.hydrateReference(s,r,i,t)):a.push(s)}else Rn(n)?r[i]=this.setParent(this.hydrateAstNode(n,t),r):ss(n)?r[i]=this.hydrateReference(n,r,i,t):n!==void 0&&(r[i]=n);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,i){return this.linker.buildReference(t,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){let i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),oh(i))for(let n of e.content){let a=this.hydrateCstNode(n,t,r++);i.content.push(a)}return i}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType),r=e.offset,i=e.length,n=e.startLine,a=e.startColumn,s=e.endLine,l=e.endColumn,u=e.hidden;return new I5(r,i,{start:{line:n,character:a},end:{line:s,character:l}},t,u)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let t of ql(this.grammar))Y5(t)&&this.grammarElementIdMap.set(t,e++)}};o(rn,"createDefaultCoreModule");S(rn,"createDefaultCoreModule");o(nn,"createDefaultSharedCoreModule");S(nn,"createDefaultSharedCoreModule");(function(e){e.merge=(t,r)=>iy(iy({},t),r)})(XF||(XF={}));o(Hr,"inject");S(Hr,"inject");Q3e=Symbol("isProxy");o(qG,"eagerLoad");S(qG,"eagerLoad");o(UG,"_inject");S(UG,"_inject");zye=Symbol();o(KF,"_resolve");S(KF,"_resolve");o(iy,"_merge");S(iy,"_merge");ZF={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]};(function(e){e.REGULAR="indentation-sensitive",e.IGNORE_INDENTATION="ignore-indentation"})(P0||(P0={}));J3e=class extends qA{static{o(this,"IndentationAwareTokenBuilder")}static{S(this,"IndentationAwareTokenBuilder")}constructor(e=ZF){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options={...ZF,...e},this.indentTokenType=q1({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=q1({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,t){let r=super.buildTokens(e,t);if(!KA(r))throw new Error("Invalid tokens built by default builder");let{indentTokenName:i,dedentTokenName:n,whitespaceTokenName:a,ignoreIndentationDelimiters:s}=this.options,l,u,h,d=[];for(let f of r){for(let[p,m]of s)f.name===p?f.PUSH_MODE=P0.IGNORE_INDENTATION:f.name===m&&(f.POP_MODE=!0);f.name===n?l=f:f.name===i?u=f:f.name===a?h=f:d.push(f)}if(!l||!u||!h)throw new Error("Some indentation/whitespace tokens not found!");return s.length>0?{modes:{[P0.REGULAR]:[l,u,...d,h],[P0.IGNORE_INDENTATION]:[...d,h]},defaultMode:P0.REGULAR}:[l,u,h,...d]}flushLexingReport(e){return{...super.flushLexingReport(e),remainingDedents:this.flushRemainingDedents(e)}}isStartOfLine(e,t){return t===0||`\r +`.includes(e[t-1])}matchWhitespace(e,t,r,i){this.whitespaceRegExp.lastIndex=t;let n=this.whitespaceRegExp.exec(e);return{currIndentLevel:n?.[0].length??0,prevIndentLevel:this.indentationStack.at(-1),match:n}}createIndentationTokenInstance(e,t,r,i){let n=this.getLineNumber(t,i);return PT(e,r,i,i+r.length,n,n,1,r.length)}getLineNumber(e,t){return e.substring(0,t).split(/\r\n|\r|\n/).length}indentMatcher(e,t,r,i){if(!this.isStartOfLine(e,t))return null;let{currIndentLevel:n,prevIndentLevel:a,match:s}=this.matchWhitespace(e,t,r,i);return n<=a?null:(this.indentationStack.push(n),s)}dedentMatcher(e,t,r,i){if(!this.isStartOfLine(e,t))return null;let{currIndentLevel:n,prevIndentLevel:a,match:s}=this.matchWhitespace(e,t,r,i);if(n>=a)return null;let l=this.indentationStack.lastIndexOf(n);if(l===-1)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${n} at offset: ${t}. Current indentation stack: ${this.indentationStack}`,offset:t,length:s?.[0]?.length??0,line:this.getLineNumber(e,t),column:1}),null;let u=this.indentationStack.length-l-1,h=e.substring(0,t).match(/[\r\n]+$/)?.[0].length??1;for(let d=0;d1;)t.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],t}},Svt=class extends BG{static{o(this,"IndentationAwareLexer")}static{S(this,"IndentationAwareLexer")}constructor(e){if(super(e),e.parser.TokenBuilder instanceof J3e)this.indentationTokenBuilder=e.parser.TokenBuilder;else throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(e,t=PG){let r=super.tokenize(e),i=r.report;t?.mode==="full"&&r.tokens.push(...i.remainingDedents),i.remainingDedents=[];let{indentTokenType:n,dedentTokenType:a}=this.indentationTokenBuilder,s=n.tokenTypeIdx,l=a.tokenTypeIdx,u=[],h=r.tokens.length-1;for(let d=0;d=0&&u.push(r.tokens[h]),r.tokens=u,r}},HG={};xf(HG,{AstUtils:o(()=>m$,"AstUtils"),BiMap:o(()=>$5,"BiMap"),Cancellation:o(()=>Ii,"Cancellation"),ContextCache:o(()=>jA,"ContextCache"),CstUtils:o(()=>d$,"CstUtils"),DONE_RESULT:o(()=>as,"DONE_RESULT"),Deferred:o(()=>mh,"Deferred"),Disposable:o(()=>F0,"Disposable"),DisposableCache:o(()=>YA,"DisposableCache"),DocumentCache:o(()=>C3e,"DocumentCache"),EMPTY_STREAM:o(()=>H1,"EMPTY_STREAM"),ErrorWithLocation:o(()=>eA,"ErrorWithLocation"),GrammarUtils:o(()=>U$,"GrammarUtils"),MultiMap:o(()=>gh,"MultiMap"),OperationCancelled:o(()=>Zc,"OperationCancelled"),Reduction:o(()=>iT,"Reduction"),RegExpUtils:o(()=>Y$,"RegExpUtils"),SimpleCache:o(()=>LG,"SimpleCache"),StreamImpl:o(()=>Kc,"StreamImpl"),TreeStreamImpl:o(()=>Y1,"TreeStreamImpl"),URI:o(()=>fo,"URI"),UriTrie:o(()=>DG,"UriTrie"),UriUtils:o(()=>os,"UriUtils"),WorkspaceCache:o(()=>MG,"WorkspaceCache"),assertCondition:o(()=>H$,"assertCondition"),assertUnreachable:o(()=>bf,"assertUnreachable"),delayNextTick:o(()=>UA,"delayNextTick"),interruptAndCheck:o(()=>la,"interruptAndCheck"),isOperationCancelled:o(()=>cm,"isOperationCancelled"),loadGrammarFromJson:o(()=>xo,"loadGrammarFromJson"),setInterruptionPeriod:o(()=>EG,"setInterruptionPeriod"),startCancelableOperation:o(()=>HA,"startCancelableOperation"),stream:o(()=>gi,"stream")});W5(HG,XA);eEe=class{static{o(this,"EmptyFileSystemProvider")}static{S(this,"EmptyFileSystemProvider")}stat(e){throw new Error("No file system is available.")}statSync(e){throw new Error("No file system is available.")}async exists(){return!1}existsSync(){return!1}readBinary(){throw new Error("No file system is available.")}readBinarySync(){throw new Error("No file system is available.")}readFile(){throw new Error("No file system is available.")}readFileSync(){throw new Error("No file system is available.")}async readDirectory(){return[]}readDirectorySync(){return[]}},fn={fileSystemProvider:S(()=>new eEe,"fileSystemProvider")},Evt={Grammar:S(()=>{},"Grammar"),LanguageMetaData:S(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},Avt={AstReflection:S(()=>new P$,"AstReflection")};o(tEe,"createMinimalGrammarServices");S(tEe,"createMinimalGrammarServices");o(xo,"loadGrammarFromJson");S(xo,"loadGrammarFromJson");W5(uve,HG);_vt=class{static{o(this,"DefaultLangiumProfiler")}static{S(this,"DefaultLangiumProfiler")}constructor(e){this.activeCategories=new Set,this.allCategories=new Set(["validating","parsing","linking"]),this.activeCategories=e??new Set(this.allCategories),this.records=new gh}isActive(e){return this.activeCategories.has(e)}start(...e){e?e.forEach(t=>this.activeCategories.add(t)):this.activeCategories=new Set(this.allCategories)}stop(...e){e?e.forEach(t=>this.activeCategories.delete(t)):this.activeCategories.clear()}createTask(e,t){if(!this.isActive(e))throw new Error(`Category "${e}" is not active.`);return console.log(`Creating profiling task for '${e}.${t}'.`),new rEe(r=>this.records.add(e,this.dumpRecord(e,r)),t)}dumpRecord(e,t){console.info(`Task ${e}.${t.identifier} executed in ${t.duration.toFixed(2)}ms and ended at ${t.date.toISOString()}`);let r=[];for(let a of t.entries.keys()){let s=t.entries.get(a),l=s.reduce((u,h)=>u+h);r.push({name:`${t.identifier}.${a}`,count:s.length,duration:l})}let i=t.duration-r.map(a=>a.duration).reduce((a,s)=>a+s,0);r.push({name:t.identifier,count:1,duration:i}),r.sort((a,s)=>s.duration-a.duration);function n(a){return Math.round(100*a)/100}return o(n,"Round"),S(n,"Round"),console.table(r.map(a=>({Element:a.name,Count:a.count,"Self %":n(100*a.duration/t.duration),"Time (ms)":n(a.duration)}))),t}getRecords(...e){return e.length===0?this.records.values():this.records.entries().filter(t=>e.some(r=>r===t[0])).flatMap(t=>t[1])}},rEe=class{static{o(this,"ProfilingTask")}static{S(this,"ProfilingTask")}constructor(e,t){this.stack=[],this.entries=new gh,this.addRecord=e,this.identifier=t}start(){if(this.startTime!==void 0)throw new Error(`Task "${this.identifier}" is already started.`);this.startTime=performance.now()}stop(){if(this.startTime===void 0)throw new Error(`Task "${this.identifier}" was not started.`);if(this.stack.length!==0)throw new Error(`Task "${this.identifier}" cannot be stopped before sub-task(s): ${this.stack.map(t=>t.id).join(", ")}.`);let e={identifier:this.identifier,date:new Date,duration:performance.now()-this.startTime,entries:this.entries};this.addRecord(e),this.startTime=void 0,this.entries.clear()}startSubTask(e){this.stack.push({id:e,start:performance.now(),content:0})}stopSubTask(e){let t=this.stack.pop();if(!t)throw new Error(`Task "${this.identifier}.${e}" was not started.`);if(t.id!==e)throw new Error(`Sub-Task "${t.id}" is not already stopped.`);let r=performance.now()-t.start;this.stack.at(-1)!==void 0&&(this.stack[this.stack.length-1].content+=r);let i=r-t.content;this.entries.add(e,i)}};(e=>{e.Terminals={ARROW_DIRECTION:/L|R|T|B/,ARROW_GROUP:/\{group\}/,ARROW_INTO:/<|>/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,ARCH_ICON:/\([\w-:]+\)/,ARCH_TITLE:/\[(?:"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|[\w ]+)\]/}})(QF||(QF={}));(e=>{e.Terminals={EM_ID:/[_a-zA-Z][\w_]*/,EM_FID:/\d{1,3}/,EM_DATA_INLINE:/\{(.*)\}|"(.*)"|'(.*)'/,EM_DATA_BLOCK:/\{[\t ]*\r?\n(?:[\S\s]*?\r?\n)?\}(?:\r?\n|(?!\S))/,EM_ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,EM_ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,EM_TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,EM_WS:/\s+/,EM_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,EM_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,EM_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,EM_ML_COMMENT:/\/\*[\s\S]*?\*\//,EM_SL_COMMENT:/\/\/[^\n\r]*/}})(JF||(JF={}));(e=>{e.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,REFERENCE:/\w([-\./\w]*[-\w])?/}})(e$||(e$={}));(e=>{e.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(t$||(t$={}));(e=>{e.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(r$||(r$={}));(e=>{e.Terminals={NUMBER_PIE:/(?:-?[0-9]+\.[0-9]+(?!\.))|(?:-?(0|[1-9][0-9]*)(?!\.))/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(i$||(i$={}));(e=>{e.Terminals={GRATICULE:/circle|polygon/,BOOLEAN:/true|false/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NUMBER:/(?:[0-9]+\.[0-9]+(?!\.))|(?:0|[1-9][0-9]*(?!\.))/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(n$||(n$={}));(e=>{e.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,TREEMAP_KEYWORD:/treemap-beta|treemap/,CLASS_DEF:/classDef\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\s+([^;\r\n]*))?(?:;)?/,STYLE_SEPARATOR:/:::/,SEPARATOR:/:/,COMMA:/,/,INDENTATION:/[ \t]{1,}/,WS:/[ \t]+/,ML_COMMENT:/\%\%[^\n]*/,NL:/\r?\n/,ID2:/[a-zA-Z_][a-zA-Z0-9_]*/,NUMBER2:/[0-9_\.\,]+/,STRING2:/"[^"]*"|'[^']*'/}})(a$||(a$={}));(e=>{e.Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INDENTATION:/[ \t]{1,}/,WS:/[ \t]+/,ML_COMMENT:/\%\%[^\n]*/,NL:/\r?\n/,STRING2:/"[^"]*"|'[^']*'/}})(s$||(s$={}));(e=>{e.Terminals={WARDLEY_NUMBER:/[0-9]+\.[0-9]+/,ARROW:/->/,LINK_PORT:/\+<>|\+>|\+|-\.->|>|\+'[^']*'<>|\+'[^']*'<|\+'[^']*'>/,LINK_LABEL:/;[^\n\r]+/,STRATEGY:/build|buy|outsource|market/,KW_WARDLEY:/wardley-beta/,KW_SIZE:/size/,KW_EVOLUTION:/evolution/,KW_ANCHOR:/anchor/,KW_COMPONENT:/component/,KW_LABEL:/label/,KW_INERTIA:/inertia/,KW_EVOLVE:/evolve/,KW_PIPELINE:/pipeline/,KW_NOTE:/note/,KW_ANNOTATIONS:/annotations/,KW_ANNOTATION:/annotation/,KW_ACCELERATOR:/accelerator/,KW_DEACCELERATOR:/deaccelerator/,NAME_WITH_SPACES:/(?!title\s|accTitle|accDescr)[A-Za-z](?:[A-Za-z0-9_()&]|-(?!>))*(?:[ \t]+[A-Za-z(](?:[A-Za-z0-9_()&]|-(?!>))*)*/,WS:/[ \t]+/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/}})(o$||(o$={}));Dwr={...QF.Terminals,...JF.Terminals,...e$.Terminals,...t$.Terminals,...r$.Terminals,...i$.Terminals,...n$.Terminals,...s$.Terminals,...a$.Terminals,...o$.Terminals},TE={$type:"Accelerator",name:"name",x:"x",y:"y"},CE={$type:"Anchor",evolution:"evolution",name:"name",visibility:"visibility"},C2={$type:"Annotation",number:"number",text:"text",x:"x",y:"y"},rB={$type:"Annotations",x:"x",y:"y"},Yc={$type:"Architecture",accDescr:"accDescr",accTitle:"accTitle",edges:"edges",groups:"groups",junctions:"junctions",services:"services",title:"title"};o(iEe,"isArchitecture");S(iEe,"isArchitecture");kE={$type:"Axis",label:"label",name:"name"},eT={$type:"Branch",name:"name",order:"order"};o(nEe,"isBranch");S(nEe,"isBranch");Gye={$type:"Checkout",branch:"branch"},wE={$type:"CherryPicking",id:"id",parent:"parent",tags:"tags"},iB={$type:"ClassDefStatement",className:"className",styleText:"styleText"},_0={$type:"Commit",id:"id",message:"message",tags:"tags",type:"type"};o(aEe,"isCommit");S(aEe,"isCommit");SE={$type:"Common",accDescr:"accDescr",accTitle:"accTitle",title:"title"},s0={$type:"Component",decorator:"decorator",evolution:"evolution",inertia:"inertia",label:"label",name:"name",visibility:"visibility"},EE={$type:"Curve",entries:"entries",label:"label",name:"name"},AE={$type:"Deaccelerator",name:"name",x:"x",y:"y"},Vye={$type:"Decorator",strategy:"strategy"},w1={$type:"Direction",accDescr:"accDescr",accTitle:"accTitle",dir:"dir",statements:"statements",title:"title"},Wc={$type:"Edge",lhsDir:"lhsDir",lhsGroup:"lhsGroup",lhsId:"lhsId",lhsInto:"lhsInto",rhsDir:"rhsDir",rhsGroup:"rhsGroup",rhsId:"rhsId",rhsInto:"rhsInto",title:"title"},p0={$type:"EmDataEntity",dataBlockValue:"dataBlockValue",dataType:"dataType",name:"name"},af={$type:"EmFrame"},k2={$type:"EmGwt",givenStatements:"givenStatements",sourceFrame:"sourceFrame",thenStatements:"thenStatements",whenStatements:"whenStatements"},Wye={$type:"EmGwtStatement",entityIdentifier:"entityIdentifier"},nB={$type:"EmModelEntity",name:"name"};o(sEe,"isEmModelEntityType");S(sEe,"isEmModelEntityType");_E={$type:"EmNoteEntity",dataBlockValue:"dataBlockValue",dataType:"dataType",sourceFrame:"sourceFrame"},ih={$type:"EmResetFrame",dataInlineValue:"dataInlineValue",dataReference:"dataReference",dataType:"dataType",entityIdentifier:"entityIdentifier",modelEntityType:"modelEntityType",name:"name",sourceFrames:"sourceFrames"};o(JA,"isEmResetFrame");S(JA,"isEmResetFrame");nf={$type:"EmTimeFrame",dataInlineValue:"dataInlineValue",dataReference:"dataReference",dataType:"dataType",entityIdentifier:"entityIdentifier",modelEntityType:"modelEntityType",name:"name",sourceFrames:"sourceFrames"},aB={$type:"Entry",axis:"axis",value:"value"},Uc={$type:"EventModel",accDescr:"accDescr",accTitle:"accTitle",dataEntities:"dataEntities",frames:"frames",gwtEntities:"gwtEntities",modelEntities:"modelEntities",noteEntities:"noteEntities",title:"title"},qye={$type:"Evolution",stages:"stages"},DE={$type:"EvolutionStage",boundary:"boundary",name:"name",secondName:"secondName"},sB={$type:"Evolve",component:"component",target:"target"},df={$type:"GitGraph",accDescr:"accDescr",accTitle:"accTitle",statements:"statements",title:"title"};o(oEe,"isGitGraph");S(oEe,"isGitGraph");w2={$type:"Group",icon:"icon",id:"id",in:"in",title:"title"},G1={$type:"Info",accDescr:"accDescr",accTitle:"accTitle",title:"title"};o(lEe,"isInfo");S(lEe,"isInfo");S2={$type:"Item",classSelector:"classSelector",name:"name"},oB={$type:"Junction",id:"id",in:"in"},E2={$type:"Label",negX:"negX",negY:"negY",offsetX:"offsetX",offsetY:"offsetY"},RE={$type:"Leaf",classSelector:"classSelector",name:"name",value:"value"},o0={$type:"Link",arrow:"arrow",from:"from",fromPort:"fromPort",linkLabel:"linkLabel",to:"to",toPort:"toPort"},D0={$type:"Merge",branch:"branch",id:"id",tags:"tags",type:"type"};o(cEe,"isMerge");S(cEe,"isMerge");LE={$type:"Note",evolution:"evolution",text:"text",visibility:"visibility"},lB={$type:"Option",name:"name",value:"value"},R0={$type:"Packet",accDescr:"accDescr",accTitle:"accTitle",blocks:"blocks",title:"title"};o(uEe,"isPacket");S(uEe,"isPacket");L0={$type:"PacketBlock",bits:"bits",end:"end",label:"label",start:"start"};o(hEe,"isPacketBlock");S(hEe,"isPacketBlock");ff={$type:"Pie",accDescr:"accDescr",accTitle:"accTitle",sections:"sections",showData:"showData",title:"title"};o(dEe,"isPie");S(dEe,"isPie");tT={$type:"PieSection",label:"label",value:"value"};o(fEe,"isPieSection");S(fEe,"isPieSection");cB={$type:"Pipeline",components:"components",parent:"parent"},ME={$type:"PipelineComponent",evolution:"evolution",label:"label",name:"name"},sf={$type:"Radar",accDescr:"accDescr",accTitle:"accTitle",axes:"axes",curves:"curves",options:"options",title:"title"},uB={$type:"Section",classSelector:"classSelector",name:"name"},S1={$type:"Service",icon:"icon",iconText:"iconText",id:"id",in:"in",title:"title"},hB={$type:"Size",height:"height",width:"width"},m0={$type:"Statement"},M0={$type:"Treemap",accDescr:"accDescr",accTitle:"accTitle",title:"title",TreemapRows:"TreemapRows"};o(pEe,"isTreemap");S(pEe,"isTreemap");dB={$type:"TreemapRow",indent:"indent",item:"item"},e5={$type:"TreeNode",indent:"indent",name:"name"},M1={$type:"TreeView",accDescr:"accDescr",accTitle:"accTitle",nodes:"nodes",title:"title"},oa={$type:"Wardley",accDescr:"accDescr",accelerators:"accelerators",accTitle:"accTitle",anchors:"anchors",annotation:"annotation",annotations:"annotations",components:"components",deaccelerators:"deaccelerators",evolution:"evolution",evolves:"evolves",links:"links",notes:"notes",pipelines:"pipelines",size:"size",title:"title"};o(mEe,"isWardley");S(mEe,"isWardley");gEe=class extends p${static{o(this,"MermaidAstReflection")}constructor(){super(...arguments),this.types={Accelerator:{name:TE.$type,properties:{name:{name:TE.name},x:{name:TE.x},y:{name:TE.y}},superTypes:[]},Anchor:{name:CE.$type,properties:{evolution:{name:CE.evolution},name:{name:CE.name},visibility:{name:CE.visibility}},superTypes:[]},Annotation:{name:C2.$type,properties:{number:{name:C2.number},text:{name:C2.text},x:{name:C2.x},y:{name:C2.y}},superTypes:[]},Annotations:{name:rB.$type,properties:{x:{name:rB.x},y:{name:rB.y}},superTypes:[]},Architecture:{name:Yc.$type,properties:{accDescr:{name:Yc.accDescr},accTitle:{name:Yc.accTitle},edges:{name:Yc.edges,defaultValue:[]},groups:{name:Yc.groups,defaultValue:[]},junctions:{name:Yc.junctions,defaultValue:[]},services:{name:Yc.services,defaultValue:[]},title:{name:Yc.title}},superTypes:[]},Axis:{name:kE.$type,properties:{label:{name:kE.label},name:{name:kE.name}},superTypes:[]},Branch:{name:eT.$type,properties:{name:{name:eT.name},order:{name:eT.order}},superTypes:[m0.$type]},Checkout:{name:Gye.$type,properties:{branch:{name:Gye.branch}},superTypes:[m0.$type]},CherryPicking:{name:wE.$type,properties:{id:{name:wE.id},parent:{name:wE.parent},tags:{name:wE.tags,defaultValue:[]}},superTypes:[m0.$type]},ClassDefStatement:{name:iB.$type,properties:{className:{name:iB.className},styleText:{name:iB.styleText}},superTypes:[]},Commit:{name:_0.$type,properties:{id:{name:_0.id},message:{name:_0.message},tags:{name:_0.tags,defaultValue:[]},type:{name:_0.type}},superTypes:[m0.$type]},Common:{name:SE.$type,properties:{accDescr:{name:SE.accDescr},accTitle:{name:SE.accTitle},title:{name:SE.title}},superTypes:[]},Component:{name:s0.$type,properties:{decorator:{name:s0.decorator},evolution:{name:s0.evolution},inertia:{name:s0.inertia,defaultValue:!1},label:{name:s0.label},name:{name:s0.name},visibility:{name:s0.visibility}},superTypes:[]},Curve:{name:EE.$type,properties:{entries:{name:EE.entries,defaultValue:[]},label:{name:EE.label},name:{name:EE.name}},superTypes:[]},Deaccelerator:{name:AE.$type,properties:{name:{name:AE.name},x:{name:AE.x},y:{name:AE.y}},superTypes:[]},Decorator:{name:Vye.$type,properties:{strategy:{name:Vye.strategy}},superTypes:[]},Direction:{name:w1.$type,properties:{accDescr:{name:w1.accDescr},accTitle:{name:w1.accTitle},dir:{name:w1.dir},statements:{name:w1.statements,defaultValue:[]},title:{name:w1.title}},superTypes:[df.$type]},Edge:{name:Wc.$type,properties:{lhsDir:{name:Wc.lhsDir},lhsGroup:{name:Wc.lhsGroup,defaultValue:!1},lhsId:{name:Wc.lhsId},lhsInto:{name:Wc.lhsInto,defaultValue:!1},rhsDir:{name:Wc.rhsDir},rhsGroup:{name:Wc.rhsGroup,defaultValue:!1},rhsId:{name:Wc.rhsId},rhsInto:{name:Wc.rhsInto,defaultValue:!1},title:{name:Wc.title}},superTypes:[]},EmDataEntity:{name:p0.$type,properties:{dataBlockValue:{name:p0.dataBlockValue},dataType:{name:p0.dataType},name:{name:p0.name}},superTypes:[]},EmFrame:{name:af.$type,properties:{},superTypes:[]},EmGwt:{name:k2.$type,properties:{givenStatements:{name:k2.givenStatements,defaultValue:[]},sourceFrame:{name:k2.sourceFrame,referenceType:af.$type},thenStatements:{name:k2.thenStatements,defaultValue:[]},whenStatements:{name:k2.whenStatements,defaultValue:[]}},superTypes:[]},EmGwtStatement:{name:Wye.$type,properties:{entityIdentifier:{name:Wye.entityIdentifier,referenceType:nB.$type}},superTypes:[]},EmModelEntity:{name:nB.$type,properties:{name:{name:nB.name}},superTypes:[]},EmNoteEntity:{name:_E.$type,properties:{dataBlockValue:{name:_E.dataBlockValue},dataType:{name:_E.dataType},sourceFrame:{name:_E.sourceFrame,referenceType:af.$type}},superTypes:[]},EmResetFrame:{name:ih.$type,properties:{dataInlineValue:{name:ih.dataInlineValue},dataReference:{name:ih.dataReference,referenceType:p0.$type},dataType:{name:ih.dataType},entityIdentifier:{name:ih.entityIdentifier},modelEntityType:{name:ih.modelEntityType},name:{name:ih.name},sourceFrames:{name:ih.sourceFrames,defaultValue:[],referenceType:af.$type}},superTypes:[af.$type]},EmTimeFrame:{name:nf.$type,properties:{dataInlineValue:{name:nf.dataInlineValue},dataReference:{name:nf.dataReference,referenceType:p0.$type},dataType:{name:nf.dataType},entityIdentifier:{name:nf.entityIdentifier},modelEntityType:{name:nf.modelEntityType},name:{name:nf.name},sourceFrames:{name:nf.sourceFrames,defaultValue:[],referenceType:af.$type}},superTypes:[af.$type]},Entry:{name:aB.$type,properties:{axis:{name:aB.axis,referenceType:kE.$type},value:{name:aB.value}},superTypes:[]},EventModel:{name:Uc.$type,properties:{accDescr:{name:Uc.accDescr},accTitle:{name:Uc.accTitle},dataEntities:{name:Uc.dataEntities,defaultValue:[]},frames:{name:Uc.frames,defaultValue:[]},gwtEntities:{name:Uc.gwtEntities,defaultValue:[]},modelEntities:{name:Uc.modelEntities,defaultValue:[]},noteEntities:{name:Uc.noteEntities,defaultValue:[]},title:{name:Uc.title}},superTypes:[]},Evolution:{name:qye.$type,properties:{stages:{name:qye.stages,defaultValue:[]}},superTypes:[]},EvolutionStage:{name:DE.$type,properties:{boundary:{name:DE.boundary},name:{name:DE.name},secondName:{name:DE.secondName}},superTypes:[]},Evolve:{name:sB.$type,properties:{component:{name:sB.component},target:{name:sB.target}},superTypes:[]},GitGraph:{name:df.$type,properties:{accDescr:{name:df.accDescr},accTitle:{name:df.accTitle},statements:{name:df.statements,defaultValue:[]},title:{name:df.title}},superTypes:[]},Group:{name:w2.$type,properties:{icon:{name:w2.icon},id:{name:w2.id},in:{name:w2.in},title:{name:w2.title}},superTypes:[]},Info:{name:G1.$type,properties:{accDescr:{name:G1.accDescr},accTitle:{name:G1.accTitle},title:{name:G1.title}},superTypes:[]},Item:{name:S2.$type,properties:{classSelector:{name:S2.classSelector},name:{name:S2.name}},superTypes:[]},Junction:{name:oB.$type,properties:{id:{name:oB.id},in:{name:oB.in}},superTypes:[]},Label:{name:E2.$type,properties:{negX:{name:E2.negX,defaultValue:!1},negY:{name:E2.negY,defaultValue:!1},offsetX:{name:E2.offsetX},offsetY:{name:E2.offsetY}},superTypes:[]},Leaf:{name:RE.$type,properties:{classSelector:{name:RE.classSelector},name:{name:RE.name},value:{name:RE.value}},superTypes:[S2.$type]},Link:{name:o0.$type,properties:{arrow:{name:o0.arrow},from:{name:o0.from},fromPort:{name:o0.fromPort},linkLabel:{name:o0.linkLabel},to:{name:o0.to},toPort:{name:o0.toPort}},superTypes:[]},Merge:{name:D0.$type,properties:{branch:{name:D0.branch},id:{name:D0.id},tags:{name:D0.tags,defaultValue:[]},type:{name:D0.type}},superTypes:[m0.$type]},Note:{name:LE.$type,properties:{evolution:{name:LE.evolution},text:{name:LE.text},visibility:{name:LE.visibility}},superTypes:[]},Option:{name:lB.$type,properties:{name:{name:lB.name},value:{name:lB.value,defaultValue:!1}},superTypes:[]},Packet:{name:R0.$type,properties:{accDescr:{name:R0.accDescr},accTitle:{name:R0.accTitle},blocks:{name:R0.blocks,defaultValue:[]},title:{name:R0.title}},superTypes:[]},PacketBlock:{name:L0.$type,properties:{bits:{name:L0.bits},end:{name:L0.end},label:{name:L0.label},start:{name:L0.start}},superTypes:[]},Pie:{name:ff.$type,properties:{accDescr:{name:ff.accDescr},accTitle:{name:ff.accTitle},sections:{name:ff.sections,defaultValue:[]},showData:{name:ff.showData,defaultValue:!1},title:{name:ff.title}},superTypes:[]},PieSection:{name:tT.$type,properties:{label:{name:tT.label},value:{name:tT.value}},superTypes:[]},Pipeline:{name:cB.$type,properties:{components:{name:cB.components,defaultValue:[]},parent:{name:cB.parent}},superTypes:[]},PipelineComponent:{name:ME.$type,properties:{evolution:{name:ME.evolution},label:{name:ME.label},name:{name:ME.name}},superTypes:[]},Radar:{name:sf.$type,properties:{accDescr:{name:sf.accDescr},accTitle:{name:sf.accTitle},axes:{name:sf.axes,defaultValue:[]},curves:{name:sf.curves,defaultValue:[]},options:{name:sf.options,defaultValue:[]},title:{name:sf.title}},superTypes:[]},Section:{name:uB.$type,properties:{classSelector:{name:uB.classSelector},name:{name:uB.name}},superTypes:[S2.$type]},Service:{name:S1.$type,properties:{icon:{name:S1.icon},iconText:{name:S1.iconText},id:{name:S1.id},in:{name:S1.in},title:{name:S1.title}},superTypes:[]},Size:{name:hB.$type,properties:{height:{name:hB.height},width:{name:hB.width}},superTypes:[]},Statement:{name:m0.$type,properties:{},superTypes:[]},TreeNode:{name:e5.$type,properties:{indent:{name:e5.indent},name:{name:e5.name}},superTypes:[]},TreeView:{name:M1.$type,properties:{accDescr:{name:M1.accDescr},accTitle:{name:M1.accTitle},nodes:{name:M1.nodes,defaultValue:[]},title:{name:M1.title}},superTypes:[]},Treemap:{name:M0.$type,properties:{accDescr:{name:M0.accDescr},accTitle:{name:M0.accTitle},title:{name:M0.title},TreemapRows:{name:M0.TreemapRows,defaultValue:[]}},superTypes:[]},TreemapRow:{name:dB.$type,properties:{indent:{name:dB.indent},item:{name:dB.item}},superTypes:[]},Wardley:{name:oa.$type,properties:{accDescr:{name:oa.accDescr},accelerators:{name:oa.accelerators,defaultValue:[]},accTitle:{name:oa.accTitle},anchors:{name:oa.anchors,defaultValue:[]},annotation:{name:oa.annotation,defaultValue:[]},annotations:{name:oa.annotations,defaultValue:[]},components:{name:oa.components,defaultValue:[]},deaccelerators:{name:oa.deaccelerators,defaultValue:[]},evolution:{name:oa.evolution},evolves:{name:oa.evolves,defaultValue:[]},links:{name:oa.links,defaultValue:[]},notes:{name:oa.notes,defaultValue:[]},pipelines:{name:oa.pipelines,defaultValue:[]},size:{name:oa.size},title:{name:oa.title}},superTypes:[]}}}static{S(this,"MermaidAstReflection")}},bo=new gEe,Dvt=S(()=>Uye??(Uye=xo(`{"$type":"Grammar","isDeclared":true,"name":"ArchitectureGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[(?:\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'|[\\\\w ]+)\\\\]/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}`)),"ArchitectureGrammarGrammar"),Rvt=S(()=>Hye??(Hye=xo('{"$type":"Grammar","isDeclared":true,"name":"EventModeling","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","entry":true,"name":"EventModel","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"eventmodeling"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"frames","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"dataEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"noteEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"gwtEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmModelEntityType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rmo"},{"$type":"Keyword","value":"readmodel"},{"$type":"Keyword","value":"ui"},{"$type":"Keyword","value":"cmd"},{"$type":"Keyword","value":"command"},{"$type":"Keyword","value":"evt"},{"$type":"Keyword","value":"event"},{"$type":"Keyword","value":"pcr"},{"$type":"Keyword","value":"processor"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmDataType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"json"},{"$type":"Keyword","value":"jsobj"},{"$type":"Keyword","value":"figma"},{"$type":"Keyword","value":"salt"},{"$type":"Keyword","value":"uri"},{"$type":"Keyword","value":"md"},{"$type":"Keyword","value":"html"},{"$type":"Keyword","value":"text"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"EmDataInline","definition":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"`"},{"$type":"Assignment","feature":"dataType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":"`"}],"cardinality":"?"},{"$type":"Assignment","feature":"dataInlineValue","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"EmDataBlock","definition":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"`"},{"$type":"Assignment","feature":"dataType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":"`"}],"cardinality":"?"},{"$type":"Assignment","feature":"dataBlockValue","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"QualifiedName","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"."},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmTimeFrame","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"tf"},{"$type":"Keyword","value":"timeframe"}]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntityType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"->>"},{"$type":"Assignment","feature":"sourceFrames","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"[["},{"$type":"Assignment","feature":"dataReference","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@10"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"]]"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmResetFrame","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rf"},{"$type":"Keyword","value":"resetframe"}]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntityType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"->>"},{"$type":"Assignment","feature":"sourceFrames","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"[["},{"$type":"Assignment","feature":"dataReference","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@10"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"]]"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmFrame","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmModelEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"entity"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmDataEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"data"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmNoteEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"note"},{"$type":"Assignment","feature":"sourceFrame","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmGwt","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"gwt"},{"$type":"Assignment","feature":"sourceFrame","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"given"},{"$type":"Assignment","feature":"givenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"},{"$type":"Group","elements":[{"$type":"Keyword","value":"when"},{"$type":"Assignment","feature":"whenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"}],"cardinality":"?"},{"$type":"Keyword","value":"then"},{"$type":"Assignment","feature":"thenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmGwtStatement","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@9"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EM_EID","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EM_FI","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"EM_ID","definition":{"$type":"RegexToken","regex":"/[_a-zA-Z][\\\\w_]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_FID","definition":{"$type":"RegexToken","regex":"/\\\\d{1,3}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_DATA_INLINE","definition":{"$type":"RegexToken","regex":"/\\\\{(.*)\\\\}|\\"(.*)\\"|\'(.*)\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_DATA_BLOCK","definition":{"$type":"RegexToken","regex":"/\\\\{[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?\\\\}(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"EM_WS","definition":{"$type":"RegexToken","regex":"/\\\\s+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_SL_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\/[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"imports":[],"types":[]}')),"EventModelingGrammar"),Lvt=S(()=>Yye??(Yye=xo(`{"$type":"Grammar","isDeclared":true,"name":"GitGraphGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}`)),"GitGraphGrammarGrammar"),Mvt=S(()=>jye??(jye=xo(`{"$type":"Grammar","isDeclared":true,"name":"InfoGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"InfoGrammarGrammar"),Nvt=S(()=>Xye??(Xye=xo(`{"$type":"Grammar","isDeclared":true,"name":"PacketGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"PacketGrammarGrammar"),Ivt=S(()=>Kye??(Kye=xo(`{"$type":"Grammar","isDeclared":true,"name":"PieGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"PieGrammarGrammar"),Ovt=S(()=>Zye??(Zye=xo(`{"$type":"Grammar","isDeclared":true,"name":"RadarGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}},"isMulti":false}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"types":[]}`)),"RadarGrammarGrammar"),Pvt=S(()=>Qye??(Qye=xo(`{"$type":"Grammar","isDeclared":true,"name":"TreemapGrammar","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@15"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"imports":[],"types":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammarGrammar"),Bvt=S(()=>Jye??(Jye=xo(`{"$type":"Grammar","isDeclared":true,"name":"TreeViewGrammar","rules":[{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"TreeView","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"treeView-beta"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"nodes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"TreeNode","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"TreeView","attributes":[{"$type":"TypeAttribute","name":"nodes","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@9"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"imports":[],"types":[],"$comment":"/**\\n * TreeView grammar for Langium\\n * Converted from treemap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treeView declaration.\\n */"}`)),"TreeViewGrammarGrammar"),Fvt=S(()=>eve??(eve=xo(`{"$type":"Grammar","isDeclared":true,"name":"WardleyGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Wardley","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@42"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"size","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"anchors","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"components","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"links","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"evolves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"pipelines","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"notes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"annotations","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Assignment","feature":"annotation","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accelerators","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Assignment","feature":"deaccelerators","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Size","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"width","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"height","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Evolution","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"Assignment","feature":"stages","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]},{"$type":"Assignment","feature":"stages","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EvolutionStage","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"@"},{"$type":"Assignment","feature":"boundary","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}],"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"/"},{"$type":"Assignment","feature":"secondName","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Anchor","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Component","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"decorator","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"inertia","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"inertia","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]}},{"$type":"Keyword","value":")"}]}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Label","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"negX","operator":"?=","terminal":{"$type":"Keyword","value":"-"},"cardinality":"?"},{"$type":"Assignment","feature":"offsetX","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"negY","operator":"?=","terminal":{"$type":"Keyword","value":"-"},"cardinality":"?"},{"$type":"Assignment","feature":"offsetY","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Decorator","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"strategy","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Link","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"from","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"fromPort","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"arrow","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]},"cardinality":"?"},{"$type":"Assignment","feature":"to","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"toPort","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"linkLabel","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Evolve","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@32"},"arguments":[]},{"$type":"Assignment","feature":"component","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Pipeline","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@33"},"arguments":[]},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"components","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"+"},{"$type":"Keyword","value":"}"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PipelineComponent","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Note","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]},{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Annotations","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Annotation","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@36"},"arguments":[]},{"$type":"Assignment","feature":"number","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"CoordinateValue","dataType":"number","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Accelerator","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Deaccelerator","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@38"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"WARDLEY_NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"->"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_PORT","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+<>"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+>"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+<"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_ARROW","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"-->"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"-.->"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":">"},"parenthesized":false}],"parenthesized":false},{"$type":"RegexToken","regex":"/\\\\+'[^']*'<>/","parenthesized":false}],"parenthesized":false},{"$type":"RegexToken","regex":"/\\\\+'[^']*'/","parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_LABEL","definition":{"$type":"RegexToken","regex":"/;[^\\\\n\\\\r]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRATEGY","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"build"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"buy"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"outsource"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"market"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_WARDLEY","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"wardley-beta"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_SIZE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"size"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_EVOLUTION","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"evolution"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANCHOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"anchor"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_COMPONENT","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"component"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_LABEL","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"label"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_INERTIA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"inertia"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_EVOLVE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"evolve"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_PIPELINE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"pipeline"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_NOTE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"note"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANNOTATIONS","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"annotations"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANNOTATION","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"annotation"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ACCELERATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"accelerator"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_DEACCELERATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"deaccelerator"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NAME_WITH_SPACES","definition":{"$type":"RegexToken","regex":"/(?!title\\\\s|accTitle|accDescr)[A-Za-z](?:[A-Za-z0-9_()&]|-(?!>))*(?:[ \\\\t]+[A-Za-z(](?:[A-Za-z0-9_()&]|-(?!>))*)*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@44"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@45"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@46"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@47"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@48"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}`)),"WardleyGrammarGrammar"),$vt={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},zvt={languageId:"eventmodeling",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Gvt={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Vvt={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Wvt={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},qvt={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Uvt={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Hvt={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Yvt={languageId:"treeView",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},jvt={languageId:"wardley",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},xn={AstReflection:S(()=>new gEe,"AstReflection")},YG={Grammar:S(()=>Dvt(),"Grammar"),LanguageMetaData:S(()=>$vt,"LanguageMetaData"),parser:{}},jG={Grammar:S(()=>Rvt(),"Grammar"),LanguageMetaData:S(()=>zvt,"LanguageMetaData"),parser:{}},XG={Grammar:S(()=>Lvt(),"Grammar"),LanguageMetaData:S(()=>Gvt,"LanguageMetaData"),parser:{}},KG={Grammar:S(()=>Mvt(),"Grammar"),LanguageMetaData:S(()=>Vvt,"LanguageMetaData"),parser:{}},ZG={Grammar:S(()=>Nvt(),"Grammar"),LanguageMetaData:S(()=>Wvt,"LanguageMetaData"),parser:{}},QG={Grammar:S(()=>Ivt(),"Grammar"),LanguageMetaData:S(()=>qvt,"LanguageMetaData"),parser:{}},JG={Grammar:S(()=>Ovt(),"Grammar"),LanguageMetaData:S(()=>Uvt,"LanguageMetaData"),parser:{}},eV={Grammar:S(()=>Pvt(),"Grammar"),LanguageMetaData:S(()=>Hvt,"LanguageMetaData"),parser:{}},tV={Grammar:S(()=>Bvt(),"Grammar"),LanguageMetaData:S(()=>Yvt,"LanguageMetaData"),parser:{}},rV={Grammar:S(()=>Fvt(),"Grammar"),LanguageMetaData:S(()=>jvt,"LanguageMetaData"),parser:{}},Xvt=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,Kvt=/accTitle[\t ]*:([^\n\r]*)/,Zvt=/title([\t ][^\n\r]*|)/,Qvt={ACC_DESCR:Xvt,ACC_TITLE:Kvt,TITLE:Zvt},nl=class extends SG{static{o(this,"AbstractMermaidValueConverter")}static{S(this,"AbstractMermaidValueConverter")}runConverter(e,t,r){let i=this.runCommonConverter(e,t,r);return i===void 0&&(i=this.runCustomConverter(e,t,r)),i===void 0?super.runConverter(e,t,r):i}runCommonConverter(e,t,r){let i=Qvt[e.name];if(i===void 0)return;let n=i.exec(t);if(n!==null){if(n[1]!==void 0)return n[1].trim().replace(/[\t ]{2,}/gm," ");if(n[2]!==void 0)return n[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},Kl=class extends nl{static{o(this,"CommonValueConverter")}static{S(this,"CommonValueConverter")}runCustomConverter(e,t,r){}},Ln=class extends qA{static{o(this,"AbstractMermaidTokenBuilder")}static{S(this,"AbstractMermaidTokenBuilder")}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){let i=super.buildKeywordTokens(e,t,r);return i.forEach(n=>{this.keywords.has(n.name)&&n.PATTERN!==void 0&&(n.PATTERN=new RegExp(n.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),i}},Jvt=class extends Ln{static{o(this,"CommonTokenBuilder")}static{S(this,"CommonTokenBuilder")}};});function t6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),JG,e6);return t.ServiceRegistry.register(r),{shared:t,Radar:r}}var ext,e6,iV=z(()=>{"use strict";pn();ext=class extends Ln{static{o(this,"RadarTokenBuilder")}static{S(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},e6={parser:{TokenBuilder:S(()=>new ext,"TokenBuilder"),ValueConverter:S(()=>new Kl,"ValueConverter")}};o(t6,"createRadarServices");S(t6,"createRadarServices")});function yEe(e){let t=e.validation.TreemapValidator,r=e.validation.ValidationRegistry;if(r){let i={Treemap:t.checkSingleRoot.bind(t)};r.register(i,t)}}function i6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),eV,r6);return t.ServiceRegistry.register(r),yEe(r),{shared:t,Treemap:r}}var txt,rxt,ixt,nxt,r6,nV=z(()=>{"use strict";pn();txt=class extends Ln{static{o(this,"TreemapTokenBuilder")}static{S(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},rxt=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,ixt=class extends nl{static{o(this,"TreemapValueConverter")}static{S(this,"TreemapValueConverter")}runCustomConverter(e,t,r){if(e.name==="NUMBER2")return parseFloat(t.replace(/,/g,""));if(e.name==="SEPARATOR")return t.substring(1,t.length-1);if(e.name==="STRING2")return t.substring(1,t.length-1);if(e.name==="INDENTATION")return t.length;if(e.name==="ClassDef"){if(typeof t!="string")return t;let i=rxt.exec(t);if(i)return{$type:"ClassDefStatement",className:i[1],styleText:i[2]||void 0}}}};o(yEe,"registerValidationChecks");S(yEe,"registerValidationChecks");nxt=class{static{o(this,"TreemapValidator")}static{S(this,"TreemapValidator")}checkSingleRoot(e,t){let r;for(let i of e.TreemapRows)i.item&&(r===void 0&&i.indent===void 0?r=0:i.indent===void 0?t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}):r!==void 0&&r>=parseInt(i.indent,10)&&t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}))}},r6={parser:{TokenBuilder:S(()=>new txt,"TokenBuilder"),ValueConverter:S(()=>new ixt,"ValueConverter")},validation:{TreemapValidator:S(()=>new nxt,"TreemapValidator")}};o(i6,"createTreemapServices");S(i6,"createTreemapServices")});function a6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),rV,n6);return t.ServiceRegistry.register(r),{shared:t,Wardley:r}}var axt,n6,aV=z(()=>{"use strict";pn();axt=class extends nl{static{o(this,"WardleyValueConverter")}static{S(this,"WardleyValueConverter")}runCustomConverter(e,t,r){switch(e.name.toUpperCase()){case"LINK_LABEL":return t.substring(1).trim();default:return}}},n6={parser:{ValueConverter:S(()=>new axt,"ValueConverter")}};o(a6,"createWardleyServices");S(a6,"createWardleyServices")});function o6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),XG,s6);return t.ServiceRegistry.register(r),{shared:t,GitGraph:r}}var sxt,s6,sV=z(()=>{"use strict";pn();sxt=class extends Ln{static{o(this,"GitGraphTokenBuilder")}static{S(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},s6={parser:{TokenBuilder:S(()=>new sxt,"TokenBuilder"),ValueConverter:S(()=>new Kl,"ValueConverter")}};o(o6,"createGitGraphServices");S(o6,"createGitGraphServices")});function c6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),KG,l6);return t.ServiceRegistry.register(r),{shared:t,Info:r}}var oxt,l6,oV=z(()=>{"use strict";pn();oxt=class extends Ln{static{o(this,"InfoTokenBuilder")}static{S(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},l6={parser:{TokenBuilder:S(()=>new oxt,"TokenBuilder"),ValueConverter:S(()=>new Kl,"ValueConverter")}};o(c6,"createInfoServices");S(c6,"createInfoServices")});function h6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),ZG,u6);return t.ServiceRegistry.register(r),{shared:t,Packet:r}}var lxt,u6,lV=z(()=>{"use strict";pn();lxt=class extends Ln{static{o(this,"PacketTokenBuilder")}static{S(this,"PacketTokenBuilder")}constructor(){super(["packet"])}},u6={parser:{TokenBuilder:S(()=>new lxt,"TokenBuilder"),ValueConverter:S(()=>new Kl,"ValueConverter")}};o(h6,"createPacketServices");S(h6,"createPacketServices")});function f6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),QG,d6);return t.ServiceRegistry.register(r),{shared:t,Pie:r}}var cxt,uxt,d6,cV=z(()=>{"use strict";pn();cxt=class extends Ln{static{o(this,"PieTokenBuilder")}static{S(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},uxt=class extends nl{static{o(this,"PieValueConverter")}static{S(this,"PieValueConverter")}runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},d6={parser:{TokenBuilder:S(()=>new cxt,"TokenBuilder"),ValueConverter:S(()=>new uxt,"ValueConverter")}};o(f6,"createPieServices");S(f6,"createPieServices")});function m6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),tV,p6);return t.ServiceRegistry.register(r),{shared:t,TreeView:r}}var hxt,dxt,p6,uV=z(()=>{"use strict";pn();hxt=class extends nl{static{o(this,"TreeViewValueConverter")}static{S(this,"TreeViewValueConverter")}runCustomConverter(e,t,r){if(e.name==="INDENTATION")return t?.length||0;if(e.name==="STRING2")return t.substring(1,t.length-1)}},dxt=class extends Ln{static{o(this,"TreeViewTokenBuilder")}static{S(this,"TreeViewTokenBuilder")}constructor(){super(["treeView-beta"])}},p6={parser:{TokenBuilder:S(()=>new dxt,"TokenBuilder"),ValueConverter:S(()=>new hxt,"ValueConverter")}};o(m6,"createTreeViewServices");S(m6,"createTreeViewServices")});function y6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),YG,g6);return t.ServiceRegistry.register(r),{shared:t,Architecture:r}}var fxt,pxt,g6,hV=z(()=>{"use strict";pn();fxt=class extends Ln{static{o(this,"ArchitectureTokenBuilder")}static{S(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},pxt=class extends nl{static{o(this,"ArchitectureValueConverter")}static{S(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){if(e.name==="ARCH_ICON")return t.replace(/[()]/g,"").trim();if(e.name==="ARCH_TEXT_ICON")return t.replace(/["()]/g,"");if(e.name==="ARCH_TITLE"){let i=t.replace(/^\[|]$/g,"").trim();return(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1),i=i.replace(/\\"/g,'"').replace(/\\'/g,"'")),i.trim()}}},g6={parser:{TokenBuilder:S(()=>new fxt,"TokenBuilder"),ValueConverter:S(()=>new pxt,"ValueConverter")}};o(y6,"createArchitectureServices");S(y6,"createArchitectureServices")});function CEe(e){let t=e.validation.EventModelingValidator,r=e.validation.ValidationRegistry;if(r){let i={EmTimeFrame:t.checkSourceFrameTypes.bind(t),EmResetFrame:t.checkSourceFrameTypes.bind(t)};r.register(i,t)}}function x6(e=fn){let t=Hr(nn(e),xn),r=Hr(rn({shared:t}),jG,v6);return t.ServiceRegistry.register(r),CEe(r),{shared:t,EventModel:r}}var mxt,vEe,xEe,dV,bEe,TEe,gxt,v6,fV=z(()=>{"use strict";pn();mxt=class extends Ln{static{o(this,"EventModelingTokenBuilder")}static{S(this,"EventModelingTokenBuilder")}constructor(){super(["eventmodeling"])}},vEe=new Set(["cmd","command"]),xEe=new Set(["evt","event"]),dV=new Set(["rmo","readmodel"]),bEe=new Set(["pcr","processor"]),TEe=new Set(["ui"]);o(CEe,"registerValidationChecks");S(CEe,"registerValidationChecks");gxt=class{static{o(this,"EventModelingValidator")}static{S(this,"EventModelingValidator")}checkSourceFrameTypes(e,t){e.sourceFrames.length!==0&&(vEe.has(e.modelEntityType)?this.validateSources(e,new Set([...TEe,...bEe]),"command","ui or processor",t):xEe.has(e.modelEntityType)?this.validateSources(e,vEe,"event","command",t):dV.has(e.modelEntityType)?this.validateSources(e,xEe,"read model","event",t):bEe.has(e.modelEntityType)?this.validateSources(e,dV,"processor","read model",t):TEe.has(e.modelEntityType)&&this.validateSources(e,dV,"ui","read model",t))}validateSources(e,t,r,i,n){for(let a of e.sourceFrames){let s=a.ref;s!==void 0&&!t.has(s.modelEntityType)&&n("error",`A ${r} can only receive input from a ${i}, not from '${s.modelEntityType}'.`,{node:e,property:"sourceFrames"})}}},v6={parser:{TokenBuilder:S(()=>new mxt,"TokenBuilder"),ValueConverter:S(()=>new Kl,"ValueConverter")},validation:{EventModelingValidator:S(()=>new gxt,"EventModelingValidator")}};o(x6,"createEventModelingServices");S(x6,"createEventModelingServices")});var kEe={};xr(kEe,{InfoModule:()=>l6,createInfoServices:()=>c6});var wEe=z(()=>{"use strict";oV();pn()});var SEe={};xr(SEe,{PacketModule:()=>u6,createPacketServices:()=>h6});var EEe=z(()=>{"use strict";lV();pn()});var AEe={};xr(AEe,{PieModule:()=>d6,createPieServices:()=>f6});var _Ee=z(()=>{"use strict";cV();pn()});var DEe={};xr(DEe,{TreeViewModule:()=>p6,createTreeViewServices:()=>m6});var REe=z(()=>{"use strict";uV();pn()});var LEe={};xr(LEe,{ArchitectureModule:()=>g6,createArchitectureServices:()=>y6});var MEe=z(()=>{"use strict";hV();pn()});var NEe={};xr(NEe,{GitGraphModule:()=>s6,createGitGraphServices:()=>o6});var IEe=z(()=>{"use strict";sV();pn()});var OEe={};xr(OEe,{EventModelingModule:()=>v6,createEventModelingServices:()=>x6});var PEe=z(()=>{"use strict";fV();pn()});var BEe={};xr(BEe,{RadarModule:()=>e6,createRadarServices:()=>t6});var FEe=z(()=>{"use strict";iV();pn()});var $Ee={};xr($Ee,{TreemapModule:()=>r6,createTreemapServices:()=>i6});var zEe=z(()=>{"use strict";nV();pn()});var GEe={};xr(GEe,{WardleyModule:()=>n6,createWardleyServices:()=>a6});var VEe=z(()=>{"use strict";aV();pn()});async function bn(e,t){let r=yxt[e];if(!r)throw new Error(`Unknown diagram type: ${e}`);al[e]||await r();let n=al[e].parse(t);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new vxt(n);return n.value}var al,yxt,vxt,sl=z(()=>{"use strict";iV();nV();aV();sV();oV();lV();cV();uV();hV();fV();pn();al={},yxt={info:S(async()=>{let{createInfoServices:e}=await Promise.resolve().then(()=>(wEe(),kEe)),t=e().Info.parser.LangiumParser;al.info=t},"info"),packet:S(async()=>{let{createPacketServices:e}=await Promise.resolve().then(()=>(EEe(),SEe)),t=e().Packet.parser.LangiumParser;al.packet=t},"packet"),pie:S(async()=>{let{createPieServices:e}=await Promise.resolve().then(()=>(_Ee(),AEe)),t=e().Pie.parser.LangiumParser;al.pie=t},"pie"),treeView:S(async()=>{let{createTreeViewServices:e}=await Promise.resolve().then(()=>(REe(),DEe)),t=e().TreeView.parser.LangiumParser;al.treeView=t},"treeView"),architecture:S(async()=>{let{createArchitectureServices:e}=await Promise.resolve().then(()=>(MEe(),LEe)),t=e().Architecture.parser.LangiumParser;al.architecture=t},"architecture"),gitGraph:S(async()=>{let{createGitGraphServices:e}=await Promise.resolve().then(()=>(IEe(),NEe)),t=e().GitGraph.parser.LangiumParser;al.gitGraph=t},"gitGraph"),eventmodeling:S(async()=>{let{createEventModelingServices:e}=await Promise.resolve().then(()=>(PEe(),OEe)),t=e().EventModel.parser.LangiumParser;al.eventmodeling=t},"eventmodeling"),radar:S(async()=>{let{createRadarServices:e}=await Promise.resolve().then(()=>(FEe(),BEe)),t=e().Radar.parser.LangiumParser;al.radar=t},"radar"),treemap:S(async()=>{let{createTreemapServices:e}=await Promise.resolve().then(()=>(zEe(),$Ee)),t=e().Treemap.parser.LangiumParser;al.treemap=t},"treemap"),wardley:S(async()=>{let{createWardleyServices:e}=await Promise.resolve().then(()=>(VEe(),GEe)),t=e().Wardley.parser.LangiumParser;al.wardley=t},"wardley")};o(bn,"parse");S(bn,"parse");vxt=class extends Error{static{o(this,"MermaidParseError")}constructor(e){let t=e.lexerErrors.map(i=>{let n=i.line!==void 0&&!isNaN(i.line)?i.line:"?",a=i.column!==void 0&&!isNaN(i.column)?i.column:"?";return`Lexer error on line ${n}, column ${a}: ${i.message}`}).join(` +`),r=e.parserErrors.map(i=>{let n=i.token.startLine!==void 0&&!isNaN(i.token.startLine)?i.token.startLine:"?",a=i.token.startColumn!==void 0&&!isNaN(i.token.startColumn)?i.token.startColumn:"?";return`Parse error on line ${n}, column ${a}: ${i.message}`}).join(` +`);super(`Parsing failed: ${t} ${r}`),this.result=e}static{S(this,"MermaidParseError")}}});function ca(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}var au=z(()=>{"use strict";o(ca,"populateCommonDb")});var si,b6=z(()=>{"use strict";si={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var wf,T6=z(()=>{"use strict";wf=class{constructor(t){this.init=t;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function pV(){return RM({length:7})}function bxt(e,t){let r=Object.create(null);return e.reduce((i,n)=>{let a=t(n);return r[a]||(r[a]=!0,i.push(n)),i},[])}function WEe(e,t,r){let i=e.indexOf(t);i===-1?e.push(r):e.splice(i,1,r)}function UEe(e){let t=e.reduce((n,a)=>n.seq>a.seq?n:a,e[0]),r="";e.forEach(function(n){n===t?r+=" *":r+=" |"});let i=[r,t.id,t.seq];for(let n in Pt.records.branches)Pt.records.branches.get(n)===t.id&&i.push(n);if(Z.debug(i.join(" ")),t.parents&&t.parents.length==2&&t.parents[0]&&t.parents[1]){let n=Pt.records.commits.get(t.parents[0]);WEe(e,t,n),t.parents[1]&&e.push(Pt.records.commits.get(t.parents[1]))}else{if(t.parents.length==0)return;if(t.parents[0]){let n=Pt.records.commits.get(t.parents[0]);WEe(e,t,n)}}e=bxt(e,n=>n.id),UEe(e)}var xxt,um,Pt,Txt,Cxt,kxt,wxt,Sxt,Ext,Axt,qEe,_xt,Dxt,Rxt,Lxt,Mxt,HEe,Nxt,Ixt,Oxt,C6,mV=z(()=>{"use strict";St();Xt();br();Ir();Ci();b6();T6();Bn();xxt=or.gitGraph,um=o(()=>Gr({...xxt,...Nt().gitGraph}),"getConfig"),Pt=new wf(()=>{let e=um(),t=e.mainBranchName,r=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:r}]]),branches:new Map([[t,null]]),currBranch:t,direction:"LR",seq:0,options:{}}});o(pV,"getID");o(bxt,"uniqBy");Txt=o(function(e){Pt.records.direction=e},"setDirection"),Cxt=o(function(e){Z.debug("options str",e),e=e?.trim(),e=e||"{}";try{Pt.records.options=JSON.parse(e)}catch(t){Z.error("error while parsing gitGraph options",t.message)}},"setOptions"),kxt=o(function(){return Pt.records.options},"getOptions"),wxt=o(function(e){let t=e.msg,r=e.id,i=e.type,n=e.tags;Z.info("commit",t,r,i,n),Z.debug("Entering commit:",t,r,i,n);let a=um();r=vt.sanitizeText(r,a),t=vt.sanitizeText(t,a),n=n?.map(l=>vt.sanitizeText(l,a));let s={id:r||Pt.records.seq+"-"+pV(),message:t,seq:Pt.records.seq++,type:i??si.NORMAL,tags:n??[],parents:Pt.records.head==null?[]:[Pt.records.head.id],branch:Pt.records.currBranch};Pt.records.head=s,Z.info("main branch",a.mainBranchName),Pt.records.commits.has(s.id)&&Z.warn(`Commit ID ${s.id} already exists`),Pt.records.commits.set(s.id,s),Pt.records.branches.set(Pt.records.currBranch,s.id),Z.debug("in pushCommit "+s.id)},"commit"),Sxt=o(function(e){let t=e.name,r=e.order;if(t=vt.sanitizeText(t,um()),Pt.records.branches.has(t))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${t}")`);Pt.records.branches.set(t,Pt.records.head!=null?Pt.records.head.id:null),Pt.records.branchConfig.set(t,{name:t,order:r}),qEe(t),Z.debug("in createBranch")},"branch"),Ext=o(e=>{let t=e.branch,r=e.id,i=e.type,n=e.tags,a=um();t=vt.sanitizeText(t,a),r&&(r=vt.sanitizeText(r,a));let s=Pt.records.branches.get(Pt.records.currBranch),l=Pt.records.branches.get(t),u=s?Pt.records.commits.get(s):void 0,h=l?Pt.records.commits.get(l):void 0;if(u&&h&&u.branch===t)throw new Error(`Cannot merge branch '${t}' into itself.`);if(Pt.records.currBranch===t){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${Pt.records.currBranch})has no commits`);throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["commit"]},p}if(!Pt.records.branches.has(t)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:[`branch ${t}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["branch abc"]},p}if(r&&Pt.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom id");throw p.hash={text:`merge ${t} ${r} ${i} ${n?.join(" ")}`,token:`merge ${t} ${r} ${i} ${n?.join(" ")}`,expected:[`merge ${t} ${r}_UNIQUE ${i} ${n?.join(" ")}`]},p}let d=l||"",f={id:r||`${Pt.records.seq}-${pV()}`,message:`merged branch ${t} into ${Pt.records.currBranch}`,seq:Pt.records.seq++,parents:Pt.records.head==null?[]:[Pt.records.head.id,d],branch:Pt.records.currBranch,type:si.MERGE,customType:i,customId:!!r,tags:n??[]};Pt.records.head=f,Pt.records.commits.set(f.id,f),Pt.records.branches.set(Pt.records.currBranch,f.id),Z.debug(Pt.records.branches),Z.debug("in mergeBranch")},"merge"),Axt=o(function(e){let t=e.id,r=e.targetId,i=e.tags,n=e.parent;Z.debug("Entering cherryPick:",t,r,i);let a=um();if(t=vt.sanitizeText(t,a),r=vt.sanitizeText(r,a),i=i?.map(u=>vt.sanitizeText(u,a)),n=vt.sanitizeText(n,a),!t||!Pt.records.commits.has(t)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:["cherry-pick abc"]},u}let s=Pt.records.commits.get(t);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(n&&!(Array.isArray(s.parents)&&s.parents.includes(n)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===si.MERGE&&!n)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!Pt.records.commits.has(r)){if(l===Pt.records.currBranch){let f=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw f.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:["cherry-pick abc"]},f}let u=Pt.records.branches.get(Pt.records.currBranch);if(u===void 0||!u){let f=new Error(`Incorrect usage of "cherry-pick". Current branch (${Pt.records.currBranch})has no commits`);throw f.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:["cherry-pick abc"]},f}let h=Pt.records.commits.get(u);if(h===void 0||!h){let f=new Error(`Incorrect usage of "cherry-pick". Current branch (${Pt.records.currBranch})has no commits`);throw f.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:["cherry-pick abc"]},f}let d={id:Pt.records.seq+"-"+pV(),message:`cherry-picked ${s?.message} into ${Pt.records.currBranch}`,seq:Pt.records.seq++,parents:Pt.records.head==null?[]:[Pt.records.head.id,s.id],branch:Pt.records.currBranch,type:si.CHERRY_PICK,tags:i?i.filter(Boolean):[`cherry-pick:${s.id}${s.type===si.MERGE?`|parent:${n}`:""}`]};Pt.records.head=d,Pt.records.commits.set(d.id,d),Pt.records.branches.set(Pt.records.currBranch,d.id),Z.debug(Pt.records.branches),Z.debug("in cherryPick")}},"cherryPick"),qEe=o(function(e){if(e=vt.sanitizeText(e,um()),Pt.records.branches.has(e)){Pt.records.currBranch=e;let t=Pt.records.branches.get(Pt.records.currBranch);t===void 0||!t?Pt.records.head=null:Pt.records.head=Pt.records.commits.get(t)??null}else{let t=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},"checkout");o(WEe,"upsert");o(UEe,"prettyPrintCommitHistory");_xt=o(function(){Z.debug(Pt.records.commits);let e=HEe()[0];UEe([e])},"prettyPrint"),Dxt=o(function(){Pt.reset(),gr()},"clear"),Rxt=o(function(){return[...Pt.records.branchConfig.values()].map((t,r)=>t.order!==null&&t.order!==void 0?t:{...t,order:parseFloat(`0.${r}`)}).sort((t,r)=>(t.order??0)-(r.order??0)).map(({name:t})=>({name:t}))},"getBranchesAsObjArray"),Lxt=o(function(){return Pt.records.branches},"getBranches"),Mxt=o(function(){return Pt.records.commits},"getCommits"),HEe=o(function(){let e=[...Pt.records.commits.values()];return e.forEach(function(t){Z.debug(t.id)}),e.sort((t,r)=>t.seq-r.seq),e},"getCommitsArray"),Nxt=o(function(){return Pt.records.currBranch},"getCurrentBranch"),Ixt=o(function(){return Pt.records.direction},"getDirection"),Oxt=o(function(){return Pt.records.head},"getHead"),C6={commitType:si,getConfig:um,setDirection:Txt,setOptions:Cxt,getOptions:kxt,commit:wxt,branch:Sxt,merge:Ext,cherryPick:Axt,checkout:qEe,prettyPrint:_xt,clear:Dxt,getBranchesAsObjArray:Rxt,getBranches:Lxt,getCommits:Mxt,getCommitsArray:HEe,getCurrentBranch:Nxt,getDirection:Ixt,getHead:Oxt,setAccTitle:Cr,getAccTitle:kr,getAccDescription:Sr,setAccDescription:wr,setDiagramTitle:Ar,getDiagramTitle:Er}});var Pxt,Bxt,Fxt,$xt,zxt,Gxt,Vxt,YEe,jEe=z(()=>{"use strict";sl();St();au();mV();b6();Pxt=o((e,t)=>{ca(e,t),e.dir&&t.setDirection(e.dir);for(let r of e.statements)Bxt(r,t)},"populate"),Bxt=o((e,t)=>{let i={Commit:o(n=>t.commit(Fxt(n)),"Commit"),Branch:o(n=>t.branch($xt(n)),"Branch"),Merge:o(n=>t.merge(zxt(n)),"Merge"),Checkout:o(n=>t.checkout(Gxt(n)),"Checkout"),CherryPicking:o(n=>t.cherryPick(Vxt(n)),"CherryPicking")}[e.$type];i?i(e):Z.error(`Unknown statement type: ${e.$type}`)},"parseStatement"),Fxt=o(e=>({id:e.id,msg:e.message??"",type:e.type!==void 0?si[e.type]:si.NORMAL,tags:e.tags??void 0}),"parseCommit"),$xt=o(e=>({name:e.name,order:e.order??0}),"parseBranch"),zxt=o(e=>({branch:e.branch,id:e.id??"",type:e.type!==void 0?si[e.type]:void 0,tags:e.tags??void 0}),"parseMerge"),Gxt=o(e=>e.branch,"parseCheckout"),Vxt=o(e=>({id:e.id,targetId:"",tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),"parseCherryPicking"),YEe={parse:o(async e=>{let t=await bn("gitGraph",e);Z.debug(t),Pxt(t,C6)},"parse")}});var Sf,Ef,su,Th,hm,S6,gV,yV,Wxt,dm,Hs,Ys,k6,zT,w6,Ch,Vr,qxt,KEe,ZEe,Uxt,Hxt,Yxt,jxt,Xxt,Kxt,Zxt,Qxt,Jxt,ebt,tbt,rbt,XEe,ibt,GT,nbt,abt,sbt,obt,lbt,QEe,JEe=z(()=>{"use strict";Rr();Ut();St();Xt();b6();Sf=10,Ef=40,su=4,Th=2,hm=8,S6=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),gV=12,yV=new Set(["redux-color","redux-dark-color"]),Wxt=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),dm=o((e,t,r=!1)=>r&&e>0?(e-1)%(t-1)+1:e%t,"calcColorIndex"),Hs=new Map,Ys=new Map,k6=30,zT=new Map,w6=[],Ch=0,Vr="LR",qxt=o(()=>{Hs.clear(),Ys.clear(),zT.clear(),Ch=0,w6=[],Vr="LR"},"clear"),KEe=o(e=>{let t=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof e=="string"?e.split(/\\n|\n|/gi):e).forEach(i=>{let n=document.createElementNS("http://www.w3.org/2000/svg","tspan");n.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),n.setAttribute("dy","1em"),n.setAttribute("x","0"),n.setAttribute("class","row"),n.textContent=i.trim(),t.appendChild(n)}),t},"drawText"),ZEe=o(e=>{let t,r,i;return Vr==="BT"?(r=o((n,a)=>n<=a,"comparisonFunc"),i=1/0):(r=o((n,a)=>n>=a,"comparisonFunc"),i=0),e.forEach(n=>{let a=Vr==="TB"||Vr=="BT"?Ys.get(n)?.y:Ys.get(n)?.x;a!==void 0&&r(a,i)&&(t=n,i=a)}),t},"findClosestParent"),Uxt=o(e=>{let t="",r=1/0;return e.forEach(i=>{let n=Ys.get(i).y;n<=r&&(t=i,r=n)}),t||void 0},"findClosestParentBT"),Hxt=o((e,t,r)=>{let i=r,n=r,a=[];e.forEach(s=>{let l=t.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(i=jxt(l),n=Math.max(i,n)):a.push(l),Xxt(l,i)}),i=n,a.forEach(s=>{Kxt(s,i,r)}),e.forEach(s=>{let l=t.get(s);if(l?.parents.length){let u=Uxt(l.parents);i=Ys.get(u).y-Ef,i<=n&&(n=i);let h=Hs.get(l.branch).pos,d=i-Sf;Ys.set(l.id,{x:h,y:d})}})},"setParallelBTPos"),Yxt=o(e=>{let t=ZEe(e.parents.filter(i=>i!==null));if(!t)throw new Error(`Closest parent not found for commit ${e.id}`);let r=Ys.get(t)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${e.id}`);return r},"findClosestParentPos"),jxt=o(e=>Yxt(e)+Ef,"calculateCommitPosition"),Xxt=o((e,t)=>{let r=Hs.get(e.branch);if(!r)throw new Error(`Branch not found for commit ${e.id}`);let i=r.pos,n=t+Sf;return Ys.set(e.id,{x:i,y:n}),{x:i,y:n}},"setCommitPosition"),Kxt=o((e,t,r)=>{let i=Hs.get(e.branch);if(!i)throw new Error(`Branch not found for commit ${e.id}`);let n=t+r,a=i.pos;Ys.set(e.id,{x:a,y:n})},"setRootPosition"),Zxt=o((e,t,r,i,n,a)=>{let{theme:s}=ge(),l=S6.has(s??""),u=yV.has(s??""),h=Wxt.has(s??"");if(a===si.HIGHLIGHT)e.append("rect").attr("x",r.x-10+(l?3:0)).attr("y",r.y-10+(l?3:0)).attr("width",l?14:20).attr("height",l?14:20).attr("class",`commit ${t.id} commit-highlight${dm(n,hm,u)} ${i}-outer`),e.append("rect").attr("x",r.x-6+(l?2:0)).attr("y",r.y-6+(l?2:0)).attr("width",l?8:12).attr("height",l?8:12).attr("class",`commit ${t.id} commit${dm(n,hm,u)} ${i}-inner`);else if(a===si.CHERRY_PICK)e.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",l?7:10).attr("class",`commit ${t.id} ${i}`),e.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",l?2.5:2.75).attr("fill",h?"#000000":"#fff").attr("class",`commit ${t.id} ${i}`),e.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",l?2.5:2.75).attr("fill",h?"#000000":"#fff").attr("class",`commit ${t.id} ${i}`),e.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke",h?"#000000":"#fff").attr("class",`commit ${t.id} ${i}`),e.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke",h?"#000000":"#fff").attr("class",`commit ${t.id} ${i}`);else{let d=e.append("circle");if(d.attr("cx",r.x),d.attr("cy",r.y),d.attr("r",l?7:10),d.attr("class",`commit ${t.id} commit${dm(n,hm,u)}`),a===si.MERGE){let f=e.append("circle");f.attr("cx",r.x),f.attr("cy",r.y),f.attr("r",l?5:6),f.attr("class",`commit ${i} ${t.id} commit${dm(n,hm,u)}`)}if(a===si.REVERSE){let f=e.append("path"),p=l?4:5;f.attr("d",`M ${r.x-p},${r.y-p}L${r.x+p},${r.y+p}M${r.x-p},${r.y+p}L${r.x+p},${r.y-p}`).attr("class",`commit ${i} ${t.id} commit${dm(n,hm,u)}`)}}},"drawCommitBullet"),Qxt=o((e,t,r,i,n)=>{if(t.type!==si.CHERRY_PICK&&(t.customId&&t.type===si.MERGE||t.type!==si.MERGE)&&n.showCommitLabel){let a=e.append("g"),s=a.insert("rect").attr("class","commit-label-bkg"),l=a.append("text").attr("x",i).attr("y",r.y+25).attr("class","commit-label").text(t.id),u=l.node()?.getBBox();if(u&&(s.attr("x",r.posWithOffset-u.width/2-Th).attr("y",r.y+13.5).attr("width",u.width+2*Th).attr("height",u.height+2*Th),Vr==="TB"||Vr==="BT"?(s.attr("x",r.x-(u.width+4*su+5)).attr("y",r.y-12),l.attr("x",r.x-(u.width+4*su)).attr("y",r.y+u.height-12)):l.attr("x",r.posWithOffset-u.width/2),n.rotateCommitLabel))if(Vr==="TB"||Vr==="BT")l.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),s.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let h=-7.5-(u.width+10)/25*9.5,d=10+u.width/25*8.5;a.attr("transform","translate("+h+", "+d+") rotate(-45, "+i+", "+r.y+")")}}},"drawCommitLabel"),Jxt=o((e,t,r,i)=>{if(t.tags.length>0){let n=0,a=0,s=0,l=[];for(let u of t.tags.reverse()){let h=e.insert("polygon"),d=e.append("circle"),f=e.append("text").attr("y",r.y-16-n).attr("class","tag-label").text(u),p=f.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),f.attr("x",r.posWithOffset-p.width/2),l.push({tag:f,hole:d,rect:h,yOffset:n}),n+=20}for(let{tag:u,hole:h,rect:d,yOffset:f}of l){let p=s/2,m=r.y-19.2-f;if(d.attr("class","tag-label-bkg").attr("points",` + ${i-a/2-su/2},${m+Th} + ${i-a/2-su/2},${m-Th} + ${r.posWithOffset-a/2-su},${m-p-Th} + ${r.posWithOffset+a/2+su},${m-p-Th} + ${r.posWithOffset+a/2+su},${m+p+Th} + ${r.posWithOffset-a/2-su},${m+p+Th}`),h.attr("cy",m).attr("cx",i-a/2+su/2).attr("r",1.5).attr("class","tag-hole"),Vr==="TB"||Vr==="BT"){let g=i+f;d.attr("class","tag-label-bkg").attr("points",` + ${r.x},${g+2} + ${r.x},${g-2} + ${r.x+Sf},${g-p-2} + ${r.x+Sf+a+4},${g-p-2} + ${r.x+Sf+a+4},${g+p+2} + ${r.x+Sf},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+i+")"),h.attr("cx",r.x+su/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+i+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+i+")")}}}},"drawCommitTags"),ebt=o(e=>{switch(e.customType??e.type){case si.NORMAL:return"commit-normal";case si.REVERSE:return"commit-reverse";case si.HIGHLIGHT:return"commit-highlight";case si.MERGE:return"commit-merge";case si.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),tbt=o((e,t,r,i)=>{let n={x:0,y:0};if(e.parents.length>0){let a=ZEe(e.parents);if(a){let s=i.get(a)??n;return t==="TB"?s.y+Ef:t==="BT"?(i.get(e.id)??n).y-Ef:s.x+Ef}}else return t==="TB"?k6:t==="BT"?(i.get(e.id)??n).y-Ef:0;return 0},"calculatePosition"),rbt=o((e,t,r)=>{let i=Vr==="BT"&&r?t:t+Sf,n=Hs.get(e.branch)?.pos,a=Vr==="TB"||Vr==="BT"?Hs.get(e.branch)?.pos:i;if(a===void 0||n===void 0)throw new Error(`Position were undefined for commit ${e.id}`);let s=S6.has(ge().theme??""),l=Vr==="TB"||Vr==="BT"?i:n+(s?gV/2+1:-2);return{x:a,y:l,posWithOffset:i}},"getCommitPosition"),XEe=o((e,t,r,i)=>{let n=e.append("g").attr("class","commit-bullets"),a=e.append("g").attr("class","commit-labels"),s=Vr==="TB"||Vr==="BT"?k6:0,l=[...t.keys()],u=i.parallelCommits??!1,h=o((f,p)=>{let m=t.get(f)?.seq,g=t.get(p)?.seq;return m!==void 0&&g!==void 0?m-g:0},"sortKeys"),d=l.sort(h);Vr==="BT"&&(u&&Hxt(d,t,s),d=d.reverse()),d.forEach(f=>{let p=t.get(f);if(!p)throw new Error(`Commit not found for key ${f}`);u&&(s=tbt(p,Vr,s,Ys));let m=rbt(p,s,u);if(r){let g=ebt(p),y=p.customType??p.type,v=Hs.get(p.branch)?.index??0;Zxt(n,p,m,g,v,y),Qxt(a,p,m,s,i),Jxt(a,p,m,s)}Vr==="TB"||Vr==="BT"?Ys.set(p.id,{x:m.x,y:m.posWithOffset}):Ys.set(p.id,{x:m.posWithOffset,y:m.y}),s=Vr==="BT"&&u?s+Ef:s+Ef+Sf,s>Ch&&(Ch=s)})},"drawCommits"),ibt=o((e,t,r,i,n)=>{let s=(Vr==="TB"||Vr==="BT"?r.xh.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>e.seq&&h.sequ(h)&&l(h))},"shouldRerouteArrow"),GT=o((e,t,r=0)=>{let i=e+Math.abs(e-t)/2;if(r>5)return i;if(w6.every(s=>Math.abs(s-i)>=10))return w6.push(i),i;let a=Math.abs(e-t);return GT(e,t-a/5,r+1)},"findLane"),nbt=o((e,t,r,i)=>{let{theme:n}=ge(),a=yV.has(n??""),s=Ys.get(t.id),l=Ys.get(r.id);if(s===void 0||l===void 0)throw new Error(`Commit positions not found for commits ${t.id} and ${r.id}`);let u=ibt(t,r,s,l,i),h="",d="",f=0,p=0,m=Hs.get(r.branch)?.index;r.type===si.MERGE&&t.id!==r.parents[0]&&(m=Hs.get(t.branch)?.index);let g;if(u){h="A 10 10, 0, 0, 0,",d="A 10 10, 0, 0, 1,",f=10,p=10;let y=s.yl.x&&(h="A 20 20, 0, 0, 0,",d="A 20 20, 0, 0, 1,",f=20,p=20,r.type===si.MERGE&&t.id!==r.parents[0]?g=`M ${s.x} ${s.y} L ${s.x} ${l.y-f} ${d} ${s.x-p} ${l.y} L ${l.x} ${l.y}`:g=`M ${s.x} ${s.y} L ${l.x+f} ${s.y} ${h} ${l.x} ${s.y+p} L ${l.x} ${l.y}`),s.x===l.x&&(g=`M ${s.x} ${s.y} L ${l.x} ${l.y}`)):Vr==="BT"?(s.xl.x&&(h="A 20 20, 0, 0, 0,",d="A 20 20, 0, 0, 1,",f=20,p=20,r.type===si.MERGE&&t.id!==r.parents[0]?g=`M ${s.x} ${s.y} L ${s.x} ${l.y+f} ${h} ${s.x-p} ${l.y} L ${l.x} ${l.y}`:g=`M ${s.x} ${s.y} L ${l.x+f} ${s.y} ${d} ${l.x} ${s.y-p} L ${l.x} ${l.y}`),s.x===l.x&&(g=`M ${s.x} ${s.y} L ${l.x} ${l.y}`)):(s.yl.y&&(r.type===si.MERGE&&t.id!==r.parents[0]?g=`M ${s.x} ${s.y} L ${l.x-f} ${s.y} ${h} ${l.x} ${s.y-p} L ${l.x} ${l.y}`:g=`M ${s.x} ${s.y} L ${s.x} ${l.y+f} ${d} ${s.x+p} ${l.y} L ${l.x} ${l.y}`),s.y===l.y&&(g=`M ${s.x} ${s.y} L ${l.x} ${l.y}`));if(g===void 0)throw new Error("Line definition not found");e.append("path").attr("d",g).attr("class","arrow arrow"+dm(m,hm,a))},"drawArrow"),abt=o((e,t)=>{let r=e.append("g").attr("class","commit-arrows");[...t.keys()].forEach(i=>{let n=t.get(i);n.parents&&n.parents.length>0&&n.parents.forEach(a=>{nbt(r,t.get(a),n,t)})})},"drawArrows"),sbt=o((e,t,r,i)=>{let{look:n,theme:a,themeVariables:s}=ge(),{dropShadow:l,THEME_COLOR_LIMIT:u}=s,h=S6.has(a??""),d=yV.has(a??""),f=e.append("g");t.forEach((p,m)=>{let g=dm(m,h?u:hm,d),y=Hs.get(p.name)?.pos;if(y===void 0)throw new Error(`Position not found for branch ${p.name}`);let v=Vr==="TB"||Vr==="BT"?y:h?y+gV/2+1:y-2,x=f.append("line");x.attr("x1",0),x.attr("y1",v),x.attr("x2",Ch),x.attr("y2",v),x.attr("class","branch branch"+g),Vr==="TB"?(x.attr("y1",k6),x.attr("x1",y),x.attr("y2",Ch),x.attr("x2",y)):Vr==="BT"&&(x.attr("y1",Ch),x.attr("x1",y),x.attr("y2",k6),x.attr("x2",y)),w6.push(v);let b=p.name,T=KEe(b),w=f.insert("rect"),k=f.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+g);k.node().appendChild(T);let E=T.getBBox(),A=h?0:4,N=h?16:0,P=h?gV:0;n==="neo"&&w.attr("data-look","neo"),w.attr("class","branchLabelBkg label"+g).attr("style",n==="neo"?`filter:${h?`url(#${i}-drop-shadow)`:l}`:"").attr("rx",A).attr("ry",A).attr("x",-E.width-4-(r.rotateCommitLabel===!0?30:0)).attr("y",-E.height/2+10).attr("width",E.width+18+N).attr("height",E.height+4+P),k.attr("transform","translate("+(-E.width-14-(r.rotateCommitLabel===!0?30:0)+N/2)+", "+(v-E.height/2-2)+")"),Vr==="TB"?(w.attr("x",y-E.width/2-10).attr("y",0),k.attr("transform","translate("+(y-E.width/2-5)+", 0)"),h&&(w.attr("transform",`translate(${-N/2-3}, ${-P-10})`),k.attr("transform","translate("+(y-E.width/2-5)+", "+(-P*2+7)+")"))):Vr==="BT"?(w.attr("x",y-E.width/2-10).attr("y",Ch),k.attr("transform","translate("+(y-E.width/2-5)+", "+Ch+")"),h&&(w.attr("transform",`translate(${-N/2-3}, ${P+10})`),k.attr("transform","translate("+(y-E.width/2-5)+", "+(Ch+P*2+4)+")"))):w.attr("transform","translate(-19, "+(v-12-P/2)+")")})},"drawBranches"),obt=o(function(e,t,r,i,n){return Hs.set(e,{pos:t,index:r}),t+=50+(n?40:0)+(Vr==="TB"||Vr==="BT"?i.width/2:0),t},"setBranchPosition"),lbt=o(function(e,t,r,i){qxt(),Z.debug("in gitgraph renderer",e+` +`,"id:",t,r);let n=i.db;if(!n.getConfig){Z.error("getConfig method is not available on db");return}let a=n.getConfig(),s=a.rotateCommitLabel??!1;zT=n.getCommits();let l=n.getBranchesAsObjArray();Vr=n.getDirection();let u=Je(`[id="${t}"]`),{look:h,theme:d,themeVariables:f}=ge(),{useGradient:p,gradientStart:m,gradientStop:g,filterColor:y}=f;if(p){let x=u.append("defs").append("linearGradient").attr("id",t+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");x.append("stop").attr("offset","0%").attr("stop-color",m).attr("stop-opacity",1),x.append("stop").attr("offset","100%").attr("stop-color",g).attr("stop-opacity",1)}h==="neo"&&S6.has(d??"")&&u.append("defs").append("filter").attr("id",t+"-drop-shadow").attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",y);let v=0;l.forEach((x,b)=>{let T=KEe(x.name),w=u.append("g"),C=w.insert("g").attr("class","branchLabel"),k=C.insert("g").attr("class","label branch-label");k.node()?.appendChild(T);let E=T.getBBox();v=obt(x.name,v,b,E,s),k.remove(),C.remove(),w.remove()}),XEe(u,zT,!1,a),a.showBranches&&sbt(u,l,a,t),abt(u,zT),XEe(u,zT,!0,a),Zt.insertTitle(u,"gitTitleText",a.titleTopMargin??0,n.getDiagramTitle()),Av(void 0,u,a.diagramPadding,a.useMaxWidth)},"draw"),QEe={draw:lbt}});var e5e,t5e,cbt,ubt,hbt,dbt,fbt,pbt,mbt,gbt,r5e,i5e=z(()=>{"use strict";br();e5e=8,t5e=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),cbt=new Set(["redux-color","redux-dark-color"]),ubt=new Set(["neo","neo-dark"]),hbt=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),dbt=new Set(["redux","redux-dark","redux-color","redux-dark-color","neo","neo-dark"]),fbt=o(e=>{let{svgId:t}=e,r="";if(e.useGradient&&t)for(let i=0;i{let t=Nt(),{theme:r,themeVariables:i}=t,{borderColorArray:n}=i,a=t5e.has(r);if(ubt.has(r)){let s="";for(let l=0;l`${Array.from({length:e.THEME_COLOR_LIMIT},(t,r)=>r).map(t=>{let r=t%e5e;return` + .branch-label${t} { fill: ${e["gitBranchLabel"+r]}; } + .commit${t} { stroke: ${e["git"+r]}; fill: ${e["git"+r]}; } + .commit-highlight${t} { stroke: ${e["gitInv"+r]}; fill: ${e["gitInv"+r]}; } + .label${t} { fill: ${e["git"+r]}; } + .arrow${t} { stroke: ${e["git"+r]}; } + `}).join(` +`)}`,"normalTheme"),gbt=o(e=>{let t=Nt(),{theme:r}=t,i=dbt.has(r);return` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + + ${i?pbt(e):mbt(e)} + + .branch { + stroke-width: ${e.strokeWidth}; + stroke: ${e.commitLineColor??e.lineColor}; + stroke-dasharray: ${i?"4 2":"2"}; + } + .commit-label { font-size: ${e.commitLabelFontSize}; fill: ${i?e.nodeBorder:e.commitLabelColor}; ${i?`font-weight:${e.noteFontWeight};`:""}} + .commit-label-bkg { font-size: ${e.commitLabelFontSize}; fill: ${i?"transparent":e.commitLabelBackground}; opacity: ${i?"":.5}; } + .tag-label { font-size: ${e.tagLabelFontSize}; fill: ${e.tagLabelColor};} + .tag-label-bkg { fill: ${i?e.mainBkg:e.tagLabelBackground}; stroke: ${i?e.nodeBorder:e.tagLabelBorder}; ${i?`filter:${e.dropShadow}`:""} } + .tag-hole { fill: ${e.textColor}; } + + .commit-merge { + stroke: ${i?e.mainBkg:e.primaryColor}; + fill: ${i?e.mainBkg:e.primaryColor}; + } + .commit-reverse { + stroke: ${i?e.mainBkg:e.primaryColor}; + fill: ${i?e.mainBkg:e.primaryColor}; + stroke-width: ${i?e.strokeWidth:3}; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${i?e.mainBkg:e.primaryColor}; + fill: ${i?e.mainBkg:e.primaryColor}; + } + + .arrow { + /* Intentional: neo themes keep the bold 8px arrow (like classic themes); only redux-geometry themes use the thinner options.strokeWidth. */ + stroke-width: ${t5e.has(r)?e.strokeWidth:8}; + stroke-linecap: round; + fill: none + } + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`},"getStyles"),r5e=gbt});var n5e={};xr(n5e,{diagram:()=>ybt});var ybt,a5e=z(()=>{"use strict";jEe();mV();JEe();i5e();ybt={parser:YEe,db:C6,renderer:QEe,styles:r5e}});var vV,l5e,c5e=z(()=>{"use strict";vV=(function(){var e=o(function(_,R,M,L){for(M=M||{},L=_.length;L--;M[_[L]]=R);return M},"o"),t=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],i=[1,27],n=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],d=[1,34],f=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],T=[1,19],w=[1,20],C=[1,21],k=[1,22],E=[1,23],A=[1,25],N=[1,35],P={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(R,M,L,B,O,$,G){var F=$.length-1;switch(O){case 1:return $[F-1];case 2:this.$=[];break;case 3:$[F-1].push($[F]),this.$=$[F-1];break;case 4:case 5:this.$=$[F];break;case 6:case 7:this.$=[];break;case 8:B.setWeekday("monday");break;case 9:B.setWeekday("tuesday");break;case 10:B.setWeekday("wednesday");break;case 11:B.setWeekday("thursday");break;case 12:B.setWeekday("friday");break;case 13:B.setWeekday("saturday");break;case 14:B.setWeekday("sunday");break;case 15:B.setWeekend("friday");break;case 16:B.setWeekend("saturday");break;case 17:B.setDateFormat($[F].substr(11)),this.$=$[F].substr(11);break;case 18:B.enableInclusiveEndDates(),this.$=$[F].substr(18);break;case 19:B.TopAxis(),this.$=$[F].substr(8);break;case 20:B.setAxisFormat($[F].substr(11)),this.$=$[F].substr(11);break;case 21:B.setTickInterval($[F].substr(13)),this.$=$[F].substr(13);break;case 22:B.setExcludes($[F].substr(9)),this.$=$[F].substr(9);break;case 23:B.setIncludes($[F].substr(9)),this.$=$[F].substr(9);break;case 24:B.setTodayMarker($[F].substr(12)),this.$=$[F].substr(12);break;case 27:B.setDiagramTitle($[F].substr(6)),this.$=$[F].substr(6);break;case 28:this.$=$[F].trim(),B.setAccTitle(this.$);break;case 29:case 30:this.$=$[F].trim(),B.setAccDescription(this.$);break;case 31:B.addSection($[F].substr(8)),this.$=$[F].substr(8);break;case 33:B.addTask($[F-1],$[F]),this.$="task";break;case 34:this.$=$[F-1],B.setClickEvent($[F-1],$[F],null);break;case 35:this.$=$[F-2],B.setClickEvent($[F-2],$[F-1],$[F]);break;case 36:this.$=$[F-2],B.setClickEvent($[F-2],$[F-1],null),B.setLink($[F-2],$[F]);break;case 37:this.$=$[F-3],B.setClickEvent($[F-3],$[F-2],$[F-1]),B.setLink($[F-3],$[F]);break;case 38:this.$=$[F-2],B.setClickEvent($[F-2],$[F],null),B.setLink($[F-2],$[F-1]);break;case 39:this.$=$[F-3],B.setClickEvent($[F-3],$[F-1],$[F]),B.setLink($[F-3],$[F-2]);break;case 40:this.$=$[F-1],B.setLink($[F-1],$[F]);break;case 41:case 47:this.$=$[F-1]+" "+$[F];break;case 42:case 43:case 45:this.$=$[F-2]+" "+$[F-1]+" "+$[F];break;case 44:case 46:this.$=$[F-3]+" "+$[F-2]+" "+$[F-1]+" "+$[F];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:r,13:i,14:n,15:a,16:s,17:l,18:u,19:18,20:h,21:d,22:f,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:T,31:w,33:C,35:k,36:E,37:24,38:A,40:N},e(t,[2,7],{1:[2,1]}),e(t,[2,3]),{9:36,11:17,12:r,13:i,14:n,15:a,16:s,17:l,18:u,19:18,20:h,21:d,22:f,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:T,31:w,33:C,35:k,36:E,37:24,38:A,40:N},e(t,[2,5]),e(t,[2,6]),e(t,[2,17]),e(t,[2,18]),e(t,[2,19]),e(t,[2,20]),e(t,[2,21]),e(t,[2,22]),e(t,[2,23]),e(t,[2,24]),e(t,[2,25]),e(t,[2,26]),e(t,[2,27]),{32:[1,37]},{34:[1,38]},e(t,[2,30]),e(t,[2,31]),e(t,[2,32]),{39:[1,39]},e(t,[2,8]),e(t,[2,9]),e(t,[2,10]),e(t,[2,11]),e(t,[2,12]),e(t,[2,13]),e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),{41:[1,40],43:[1,41]},e(t,[2,4]),e(t,[2,28]),e(t,[2,29]),e(t,[2,33]),e(t,[2,34],{42:[1,42],43:[1,43]}),e(t,[2,40],{41:[1,44]}),e(t,[2,35],{43:[1,45]}),e(t,[2,36]),e(t,[2,38],{42:[1,46]}),e(t,[2,37]),e(t,[2,39])],defaultActions:{},parseError:o(function(R,M){if(M.recoverable)this.trace(R);else{var L=new Error(R);throw L.hash=M,L}},"parseError"),parse:o(function(R){var M=this,L=[0],B=[],O=[null],$=[],G=this.table,F="",V=0,H=0,j=0,U=2,Q=1,Y=$.slice.call(arguments,1),ae=Object.create(this.lexer),J={yy:{}};for(var te in this.yy)Object.prototype.hasOwnProperty.call(this.yy,te)&&(J.yy[te]=this.yy[te]);ae.setInput(R,J.yy),J.yy.lexer=ae,J.yy.parser=this,typeof ae.yylloc>"u"&&(ae.yylloc={});var re=ae.yylloc;$.push(re);var ee=ae.options&&ae.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Te(qe){L.length=L.length-2*qe,O.length=O.length-qe,$.length=$.length-qe}o(Te,"popStack");function ue(){var qe;return qe=B.pop()||ae.lex()||Q,typeof qe!="number"&&(qe instanceof Array&&(B=qe,qe=B.pop()),qe=M.symbols_[qe]||qe),qe}o(ue,"lex");for(var De,Ie,Ee,we,Me,$e,de={},rt,ke,Fe,He;;){if(Ee=L[L.length-1],this.defaultActions[Ee]?we=this.defaultActions[Ee]:((De===null||typeof De>"u")&&(De=ue()),we=G[Ee]&&G[Ee][De]),typeof we>"u"||!we.length||!we[0]){var at="";He=[];for(rt in G[Ee])this.terminals_[rt]&&rt>U&&He.push("'"+this.terminals_[rt]+"'");ae.showPosition?at="Parse error on line "+(V+1)+`: +`+ae.showPosition()+` +Expecting `+He.join(", ")+", got '"+(this.terminals_[De]||De)+"'":at="Parse error on line "+(V+1)+": Unexpected "+(De==Q?"end of input":"'"+(this.terminals_[De]||De)+"'"),this.parseError(at,{text:ae.match,token:this.terminals_[De]||De,line:ae.yylineno,loc:re,expected:He})}if(we[0]instanceof Array&&we.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ee+", token: "+De);switch(we[0]){case 1:L.push(De),O.push(ae.yytext),$.push(ae.yylloc),L.push(we[1]),De=null,Ie?(De=Ie,Ie=null):(H=ae.yyleng,F=ae.yytext,V=ae.yylineno,re=ae.yylloc,j>0&&j--);break;case 2:if(ke=this.productions_[we[1]][1],de.$=O[O.length-ke],de._$={first_line:$[$.length-(ke||1)].first_line,last_line:$[$.length-1].last_line,first_column:$[$.length-(ke||1)].first_column,last_column:$[$.length-1].last_column},ee&&(de._$.range=[$[$.length-(ke||1)].range[0],$[$.length-1].range[1]]),$e=this.performAction.apply(de,[F,H,V,J.yy,we[1],O,$].concat(Y)),typeof $e<"u")return $e;ke&&(L=L.slice(0,-1*ke*2),O=O.slice(0,-1*ke),$=$.slice(0,-1*ke)),L.push(this.productions_[we[1]][0]),O.push(de.$),$.push(de._$),Fe=G[L[L.length-2]][L[L.length-1]],L.push(Fe);break;case 3:return!0}}return!0},"parse")},I=(function(){var _={EOF:1,parseError:o(function(M,L){if(this.yy.parser)this.yy.parser.parseError(M,L);else throw new Error(M)},"parseError"),setInput:o(function(R,M){return this.yy=M||this.yy||{},this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var M=R.match(/(?:\r\n?|\n).*/g);return M?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},"input"),unput:o(function(R){var M=R.length,L=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-M),this.offset-=M;var B=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),L.length-1&&(this.yylineno-=L.length-1);var O=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:L?(L.length===B.length?this.yylloc.first_column:0)+B[B.length-L.length].length-L[0].length:this.yylloc.first_column-M},this.options.ranges&&(this.yylloc.range=[O[0],O[0]+this.yyleng-M]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(R){this.unput(this.match.slice(R))},"less"),pastInput:o(function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var R=this.pastInput(),M=new Array(R.length+1).join("-");return R+this.upcomingInput()+` +`+M+"^"},"showPosition"),test_match:o(function(R,M){var L,B,O;if(this.options.backtrack_lexer&&(O={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(O.yylloc.range=this.yylloc.range.slice(0))),B=R[0].match(/(?:\r\n?|\n).*/g),B&&(this.yylineno+=B.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:B?B[B.length-1].length-B[B.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+R[0].length},this.yytext+=R[0],this.match+=R[0],this.matches=R,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(R[0].length),this.matched+=R[0],L=this.performAction.call(this,this.yy,this,M,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),L)return L;if(this._backtrack){for(var $ in O)this[$]=O[$];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var R,M,L,B;this._more||(this.yytext="",this.match="");for(var O=this._currentRules(),$=0;$M[0].length)){if(M=L,B=$,this.options.backtrack_lexer){if(R=this.test_match(L,O[$]),R!==!1)return R;if(this._backtrack){M=!1;continue}else return!1}else if(!this.options.flex)break}return M?(R=this.test_match(M,O[B]),R!==!1?R:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var M=this.next();return M||this.lex()},"lex"),begin:o(function(M){this.conditionStack.push(M)},"begin"),popState:o(function(){var M=this.conditionStack.length-1;return M>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(M){return M=this.conditionStack.length-1-Math.abs(M||0),M>=0?this.conditionStack[M]:"INITIAL"},"topState"),pushState:o(function(M){this.begin(M)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(M,L,B,O){var $=O;switch(B){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return _})();P.lexer=I;function D(){this.yy={}}return o(D,"Parser"),D.prototype=P,P.Parser=D,new D})();vV.parser=vV;l5e=vV});var u5e=Js((xV,bV)=>{"use strict";(function(e,t){typeof xV=="object"&&typeof bV<"u"?bV.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_isoWeek=t()})(xV,(function(){"use strict";var e="day";return function(t,r,i){var n=o(function(l){return l.add(4-l.isoWeekday(),e)},"a"),a=r.prototype;a.isoWeekYear=function(){return n(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),e);var u,h,d,f,p=n(this),m=(u=this.isoWeekYear(),h=this.$u,d=(h?i.utc:i)().year(u).startOf("year"),f=4-d.isoWeekday(),d.isoWeekday()>4&&(f+=7),d.add(f,e));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),d=!!h.u(u)||u;return h.p(l)==="isoweek"?d?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}}))});var h5e=Js((TV,CV)=>{"use strict";(function(e,t){typeof TV=="object"&&typeof CV<"u"?CV.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_customParseFormat=t()})(TV,(function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,i=/\d\d/,n=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=(function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x})(g)}],d=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),f=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=f(g,!1)}],a:[a,function(g){this.afternoon=f(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[i,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[n,u("seconds")],ss:[n,u("seconds")],m:[n,u("minutes")],mm:[n,u("minutes")],H:[n,u("hours")],h:[n,u("hours")],HH:[n,u("hours")],hh:[n,u("hours")],D:[n,u("day")],DD:[i,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[n,u("week")],ww:[i,u("week")],M:[n,u("month")],MM:[i,u("month")],MMM:[a,function(g){var y=d("months"),v=(d("monthsShort")||y.map((function(x){return x.slice(0,3)}))).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=d("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[i,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(A,N,P){var I=P&&P.toUpperCase();return N||v[P]||e[P]||v[I].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(D,_,R){return _||R.slice(1)}))}))).match(t),b=x.length,T=0;T-1)return new Date((L==="X"?1e3:1)*M);var $=m(L)(M),G=$.year,F=$.month,V=$.day,H=$.hours,j=$.minutes,U=$.seconds,Q=$.milliseconds,Y=$.zone,ae=$.week,J=new Date,te=V||(G||F?1:J.getDate()),re=G||J.getFullYear(),ee=0;G&&!F||(ee=F>0?F-1:J.getMonth());var Te,ue=H||0,De=j||0,Ie=U||0,Ee=Q||0;return Y?new Date(Date.UTC(re,ee,te,ue,De,Ie,Ee+60*Y.offset*1e3)):B?new Date(Date.UTC(re,ee,te,ue,De,Ie,Ee)):(Te=new Date(re,ee,te,ue,De,Ie,Ee),ae&&(Te=O(Te).week(ae).toDate()),Te)}catch{return new Date("")}})(w,E,C,v),this.init(),I&&I!==!0&&(this.$L=this.locale(I).$L),P&&w!=this.format(E)&&(this.$d=new Date("")),s={}}else if(E instanceof Array)for(var D=E.length,_=1;_<=D;_+=1){k[1]=E[_-1];var R=v.apply(this,k);if(R.isValid()){this.$d=R.$d,this.$L=R.$L,this.init();break}_===D&&(this.$d=new Date(""))}else b.call(this,T)}}}))});var d5e=Js((kV,wV)=>{"use strict";(function(e,t){typeof kV=="object"&&typeof wV<"u"?wV.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_advancedFormat=t()})(kV,(function(){"use strict";return function(e,t){var r=t.prototype,i=r.format;r.format=function(n){var a=this,s=this.$locale();if(!this.isValid())return i.bind(this)(n);var l=this.$utils(),u=(n||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}}));return i.bind(this)(u)}}}))});function _5e(e,t,r){let i=!0;for(;i;)i=!1,r.forEach(function(n){let a="^\\s*"+n+"\\s*$",s=new RegExp(a);e[0].match(s)&&(t[n]=!0,e.shift(1),i=!0)})}var m5e,To,g5e,y5e,v5e,f5e,ou,_V,DV,RV,VT,WT,LV,MV,_6,gy,NV,x5e,IV,py,qT,OV,PV,D6,SV,Tbt,Cbt,kbt,wbt,Sbt,Ebt,Abt,_bt,Dbt,Rbt,Lbt,Mbt,Nbt,Ibt,Obt,Pbt,Bbt,Fbt,$bt,zbt,Gbt,Vbt,Wbt,qbt,b5e,Ubt,Hbt,Ybt,T5e,jbt,EV,C5e,k5e,E6,my,Xbt,Kbt,AV,A6,jn,w5e,Zbt,fm,Qbt,p5e,Jbt,S5e,e2t,E5e,t2t,r2t,A5e,D5e=z(()=>{"use strict";m5e=ys(fg(),1),To=ys(wC(),1),g5e=ys(u5e(),1),y5e=ys(h5e(),1),v5e=ys(d5e(),1);St();Ut();Xt();Ci();To.default.extend(g5e.default);To.default.extend(y5e.default);To.default.extend(v5e.default);f5e={friday:5,saturday:6},ou="",_V="",RV="",VT=[],WT=[],LV=new Map,MV=[],_6=[],gy="",NV="",x5e=["active","done","crit","milestone","vert"],IV=[],py="",qT=!1,OV=!1,PV="sunday",D6="saturday",SV=0,Tbt=o(function(){MV=[],_6=[],gy="",IV=[],E6=0,AV=void 0,A6=void 0,jn=[],ou="",_V="",NV="",DV=void 0,RV="",VT=[],WT=[],qT=!1,OV=!1,SV=0,LV=new Map,py="",gr(),PV="sunday",D6="saturday"},"clear"),Cbt=o(function(e){py=e},"setDiagramId"),kbt=o(function(e){_V=e},"setAxisFormat"),wbt=o(function(){return _V},"getAxisFormat"),Sbt=o(function(e){DV=e},"setTickInterval"),Ebt=o(function(){return DV},"getTickInterval"),Abt=o(function(e){RV=e},"setTodayMarker"),_bt=o(function(){return RV},"getTodayMarker"),Dbt=o(function(e){ou=e},"setDateFormat"),Rbt=o(function(){qT=!0},"enableInclusiveEndDates"),Lbt=o(function(){return qT},"endDatesAreInclusive"),Mbt=o(function(){OV=!0},"enableTopAxis"),Nbt=o(function(){return OV},"topAxisEnabled"),Ibt=o(function(e){NV=e},"setDisplayMode"),Obt=o(function(){return NV},"getDisplayMode"),Pbt=o(function(){return ou},"getDateFormat"),Bbt=o(function(e){VT=e.toLowerCase().split(/[\s,]+/)},"setIncludes"),Fbt=o(function(){return VT},"getIncludes"),$bt=o(function(e){WT=e.toLowerCase().split(/[\s,]+/)},"setExcludes"),zbt=o(function(){return WT},"getExcludes"),Gbt=o(function(){return LV},"getLinks"),Vbt=o(function(e){gy=e,MV.push(e)},"addSection"),Wbt=o(function(){return MV},"getSections"),qbt=o(function(){let e=p5e(),t=10,r=0;for(;!e&&rl))throw new Error("Failed to find a valid date that was not excluded by `excludes` after 10,000 iterations.");e=e.add(1,"d")}return[t,s]},"fixTaskDates"),EV=o(function(e,t,r){if(r=r.trim(),o(l=>{let u=l.trim();return u==="x"||u==="X"},"isTimestampFormat")(t)&&/^\d+$/.test(r))return new Date(Number(r));let a=/^after\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let l=null;for(let h of a.groups.ids.split(" ")){let d=fm(h);d!==void 0&&(!l||d.endTime>l.endTime)&&(l=d)}if(l)return l.endTime;let u=new Date;return u.setHours(0,0,0,0),u}let s=(0,To.default)(r,t.trim(),!0);if(s.isValid())return s.toDate();{Z.debug("Invalid date:"+r),Z.debug("With date format:"+t.trim());let l=new Date(r);if(l===void 0||isNaN(l.getTime())||l.getFullYear()<-1e4||l.getFullYear()>1e4)throw new Error("Invalid date:"+r);return l}},"getStartDate"),C5e=o(function(e){let t=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(e.trim());return t!==null?[Number.parseFloat(t[1]),t[2]]:[NaN,"ms"]},"parseDuration"),k5e=o(function(e,t,r,i=!1){r=r.trim();let a=/^until\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let d=null;for(let p of a.groups.ids.split(" ")){let m=fm(p);m!==void 0&&(!d||m.startTime{window.open(r,"_self")}),LV.set(i,r))}),S5e(e,"clickable")},"setLink"),S5e=o(function(e,t){e.split(",").forEach(function(r){let i=fm(r);i!==void 0&&i.classes.push(t)})},"setClass"),e2t=o(function(e,t,r){if(ge().securityLevel!=="loose"||t===void 0)return;let i=[];if(typeof r=="string"){i=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{Zt.runFunc(t,...i)})},"setClickFun"),E5e=o(function(e,t){IV.push(function(){let r=py?`${py}-${e}`:e,i=document.querySelector(`[id="${r}"]`);i!==null&&i.addEventListener("click",function(){t()})},function(){let r=py?`${py}-${e}`:e,i=document.querySelector(`[id="${r}-text"]`);i!==null&&i.addEventListener("click",function(){t()})})},"pushFun"),t2t=o(function(e,t,r){e.split(",").forEach(function(i){e2t(i,t,r)}),S5e(e,"clickable")},"setClickEvent"),r2t=o(function(e){IV.forEach(function(t){t(e)})},"bindFunctions"),A5e={getConfig:o(()=>ge().gantt,"getConfig"),clear:Tbt,setDateFormat:Dbt,getDateFormat:Pbt,enableInclusiveEndDates:Rbt,endDatesAreInclusive:Lbt,enableTopAxis:Mbt,topAxisEnabled:Nbt,setAxisFormat:kbt,getAxisFormat:wbt,setTickInterval:Sbt,getTickInterval:Ebt,setTodayMarker:Abt,getTodayMarker:_bt,setAccTitle:Cr,getAccTitle:kr,setDiagramTitle:Ar,getDiagramTitle:Er,setDiagramId:Cbt,setDisplayMode:Ibt,getDisplayMode:Obt,setAccDescription:wr,getAccDescription:Sr,addSection:Vbt,getSections:Wbt,getTasks:qbt,addTask:Zbt,findTaskById:fm,addTaskOrg:Qbt,setIncludes:Bbt,getIncludes:Fbt,setExcludes:$bt,getExcludes:zbt,setClickEvent:t2t,setLink:Jbt,getLinks:Gbt,bindFunctions:r2t,parseDuration:C5e,isInvalidDate:b5e,setWeekday:Ubt,getWeekday:Hbt,setWeekend:Ybt};o(_5e,"getTaskTags")});var R5e=Js((BV,FV)=>{"use strict";(function(e,t){typeof BV=="object"&&typeof FV<"u"?FV.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_duration=t()})(BV,(function(){"use strict";var e,t,r=1e3,i=6e4,n=36e5,a=864e5,s=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,l=31536e6,u=2628e6,h=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,d={years:l,months:u,days:a,hours:n,minutes:i,seconds:r,milliseconds:1,weeks:6048e5},f=o(function(w){return w instanceof b},"c"),p=o(function(w,C,k){return new b(w,k,C.$l)},"f"),m=o(function(w){return t.p(w)+"s"},"m"),g=o(function(w){return w<0},"l"),y=o(function(w){return g(w)?Math.ceil(w):Math.floor(w)},"$"),v=o(function(w){return Math.abs(w)},"y"),x=o(function(w,C){return w?g(w)?{negative:!0,format:""+v(w)+C}:{negative:!1,format:""+w+C}:{negative:!1,format:""}},"v"),b=(function(){function w(k,E,A){var N=this;if(this.$d={},this.$l=A,k===void 0&&(this.$ms=0,this.parseFromMilliseconds()),E)return p(k*d[m(E)],this);if(typeof k=="number")return this.$ms=k,this.parseFromMilliseconds(),this;if(typeof k=="object")return Object.keys(k).forEach((function(D){N.$d[m(D)]=k[D]})),this.calMilliseconds(),this;if(typeof k=="string"){var P=k.match(h);if(P){var I=P.slice(2).map((function(D){return D!=null?Number(D):0}));return this.$d.years=I[0],this.$d.months=I[1],this.$d.weeks=I[2],this.$d.days=I[3],this.$d.hours=I[4],this.$d.minutes=I[5],this.$d.seconds=I[6],this.calMilliseconds(),this}}return this}o(w,"l");var C=w.prototype;return C.calMilliseconds=function(){var k=this;this.$ms=Object.keys(this.$d).reduce((function(E,A){return E+(k.$d[A]||0)*d[A]}),0)},C.parseFromMilliseconds=function(){var k=this.$ms;this.$d.years=y(k/l),k%=l,this.$d.months=y(k/u),k%=u,this.$d.days=y(k/a),k%=a,this.$d.hours=y(k/n),k%=n,this.$d.minutes=y(k/i),k%=i,this.$d.seconds=y(k/r),k%=r,this.$d.milliseconds=k},C.toISOString=function(){var k=x(this.$d.years,"Y"),E=x(this.$d.months,"M"),A=+this.$d.days||0;this.$d.weeks&&(A+=7*this.$d.weeks);var N=x(A,"D"),P=x(this.$d.hours,"H"),I=x(this.$d.minutes,"M"),D=this.$d.seconds||0;this.$d.milliseconds&&(D+=this.$d.milliseconds/1e3,D=Math.round(1e3*D)/1e3);var _=x(D,"S"),R=k.negative||E.negative||N.negative||P.negative||I.negative||_.negative,M=P.format||I.format||_.format?"T":"",L=(R?"-":"")+"P"+k.format+E.format+N.format+M+P.format+I.format+_.format;return L==="P"||L==="-P"?"P0D":L},C.toJSON=function(){return this.toISOString()},C.format=function(k){var E=k||"YYYY-MM-DDTHH:mm:ss",A={Y:this.$d.years,YY:t.s(this.$d.years,2,"0"),YYYY:t.s(this.$d.years,4,"0"),M:this.$d.months,MM:t.s(this.$d.months,2,"0"),D:this.$d.days,DD:t.s(this.$d.days,2,"0"),H:this.$d.hours,HH:t.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:t.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:t.s(this.$d.seconds,2,"0"),SSS:t.s(this.$d.milliseconds,3,"0")};return E.replace(s,(function(N,P){return P||String(A[N])}))},C.as=function(k){return this.$ms/d[m(k)]},C.get=function(k){var E=this.$ms,A=m(k);return A==="milliseconds"?E%=1e3:E=A==="weeks"?y(E/d[A]):this.$d[A],E||0},C.add=function(k,E,A){var N;return N=E?k*d[m(E)]:f(k)?k.$ms:p(k,this).$ms,p(this.$ms+N*(A?-1:1),this)},C.subtract=function(k,E){return this.add(k,E,!0)},C.locale=function(k){var E=this.clone();return E.$l=k,E},C.clone=function(){return p(this.$ms,this)},C.humanize=function(k){return e().add(this.$ms,"ms").locale(this.$l).fromNow(!k)},C.valueOf=function(){return this.asMilliseconds()},C.milliseconds=function(){return this.get("milliseconds")},C.asMilliseconds=function(){return this.as("milliseconds")},C.seconds=function(){return this.get("seconds")},C.asSeconds=function(){return this.as("seconds")},C.minutes=function(){return this.get("minutes")},C.asMinutes=function(){return this.as("minutes")},C.hours=function(){return this.get("hours")},C.asHours=function(){return this.as("hours")},C.days=function(){return this.get("days")},C.asDays=function(){return this.as("days")},C.weeks=function(){return this.get("weeks")},C.asWeeks=function(){return this.as("weeks")},C.months=function(){return this.get("months")},C.asMonths=function(){return this.as("months")},C.years=function(){return this.get("years")},C.asYears=function(){return this.as("years")},w})(),T=o(function(w,C,k){return w.add(C.years()*k,"y").add(C.months()*k,"M").add(C.days()*k,"d").add(C.hours()*k,"h").add(C.minutes()*k,"m").add(C.seconds()*k,"s").add(C.milliseconds()*k,"ms")},"p");return function(w,C,k){e=k,t=k().$utils(),k.duration=function(N,P){var I=k.locale();return p(N,{$l:I},P)},k.isDuration=f;var E=C.prototype.add,A=C.prototype.subtract;C.prototype.add=function(N,P){return f(N)?T(this,N,1):E.bind(this)(N,P)},C.prototype.subtract=function(N,P){return f(N)?T(this,N,-1):A.bind(this)(N,P)}}}))});var yy,M5e,i2t,L5e,n2t,kh,$V,a2t,N5e,I5e=z(()=>{"use strict";yy=ys(wC(),1),M5e=ys(R5e(),1);St();Rr();Ir();Ut();Di();yy.default.extend(M5e.default);i2t=o(function(){Z.debug("Something is calling, setConf, remove the call")},"setConf"),L5e={monday:Qh,tuesday:fw,wednesday:pw,thursday:vc,friday:mw,saturday:gw,sunday:wl},n2t=o((e,t)=>{let r=[...e].map(()=>-1/0),i=[...e].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),n=0;for(let a of i)for(let s=0;s=r[s]){r[s]=a.endTime,a.order=s+t,s>n&&(n=s);break}return n},"getMaxIntersections"),$V=1e4,a2t=o(function(e,t,r,i){let n=ge().gantt;i.db.setDiagramId(t);let a=ge().securityLevel,s;a==="sandbox"&&(s=Je("#i"+t));let l=a==="sandbox"?Je(s.nodes()[0].contentDocument.body):Je("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(t);kh=h.parentElement.offsetWidth,kh===void 0&&(kh=1200),n.useWidth!==void 0&&(kh=n.useWidth);let d=i.db.getTasks(),f=[];for(let N of d)f.push(N.type);f=A(f);let p={},m=2*n.topPadding;if(i.db.getDisplayMode()==="compact"||n.displayMode==="compact"){let N={};for(let I of d)N[I.section]===void 0?N[I.section]=[I]:N[I.section].push(I);let P=0;for(let I of Object.keys(N)){let D=n2t(N[I],P)+1;P+=D,m+=D*(n.barHeight+n.barGap),p[I]=D}}else{m+=d.length*(n.barHeight+n.barGap);for(let N of f)p[N]=d.filter(P=>P.type===N).length}h.setAttribute("viewBox","0 0 "+kh+" "+m);let g=l.select(`[id="${t}"]`),y=xw().domain([wk(d,function(N){return N.startTime}),kk(d,function(N){return N.endTime})]).rangeRound([0,kh-n.leftPadding-n.rightPadding]);function v(N,P){let I=N.startTime,D=P.startTime,_=0;return I>D?_=1:IF.vert===V.vert?0:F.vert?1:-1);let B=[...new Set(N.map(F=>F.order))].map(F=>N.find(V=>V.order===F));g.append("g").selectAll("rect").data(B).enter().append("rect").attr("x",0).attr("y",function(F,V){return V=F.order,V*P+I-2}).attr("width",function(){return M-n.rightPadding/2}).attr("height",P).attr("class",function(F){for(let[V,H]of f.entries())if(F.type===H)return"section section"+V%n.numberSectionStyles;return"section section0"}).enter();let O=g.append("g").selectAll("rect").data(N).enter(),$=i.db.getLinks();if(O.append("rect").attr("id",function(F){return t+"-"+F.id}).attr("rx",3).attr("ry",3).attr("x",function(F){return F.milestone?y(F.startTime)+D+.5*(y(F.endTime)-y(F.startTime))-.5*_:y(F.startTime)+D}).attr("y",function(F,V){return V=F.order,F.vert?n.gridLineStartPadding:V*P+I}).attr("width",function(F){return F.milestone?_:F.vert?.08*_:y(F.renderEndTime||F.endTime)-y(F.startTime)}).attr("height",function(F){return F.vert?d.length*(n.barHeight+n.barGap)+n.barHeight*2:_}).attr("transform-origin",function(F,V){return V=F.order,(y(F.startTime)+D+.5*(y(F.endTime)-y(F.startTime))).toString()+"px "+(V*P+I+.5*_).toString()+"px"}).attr("class",function(F){let V="task",H="";F.classes.length>0&&(H=F.classes.join(" "));let j=0;for(let[Q,Y]of f.entries())F.type===Y&&(j=Q%n.numberSectionStyles);let U="";return F.active?F.crit?U+=" activeCrit":U=" active":F.done?F.crit?U=" doneCrit":U=" done":F.crit&&(U+=" crit"),U.length===0&&(U=" task"),F.milestone&&(U=" milestone "+U),F.vert&&(U=" vert "+U),U+=j,U+=" "+H,V+U}),O.append("text").attr("id",function(F){return t+"-"+F.id+"-text"}).text(function(F){return F.task}).attr("font-size",n.fontSize).attr("x",function(F){let V=y(F.startTime),H=y(F.renderEndTime||F.endTime);if(F.milestone&&(V+=.5*(y(F.endTime)-y(F.startTime))-.5*_,H=V+_),F.vert)return y(F.startTime)+D;let j=this.getBBox().width;return j>H-V?H+j+1.5*n.leftPadding>M?V+D-5:H+D+5:(H-V)/2+V+D}).attr("y",function(F,V){return F.vert?n.gridLineStartPadding+d.length*(n.barHeight+n.barGap)+60:(V=F.order,V*P+n.barHeight/2+(n.fontSize/2-2)+I)}).attr("text-height",_).attr("class",function(F){let V=y(F.startTime),H=y(F.endTime);F.milestone&&(H=V+_);let j=this.getBBox().width,U="";F.classes.length>0&&(U=F.classes.join(" "));let Q=0;for(let[ae,J]of f.entries())F.type===J&&(Q=ae%n.numberSectionStyles);let Y="";return F.active&&(F.crit?Y="activeCritText"+Q:Y="activeText"+Q),F.done?F.crit?Y=Y+" doneCritText"+Q:Y=Y+" doneText"+Q:F.crit&&(Y=Y+" critText"+Q),F.milestone&&(Y+=" milestoneText"),F.vert&&(Y+=" vertText"),j>H-V?H+j+1.5*n.leftPadding>M?U+" taskTextOutsideLeft taskTextOutside"+Q+" "+Y:U+" taskTextOutsideRight taskTextOutside"+Q+" "+Y+" width-"+j:U+" taskText taskText"+Q+" "+Y+" width-"+j}),ge().securityLevel==="sandbox"){let F;F=Je("#i"+t);let V=F.nodes()[0].contentDocument;O.filter(function(H){return $.has(H.id)}).each(function(H){var j=V.querySelector("#"+CSS.escape(t+"-"+H.id)),U=V.querySelector("#"+CSS.escape(t+"-"+H.id+"-text"));let Q=j.parentNode;var Y=V.createElement("a");Y.setAttribute("xlink:href",$.get(H.id)),Y.setAttribute("target","_top"),Q.appendChild(Y),Y.appendChild(j),Y.appendChild(U)})}}o(b,"drawRects");function T(N,P,I,D,_,R,M,L){if(M.length===0&&L.length===0)return;let B,O;for(let{startTime:j,endTime:U}of R)(B===void 0||jO)&&(O=U);if(!B||!O)return;if((0,yy.default)(O).diff((0,yy.default)(B),"year")>5){Z.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let $=i.db.getDateFormat(),G=[],F=null,V=(0,yy.default)(B);for(;V.valueOf()<=O;)i.db.isInvalidDate(V,$,M,L)?F?F.end=V:F={start:V,end:V}:F&&(G.push(F),F=null),V=V.add(1,"d");g.append("g").selectAll("rect").data(G).enter().append("rect").attr("id",j=>t+"-exclude-"+j.start.format("YYYY-MM-DD")).attr("x",j=>y(j.start.startOf("day"))+I).attr("y",n.gridLineStartPadding).attr("width",j=>y(j.end.endOf("day"))-y(j.start.startOf("day"))).attr("height",_-P-n.gridLineStartPadding).attr("transform-origin",function(j,U){return(y(j.start)+I+.5*(y(j.end)-y(j.start))).toString()+"px "+(U*N+.5*_).toString()+"px"}).attr("class","exclude-range")}o(T,"drawExcludeDays");function w(N,P,I,D){if(I<=0||N>P)return 1/0;let _=P-N,R=yy.default.duration({[D??"day"]:I}).asMilliseconds();return R<=0?1/0:Math.ceil(_/R)}o(w,"getEstimatedTickCount");function C(N,P,I,D){let _=i.db.getDateFormat(),R=i.db.getAxisFormat(),M;R?M=R:_==="D"?M="%d":M=n.axisFormat??"%Y-%m-%d";let L=JD(y).tickSize(-D+P+n.gridLineStartPadding).tickFormat(fp(M)),O=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(i.db.getTickInterval()||n.tickInterval);if(O!==null){let $=parseInt(O[1],10);if(isNaN($)||$<=0)Z.warn(`Invalid tick interval value: "${O[1]}". Skipping custom tick interval.`);else{let G=O[2],F=i.db.getWeekday()||n.weekday,V=y.domain(),H=V[0],j=V[1],U=w(H,j,$,G);if(U>$V)Z.warn(`The tick interval "${$}${G}" would generate ${U} ticks, which exceeds the maximum allowed (${$V}). This may indicate an invalid date or time range. Skipping custom tick interval.`);else switch(G){case"millisecond":L.ticks(gc.every($));break;case"second":L.ticks(io.every($));break;case"minute":L.ticks(Ru.every($));break;case"hour":L.ticks(Lu.every($));break;case"day":L.ticks(Oo.every($));break;case"week":L.ticks(L5e[F].every($));break;case"month":L.ticks(Mu.every($));break}}}if(g.append("g").attr("class","grid").attr("transform","translate("+N+", "+(D-50)+")").call(L).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),i.db.topAxisEnabled()||n.topAxis){let $=QD(y).tickSize(-D+P+n.gridLineStartPadding).tickFormat(fp(M));if(O!==null){let G=parseInt(O[1],10);if(isNaN(G)||G<=0)Z.warn(`Invalid tick interval value: "${O[1]}". Skipping custom tick interval.`);else{let F=O[2],V=i.db.getWeekday()||n.weekday,H=y.domain(),j=H[0],U=H[1];if(w(j,U,G,F)<=$V)switch(F){case"millisecond":$.ticks(gc.every(G));break;case"second":$.ticks(io.every(G));break;case"minute":$.ticks(Ru.every(G));break;case"hour":$.ticks(Lu.every(G));break;case"day":$.ticks(Oo.every(G));break;case"week":$.ticks(L5e[V].every(G));break;case"month":$.ticks(Mu.every(G));break}}}g.append("g").attr("class","grid").attr("transform","translate("+N+", "+P+")").call($).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(C,"makeGrid");function k(N,P){let I=0,D=Object.keys(p).map(_=>[_,p[_]]);g.append("g").selectAll("text").data(D).enter().append(function(_){let R=_[0].split(vt.lineBreakRegex),M=-(R.length-1)/2,L=u.createElementNS("http://www.w3.org/2000/svg","text");L.setAttribute("dy",M+"em");for(let[B,O]of R.entries()){let $=u.createElementNS("http://www.w3.org/2000/svg","tspan");$.setAttribute("alignment-baseline","central"),$.setAttribute("x","10"),B>0&&$.setAttribute("dy","1em"),$.textContent=O,L.appendChild($)}return L}).attr("x",10).attr("y",function(_,R){if(R>0)for(let M=0;M{"use strict";s2t=o(e=>` + .mermaid-main-font { + font-family: ${e.fontFamily}; + } + + .exclude-range { + fill: ${e.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${e.sectionBkgColor}; + } + + .section2 { + fill: ${e.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${e.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${e.titleColor}; + } + + .sectionTitle1 { + fill: ${e.titleColor}; + } + + .sectionTitle2 { + fill: ${e.titleColor}; + } + + .sectionTitle3 { + fill: ${e.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: ${e.fontFamily}; + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${e.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${e.fontFamily}; + fill: ${e.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${e.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: ${e.fontFamily}; + } + + .taskTextOutsideRight { + fill: ${e.taskTextDarkColor}; + text-anchor: start; + font-family: ${e.fontFamily}; + } + + .taskTextOutsideLeft { + fill: ${e.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${e.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${e.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${e.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${e.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${e.taskBkgColor}; + stroke: ${e.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${e.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${e.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${e.activeTaskBkgColor}; + stroke: ${e.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${e.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${e.doneTaskBorderColor}; + fill: ${e.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${e.taskTextDarkColor} !important; + } + + /* Done task text displayed outside the bar sits against the diagram background, + not against the done-task bar, so it must use the outside/contrast color. */ + .doneText0.taskTextOutsideLeft, + .doneText0.taskTextOutsideRight, + .doneText1.taskTextOutsideLeft, + .doneText1.taskTextOutsideRight, + .doneText2.taskTextOutsideLeft, + .doneText2.taskTextOutsideRight, + .doneText3.taskTextOutsideLeft, + .doneText3.taskTextOutsideRight { + fill: ${e.taskTextOutsideColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${e.critBorderColor}; + fill: ${e.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${e.critBorderColor}; + fill: ${e.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${e.critBorderColor}; + fill: ${e.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${e.taskTextDarkColor} !important; + } + + /* Done-crit task text outside the bar \u2014 same reasoning as doneText above. */ + .doneCritText0.taskTextOutsideLeft, + .doneCritText0.taskTextOutsideRight, + .doneCritText1.taskTextOutsideLeft, + .doneCritText1.taskTextOutsideRight, + .doneCritText2.taskTextOutsideLeft, + .doneCritText2.taskTextOutsideRight, + .doneCritText3.taskTextOutsideLeft, + .doneCritText3.taskTextOutsideRight { + fill: ${e.taskTextOutsideColor} !important; + } + + .vert { + stroke: ${e.vertLineColor}; + } + + .vertText { + font-size: 15px; + text-anchor: middle; + fill: ${e.vertLineColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${e.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.titleColor||e.textColor}; + font-family: ${e.fontFamily}; + } +`,"getStyles"),O5e=s2t});var B5e={};xr(B5e,{diagram:()=>o2t});var o2t,F5e=z(()=>{"use strict";c5e();D5e();I5e();P5e();o2t={parser:l5e,db:A5e,renderer:N5e,styles:O5e}});var G5e,V5e=z(()=>{"use strict";sl();St();G5e={parse:o(async e=>{let t=await bn("info",e);Z.debug(t)},"parse")}});var h2t,d2t,W5e,q5e=z(()=>{"use strict";h2t={version:"11.15.0"},d2t=o(()=>h2t.version,"getVersion"),W5e={getVersion:d2t}});var bi,ps=z(()=>{"use strict";Rr();Ut();bi=o(e=>{let{securityLevel:t}=ge(),r=Je("body");if(t==="sandbox"){let a=Je(`#i${e}`).node()?.contentDocument??document;r=Je(a.body)}return r.select(`#${e}`)},"selectSvgElement")});var f2t,U5e,H5e=z(()=>{"use strict";St();ps();Di();f2t=o((e,t,r)=>{Z.debug(`rendering info diagram +`+e);let i=bi(t);Br(i,100,400,!0),i.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),U5e={draw:f2t}});var Y5e={};xr(Y5e,{diagram:()=>p2t});var p2t,j5e=z(()=>{"use strict";V5e();q5e();H5e();p2t={parser:G5e,db:W5e,renderer:U5e}});var Z5e,zV,R6,GV,y2t,v2t,x2t,b2t,T2t,C2t,k2t,L6,VV=z(()=>{"use strict";St();Ci();Bn();Z5e=or.pie,zV={sections:new Map,showData:!1,config:Z5e},R6=zV.sections,GV=zV.showData,y2t=structuredClone(Z5e),v2t=o(()=>structuredClone(y2t),"getConfig"),x2t=o(()=>{R6=new Map,GV=zV.showData,gr()},"clear"),b2t=o(({label:e,value:t})=>{if(t<0)throw new Error(`"${e}" has invalid value: ${t}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);R6.has(e)||(R6.set(e,t),Z.debug(`added new section: ${e}, with value: ${t}`))},"addSection"),T2t=o(()=>R6,"getSections"),C2t=o(e=>{GV=e},"setShowData"),k2t=o(()=>GV,"getShowData"),L6={getConfig:v2t,clear:x2t,setDiagramTitle:Ar,getDiagramTitle:Er,setAccTitle:Cr,getAccTitle:kr,setAccDescription:wr,getAccDescription:Sr,addSection:b2t,getSections:T2t,setShowData:C2t,getShowData:k2t}});var w2t,Q5e,J5e=z(()=>{"use strict";sl();St();au();VV();w2t=o((e,t)=>{ca(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},"populateDb"),Q5e={parse:o(async e=>{let t=await bn("pie",e);Z.debug(t),w2t(t,L6)},"parse")}});var S2t,eAe,tAe=z(()=>{"use strict";S2t=o(e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,"getStyles"),eAe=S2t});var E2t,A2t,rAe,iAe=z(()=>{"use strict";Rr();Ut();St();ps();Di();Xt();E2t=o(e=>{let t=[...e.values()].reduce((n,a)=>n+a,0),r=[...e.entries()].map(([n,a])=>({label:n,value:a})).filter(n=>n.value/t*100>=1);return Sw().value(n=>n.value).sort(null)(r)},"createPieArcs"),A2t=o((e,t,r,i)=>{Z.debug(`rendering pie chart +`+e);let n=i.db,a=ge(),s=Gr(n.getConfig(),a.pie),l=40,u=18,h=4,d=450,f=d,p=bi(t),m=p.append("g");m.attr("transform","translate("+f/2+","+d/2+")");let{themeVariables:g}=a,[y]=Za(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(f,d)/2-l,b=Al().innerRadius(0).outerRadius(x),T=Al().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let w=n.getSections(),C=E2t(w),k=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],E=0;w.forEach(F=>{E+=F});let A=C.filter(F=>(F.data.value/E*100).toFixed(0)!=="0"),N=ro(k).domain([...w.keys()]);m.selectAll("mySlices").data(A).enter().append("path").attr("d",b).attr("fill",F=>N(F.data.label)).attr("class","pieCircle"),m.selectAll("mySlices").data(A).enter().append("text").text(F=>(F.data.value/E*100).toFixed(0)+"%").attr("transform",F=>"translate("+T.centroid(F)+")").style("text-anchor","middle").attr("class","slice");let P=m.append("text").text(n.getDiagramTitle()).attr("x",0).attr("y",-(d-50)/2).attr("class","pieTitleText"),I=[...w.entries()].map(([F,V])=>({label:F,value:V})),D=m.selectAll(".legend").data(I).enter().append("g").attr("class","legend").attr("transform",(F,V)=>{let H=u+h,j=H*I.length/2,U=12*u,Q=V*H-j;return"translate("+U+","+Q+")"});D.append("rect").attr("width",u).attr("height",u).style("fill",F=>N(F.label)).style("stroke",F=>N(F.label)),D.append("text").attr("x",u+h).attr("y",u-h).text(F=>n.getShowData()?`${F.label} [${F.value}]`:F.label);let _=Math.max(...D.selectAll("text").nodes().map(F=>F?.getBoundingClientRect().width??0)),R=f+l+u+h+_,M=P.node()?.getBoundingClientRect().width??0,L=f/2-M/2,B=f/2+M/2,O=Math.min(0,L),G=Math.max(R,B)-O;p.attr("viewBox",`${O} 0 ${G} ${d}`),Br(p,d,G,s.useMaxWidth)},"draw"),rAe={draw:A2t}});var nAe={};xr(nAe,{diagram:()=>_2t});var _2t,aAe=z(()=>{"use strict";J5e();VV();tAe();iAe();_2t={parser:Q5e,db:L6,renderer:rAe,styles:eAe}});var WV,oAe,lAe=z(()=>{"use strict";WV=(function(){var e=o(function(W,ce,K,Re){for(K=K||{},Re=W.length;Re--;K[W[Re]]=ce);return K},"o"),t=[1,3],r=[1,4],i=[1,5],n=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,15,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,15,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],d=[1,37],f=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,45],x=[1,14],b=[1,23],T=[1,18],w=[1,19],C=[1,20],k=[1,21],E=[1,22],A=[1,24],N=[1,25],P=[1,26],I=[1,27],D=[1,28],_=[1,29],R=[1,32],M=[1,33],L=[1,34],B=[1,39],O=[1,40],$=[1,42],G=[1,44],F=[1,63],V=[1,62],H=[4,5,8,10,12,13,14,15,18,44,47,49,55,56,57,63,64,65,66,67],j=[1,66],U=[1,67],Q=[1,68],Y=[1,69],ae=[1,70],J=[1,71],te=[1,72],re=[1,73],ee=[1,74],Te=[1,75],ue=[1,76],De=[1,77],Ie=[4,5,6,7,8,9,10,11,12,13,14,15,18],Ee=[1,91],we=[1,92],Me=[1,93],$e=[1,100],de=[1,94],rt=[1,97],ke=[1,95],Fe=[1,96],He=[1,98],at=[1,99],qe=[1,103],Ue=[10,55,56,57],ye=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],ve={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(ce,K,Re,xe,Oe,be,Be){var Ae=be.length-1;switch(Oe){case 23:this.$=be[Ae];break;case 24:this.$=be[Ae-1]+""+be[Ae];break;case 26:this.$=be[Ae-1]+be[Ae];break;case 27:this.$=[be[Ae].trim()];break;case 28:be[Ae-2].push(be[Ae].trim()),this.$=be[Ae-2];break;case 29:this.$=be[Ae-4],xe.addClass(be[Ae-2],be[Ae]);break;case 37:this.$=[];break;case 42:this.$=be[Ae].trim(),xe.setDiagramTitle(this.$);break;case 43:this.$=be[Ae].trim(),xe.setAccTitle(this.$);break;case 44:case 45:this.$=be[Ae].trim(),xe.setAccDescription(this.$);break;case 46:xe.addSection(be[Ae].substr(8)),this.$=be[Ae].substr(8);break;case 47:xe.addPoint(be[Ae-3],"",be[Ae-1],be[Ae],[]);break;case 48:xe.addPoint(be[Ae-4],be[Ae-3],be[Ae-1],be[Ae],[]);break;case 49:xe.addPoint(be[Ae-4],"",be[Ae-2],be[Ae-1],be[Ae]);break;case 50:xe.addPoint(be[Ae-5],be[Ae-4],be[Ae-2],be[Ae-1],be[Ae]);break;case 51:xe.setXAxisLeftText(be[Ae-2]),xe.setXAxisRightText(be[Ae]);break;case 52:be[Ae-1].text+=" \u27F6 ",xe.setXAxisLeftText(be[Ae-1]);break;case 53:xe.setXAxisLeftText(be[Ae]);break;case 54:xe.setYAxisBottomText(be[Ae-2]),xe.setYAxisTopText(be[Ae]);break;case 55:be[Ae-1].text+=" \u27F6 ",xe.setYAxisBottomText(be[Ae-1]);break;case 56:xe.setYAxisBottomText(be[Ae]);break;case 57:xe.setQuadrant1Text(be[Ae]);break;case 58:xe.setQuadrant2Text(be[Ae]);break;case 59:xe.setQuadrant3Text(be[Ae]);break;case 60:xe.setQuadrant4Text(be[Ae]);break;case 64:this.$={text:be[Ae],type:"text"};break;case 65:this.$={text:be[Ae-1].text+""+be[Ae],type:be[Ae-1].type};break;case 66:this.$={text:be[Ae],type:"text"};break;case 67:this.$={text:be[Ae],type:"markdown"};break;case 68:this.$=be[Ae];break;case 69:this.$=be[Ae-1]+""+be[Ae];break}},"anonymous"),table:[{18:t,26:1,27:2,28:r,55:i,56:n,57:a},{1:[3]},{18:t,26:8,27:2,28:r,55:i,56:n,57:a},{18:t,26:9,27:2,28:r,55:i,56:n,57:a},e(s,[2,33],{29:10}),e(l,[2,61]),e(l,[2,62]),e(l,[2,63]),{1:[2,30]},{1:[2,31]},e(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:f,10:p,12:m,13:g,14:y,15:v,18:x,25:b,35:T,37:w,39:C,41:k,42:E,48:A,50:N,51:P,52:I,53:D,54:_,60:R,61:M,63:L,64:B,65:O,66:$,67:G}),e(s,[2,34]),{27:46,55:i,56:n,57:a},e(u,[2,37]),e(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:47,4:d,5:f,10:p,12:m,13:g,14:y,15:v,18:x,25:b,35:T,37:w,39:C,41:k,42:E,48:A,50:N,51:P,52:I,53:D,54:_,60:R,61:M,63:L,64:B,65:O,66:$,67:G}),e(u,[2,39]),e(u,[2,40]),e(u,[2,41]),{36:[1,48]},{38:[1,49]},{40:[1,50]},e(u,[2,45]),e(u,[2,46]),{18:[1,51]},{4:d,5:f,10:p,12:m,13:g,14:y,15:v,43:52,58:31,60:R,61:M,63:L,64:B,65:O,66:$,67:G},{4:d,5:f,10:p,12:m,13:g,14:y,15:v,43:53,58:31,60:R,61:M,63:L,64:B,65:O,66:$,67:G},{4:d,5:f,10:p,12:m,13:g,14:y,15:v,43:54,58:31,60:R,61:M,63:L,64:B,65:O,66:$,67:G},{4:d,5:f,10:p,12:m,13:g,14:y,15:v,43:55,58:31,60:R,61:M,63:L,64:B,65:O,66:$,67:G},{4:d,5:f,10:p,12:m,13:g,14:y,15:v,43:56,58:31,60:R,61:M,63:L,64:B,65:O,66:$,67:G},{4:d,5:f,10:p,12:m,13:g,14:y,15:v,43:57,58:31,60:R,61:M,63:L,64:B,65:O,66:$,67:G},{4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,44:[1,58],47:[1,59],58:61,59:60,63:L,64:B,65:O,66:$,67:G},e(H,[2,64]),e(H,[2,66]),e(H,[2,67]),e(H,[2,70]),e(H,[2,71]),e(H,[2,72]),e(H,[2,73]),e(H,[2,74]),e(H,[2,75]),e(H,[2,76]),e(H,[2,77]),e(H,[2,78]),e(H,[2,79]),e(H,[2,80]),e(H,[2,81]),e(s,[2,35]),e(u,[2,38]),e(u,[2,42]),e(u,[2,43]),e(u,[2,44]),{3:65,4:j,5:U,6:Q,7:Y,8:ae,9:J,10:te,11:re,12:ee,13:Te,14:ue,15:De,21:64},e(u,[2,53],{59:60,58:61,4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,49:[1,78],63:L,64:B,65:O,66:$,67:G}),e(u,[2,56],{59:60,58:61,4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,49:[1,79],63:L,64:B,65:O,66:$,67:G}),e(u,[2,57],{59:60,58:61,4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,63:L,64:B,65:O,66:$,67:G}),e(u,[2,58],{59:60,58:61,4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,63:L,64:B,65:O,66:$,67:G}),e(u,[2,59],{59:60,58:61,4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,63:L,64:B,65:O,66:$,67:G}),e(u,[2,60],{59:60,58:61,4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,63:L,64:B,65:O,66:$,67:G}),{45:[1,80]},{44:[1,81]},e(H,[2,65]),e(H,[2,82]),e(H,[2,83]),e(H,[2,84]),{3:83,4:j,5:U,6:Q,7:Y,8:ae,9:J,10:te,11:re,12:ee,13:Te,14:ue,15:De,18:[1,82]},e(Ie,[2,23]),e(Ie,[2,1]),e(Ie,[2,2]),e(Ie,[2,3]),e(Ie,[2,4]),e(Ie,[2,5]),e(Ie,[2,6]),e(Ie,[2,7]),e(Ie,[2,8]),e(Ie,[2,9]),e(Ie,[2,10]),e(Ie,[2,11]),e(Ie,[2,12]),e(u,[2,52],{58:31,43:84,4:d,5:f,10:p,12:m,13:g,14:y,15:v,60:R,61:M,63:L,64:B,65:O,66:$,67:G}),e(u,[2,55],{58:31,43:85,4:d,5:f,10:p,12:m,13:g,14:y,15:v,60:R,61:M,63:L,64:B,65:O,66:$,67:G}),{46:[1,86]},{45:[1,87]},{4:Ee,5:we,6:Me,8:$e,11:de,13:rt,16:90,17:ke,18:Fe,19:He,20:at,22:89,23:88},e(Ie,[2,24]),e(u,[2,51],{59:60,58:61,4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,63:L,64:B,65:O,66:$,67:G}),e(u,[2,54],{59:60,58:61,4:d,5:f,8:F,10:p,12:m,13:g,14:y,15:v,18:V,63:L,64:B,65:O,66:$,67:G}),e(u,[2,47],{22:89,16:90,23:101,4:Ee,5:we,6:Me,8:$e,11:de,13:rt,17:ke,18:Fe,19:He,20:at}),{46:[1,102]},e(u,[2,29],{10:qe}),e(Ue,[2,27],{16:104,4:Ee,5:we,6:Me,8:$e,11:de,13:rt,17:ke,18:Fe,19:He,20:at}),e(ye,[2,25]),e(ye,[2,13]),e(ye,[2,14]),e(ye,[2,15]),e(ye,[2,16]),e(ye,[2,17]),e(ye,[2,18]),e(ye,[2,19]),e(ye,[2,20]),e(ye,[2,21]),e(ye,[2,22]),e(u,[2,49],{10:qe}),e(u,[2,48],{22:89,16:90,23:105,4:Ee,5:we,6:Me,8:$e,11:de,13:rt,17:ke,18:Fe,19:He,20:at}),{4:Ee,5:we,6:Me,8:$e,11:de,13:rt,16:90,17:ke,18:Fe,19:He,20:at,22:106},e(ye,[2,26]),e(u,[2,50],{10:qe}),e(Ue,[2,28],{16:104,4:Ee,5:we,6:Me,8:$e,11:de,13:rt,17:ke,18:Fe,19:He,20:at})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(ce,K){if(K.recoverable)this.trace(ce);else{var Re=new Error(ce);throw Re.hash=K,Re}},"parseError"),parse:o(function(ce){var K=this,Re=[0],xe=[],Oe=[null],be=[],Be=this.table,Ae="",Ve=0,Pe=0,Ye=0,le=2,st=1,me=be.slice.call(arguments,1),ot=Object.create(this.lexer),kt={yy:{}};for(var Gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Gt)&&(kt.yy[Gt]=this.yy[Gt]);ot.setInput(ce,kt.yy),kt.yy.lexer=ot,kt.yy.parser=this,typeof ot.yylloc>"u"&&(ot.yylloc={});var Tt=ot.yylloc;be.push(Tt);var Et=ot.options&&ot.options.ranges;typeof kt.yy.parseError=="function"?this.parseError=kt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function yt(Se){Re.length=Re.length-2*Se,Oe.length=Oe.length-Se,be.length=be.length-Se}o(yt,"popStack");function oe(){var Se;return Se=xe.pop()||ot.lex()||st,typeof Se!="number"&&(Se instanceof Array&&(xe=Se,Se=xe.pop()),Se=K.symbols_[Se]||Se),Se}o(oe,"lex");for(var ht,gt,et,pe,Qe,nt,dt={},Ft,Rt,$t,lr;;){if(et=Re[Re.length-1],this.defaultActions[et]?pe=this.defaultActions[et]:((ht===null||typeof ht>"u")&&(ht=oe()),pe=Be[et]&&Be[et][ht]),typeof pe>"u"||!pe.length||!pe[0]){var pt="";lr=[];for(Ft in Be[et])this.terminals_[Ft]&&Ft>le&&lr.push("'"+this.terminals_[Ft]+"'");ot.showPosition?pt="Parse error on line "+(Ve+1)+`: +`+ot.showPosition()+` +Expecting `+lr.join(", ")+", got '"+(this.terminals_[ht]||ht)+"'":pt="Parse error on line "+(Ve+1)+": Unexpected "+(ht==st?"end of input":"'"+(this.terminals_[ht]||ht)+"'"),this.parseError(pt,{text:ot.match,token:this.terminals_[ht]||ht,line:ot.yylineno,loc:Tt,expected:lr})}if(pe[0]instanceof Array&&pe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+et+", token: "+ht);switch(pe[0]){case 1:Re.push(ht),Oe.push(ot.yytext),be.push(ot.yylloc),Re.push(pe[1]),ht=null,gt?(ht=gt,gt=null):(Pe=ot.yyleng,Ae=ot.yytext,Ve=ot.yylineno,Tt=ot.yylloc,Ye>0&&Ye--);break;case 2:if(Rt=this.productions_[pe[1]][1],dt.$=Oe[Oe.length-Rt],dt._$={first_line:be[be.length-(Rt||1)].first_line,last_line:be[be.length-1].last_line,first_column:be[be.length-(Rt||1)].first_column,last_column:be[be.length-1].last_column},Et&&(dt._$.range=[be[be.length-(Rt||1)].range[0],be[be.length-1].range[1]]),nt=this.performAction.apply(dt,[Ae,Pe,Ve,kt.yy,pe[1],Oe,be].concat(me)),typeof nt<"u")return nt;Rt&&(Re=Re.slice(0,-1*Rt*2),Oe=Oe.slice(0,-1*Rt),be=be.slice(0,-1*Rt)),Re.push(this.productions_[pe[1]][0]),Oe.push(dt.$),be.push(dt._$),$t=Be[Re[Re.length-2]][Re[Re.length-1]],Re.push($t);break;case 3:return!0}}return!0},"parse")},ie=(function(){var W={EOF:1,parseError:o(function(K,Re){if(this.yy.parser)this.yy.parser.parseError(K,Re);else throw new Error(K)},"parseError"),setInput:o(function(ce,K){return this.yy=K||this.yy||{},this._input=ce,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var ce=this._input[0];this.yytext+=ce,this.yyleng++,this.offset++,this.match+=ce,this.matched+=ce;var K=ce.match(/(?:\r\n?|\n).*/g);return K?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ce},"input"),unput:o(function(ce){var K=ce.length,Re=ce.split(/(?:\r\n?|\n)/g);this._input=ce+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-K),this.offset-=K;var xe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Re.length-1&&(this.yylineno-=Re.length-1);var Oe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Re?(Re.length===xe.length?this.yylloc.first_column:0)+xe[xe.length-Re.length].length-Re[0].length:this.yylloc.first_column-K},this.options.ranges&&(this.yylloc.range=[Oe[0],Oe[0]+this.yyleng-K]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(ce){this.unput(this.match.slice(ce))},"less"),pastInput:o(function(){var ce=this.matched.substr(0,this.matched.length-this.match.length);return(ce.length>20?"...":"")+ce.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var ce=this.match;return ce.length<20&&(ce+=this._input.substr(0,20-ce.length)),(ce.substr(0,20)+(ce.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var ce=this.pastInput(),K=new Array(ce.length+1).join("-");return ce+this.upcomingInput()+` +`+K+"^"},"showPosition"),test_match:o(function(ce,K){var Re,xe,Oe;if(this.options.backtrack_lexer&&(Oe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Oe.yylloc.range=this.yylloc.range.slice(0))),xe=ce[0].match(/(?:\r\n?|\n).*/g),xe&&(this.yylineno+=xe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:xe?xe[xe.length-1].length-xe[xe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ce[0].length},this.yytext+=ce[0],this.match+=ce[0],this.matches=ce,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ce[0].length),this.matched+=ce[0],Re=this.performAction.call(this,this.yy,this,K,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Re)return Re;if(this._backtrack){for(var be in Oe)this[be]=Oe[be];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ce,K,Re,xe;this._more||(this.yytext="",this.match="");for(var Oe=this._currentRules(),be=0;beK[0].length)){if(K=Re,xe=be,this.options.backtrack_lexer){if(ce=this.test_match(Re,Oe[be]),ce!==!1)return ce;if(this._backtrack){K=!1;continue}else return!1}else if(!this.options.flex)break}return K?(ce=this.test_match(K,Oe[xe]),ce!==!1?ce:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var K=this.next();return K||this.lex()},"lex"),begin:o(function(K){this.conditionStack.push(K)},"begin"),popState:o(function(){var K=this.conditionStack.length-1;return K>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(K){return K=this.conditionStack.length-1-Math.abs(K||0),K>=0?this.conditionStack[K]:"INITIAL"},"topState"),pushState:o(function(K){this.begin(K)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(K,Re,xe,Oe){var be=Oe;switch(xe){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 15;case 37:return 11;case 38:return 64;case 39:return 10;case 40:return 65;case 41:return 65;case 42:return 14;case 43:return 13;case 44:return 67;case 45:return 66;case 46:return 12;case 47:return 8;case 48:return 5;case 49:return 18;case 50:return 56;case 51:return 63;case 52:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?:[^\x00-\x7F]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return W})();ve.lexer=ie;function fe(){this.yy={}}return o(fe,"Parser"),fe.prototype=ve,ve.Parser=fe,new fe})();WV.parser=WV;oAe=WV});var ms,M6,cAe=z(()=>{"use strict";Rr();Bn();St();$f();ms=Ao(),M6=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:or.quadrantChart?.chartWidth||500,chartWidth:or.quadrantChart?.chartHeight||500,titlePadding:or.quadrantChart?.titlePadding||10,titleFontSize:or.quadrantChart?.titleFontSize||20,quadrantPadding:or.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:or.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:or.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:or.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:or.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:or.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:or.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:or.quadrantChart?.pointTextPadding||5,pointLabelFontSize:or.quadrantChart?.pointLabelFontSize||12,pointRadius:or.quadrantChart?.pointRadius||5,xAxisPosition:or.quadrantChart?.xAxisPosition||"top",yAxisPosition:or.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:or.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:or.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:ms.quadrant1Fill,quadrant2Fill:ms.quadrant2Fill,quadrant3Fill:ms.quadrant3Fill,quadrant4Fill:ms.quadrant4Fill,quadrant1TextFill:ms.quadrant1TextFill,quadrant2TextFill:ms.quadrant2TextFill,quadrant3TextFill:ms.quadrant3TextFill,quadrant4TextFill:ms.quadrant4TextFill,quadrantPointFill:ms.quadrantPointFill,quadrantPointTextFill:ms.quadrantPointTextFill,quadrantXAxisTextFill:ms.quadrantXAxisTextFill,quadrantYAxisTextFill:ms.quadrantYAxisTextFill,quadrantTitleFill:ms.quadrantTitleFill,quadrantInternalBorderStrokeFill:ms.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:ms.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,Z.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,r){this.classes.set(t,r)}setConfig(t){Z.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){Z.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,r,i,n){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:t==="top"&&r?a:0,bottom:t==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&i?l:0,right:this.config.yAxisPosition==="right"&&i?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,d={top:n?h:0},f=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+d.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-d.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:d,quadrantSpace:{quadrantLeft:f,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(t,r,i,n){let{quadrantSpace:a,titleSpace:s}=n,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:d,quadrantTop:f,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?d/2:0),y:t==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+f+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+d+(m?d/2:0),y:t==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+f+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&i&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:f+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&i&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:f+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(t){let{quadrantSpace:r}=t,{quadrantHalfHeight:i,quadrantLeft:n,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:n+a,y:s,width:a,height:i,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:n,y:s,width:a,height:i,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:n,y:s+i,width:a,height:i,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:n+a,y:s+i,width:a,height:i,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(t){let{quadrantSpace:r}=t,{quadrantHeight:i,quadrantLeft:n,quadrantTop:a,quadrantWidth:s}=r,l=kl().domain([0,1]).range([n,s+n]),u=kl().domain([0,1]).range([i+a,a]);return this.data.points.map(d=>{let f=this.classes.get(d.className);return f&&(d={...f,...d}),{x:l(d.x),y:u(d.y),fill:d.color??this.themeConfig.quadrantPointFill,radius:d.radius??this.config.pointRadius,text:{text:d.text,fill:this.themeConfig.quadrantPointTextFill,x:l(d.x),y:u(d.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:d.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:d.strokeWidth??"0px"}})}getBorders(t){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:i}=t,{quadrantHalfHeight:n,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=i;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+n,x2:s+h-r,y2:u+n}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),i=this.config.showTitle&&!!this.data.titleText,n=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(n,t,r,i);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(n,t,r,a),borderLines:this.getBorders(a),title:this.getTitle(i)}}}});function qV(e){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(e)}function uAe(e){return!/^\d+$/.test(e)}function hAe(e){return!/^\d+px$/.test(e)}var pm,dAe=z(()=>{"use strict";pm=class extends Error{static{o(this,"InvalidStyleError")}constructor(t,r,i){super(`value for ${t} ${r} is invalid, please use a valid ${i}`),this.name="InvalidStyleError"}};o(qV,"validateHexCode");o(uAe,"validateNumber");o(hAe,"validateSizeInPixels")});function wh(e){return fr(e.trim(),L2t)}function M2t(e){wa.setData({quadrant1Text:wh(e.text)})}function N2t(e){wa.setData({quadrant2Text:wh(e.text)})}function I2t(e){wa.setData({quadrant3Text:wh(e.text)})}function O2t(e){wa.setData({quadrant4Text:wh(e.text)})}function P2t(e){wa.setData({xAxisLeftText:wh(e.text)})}function B2t(e){wa.setData({xAxisRightText:wh(e.text)})}function F2t(e){wa.setData({yAxisTopText:wh(e.text)})}function $2t(e){wa.setData({yAxisBottomText:wh(e.text)})}function UV(e){let t={};for(let r of e){let[i,n]=r.trim().split(/\s*:\s*/);if(i==="radius"){if(uAe(n))throw new pm(i,n,"number");t.radius=parseInt(n)}else if(i==="color"){if(qV(n))throw new pm(i,n,"hex code");t.color=n}else if(i==="stroke-color"){if(qV(n))throw new pm(i,n,"hex code");t.strokeColor=n}else if(i==="stroke-width"){if(hAe(n))throw new pm(i,n,"number of pixels (eg. 10px)");t.strokeWidth=n}else throw new Error(`style named ${i} is not supported.`)}return t}function z2t(e,t,r,i,n){let a=UV(n);wa.addPoints([{x:r,y:i,text:wh(e.text),className:t,...a}])}function G2t(e,t){wa.addClass(e,UV(t))}function V2t(e){wa.setConfig({chartWidth:e})}function W2t(e){wa.setConfig({chartHeight:e})}function q2t(){let e=ge(),{themeVariables:t,quadrantChart:r}=e;return r&&wa.setConfig(r),wa.setThemeConfig({quadrant1Fill:t.quadrant1Fill,quadrant2Fill:t.quadrant2Fill,quadrant3Fill:t.quadrant3Fill,quadrant4Fill:t.quadrant4Fill,quadrant1TextFill:t.quadrant1TextFill,quadrant2TextFill:t.quadrant2TextFill,quadrant3TextFill:t.quadrant3TextFill,quadrant4TextFill:t.quadrant4TextFill,quadrantPointFill:t.quadrantPointFill,quadrantPointTextFill:t.quadrantPointTextFill,quadrantXAxisTextFill:t.quadrantXAxisTextFill,quadrantYAxisTextFill:t.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:t.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:t.quadrantInternalBorderStrokeFill,quadrantTitleFill:t.quadrantTitleFill}),wa.setData({titleText:Er()}),wa.build()}var L2t,wa,U2t,fAe,pAe=z(()=>{"use strict";Ut();Ir();Ci();cAe();dAe();L2t=ge();o(wh,"textSanitizer");wa=new M6;o(M2t,"setQuadrant1Text");o(N2t,"setQuadrant2Text");o(I2t,"setQuadrant3Text");o(O2t,"setQuadrant4Text");o(P2t,"setXAxisLeftText");o(B2t,"setXAxisRightText");o(F2t,"setYAxisTopText");o($2t,"setYAxisBottomText");o(UV,"parseStyles");o(z2t,"addPoint");o(G2t,"addClass");o(V2t,"setWidth");o(W2t,"setHeight");o(q2t,"getQuadrantData");U2t=o(function(){wa.clear(),gr()},"clear"),fAe={setWidth:V2t,setHeight:W2t,setQuadrant1Text:M2t,setQuadrant2Text:N2t,setQuadrant3Text:I2t,setQuadrant4Text:O2t,setXAxisLeftText:P2t,setXAxisRightText:B2t,setYAxisTopText:F2t,setYAxisBottomText:$2t,parseStyles:UV,addPoint:z2t,addClass:G2t,getQuadrantData:q2t,clear:U2t,setAccTitle:Cr,getAccTitle:kr,setDiagramTitle:Ar,getDiagramTitle:Er,getAccDescription:Sr,setAccDescription:wr}});var H2t,mAe,gAe=z(()=>{"use strict";Rr();Ut();St();Di();H2t=o((e,t,r,i)=>{function n(A){return A==="top"?"hanging":"middle"}o(n,"getDominantBaseLine");function a(A){return A==="left"?"start":"middle"}o(a,"getTextAnchor");function s(A){return`translate(${A.x}, ${A.y}) rotate(${A.rotation||0})`}o(s,"getTransformation");let l=ge();Z.debug(`Rendering quadrant chart +`+e);let u=l.securityLevel,h;u==="sandbox"&&(h=Je("#i"+t));let f=(u==="sandbox"?Je(h.nodes()[0].contentDocument.body):Je("body")).select(`[id="${t}"]`),p=f.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;Br(f,g,m,l.quadrantChart?.useMaxWidth??!0),f.attr("viewBox","0 0 "+m+" "+g),i.db.setHeight(g),i.db.setWidth(m);let y=i.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),T=p.append("g").attr("class","labels"),w=p.append("g").attr("class","title");y.title&&w.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",n(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",A=>A.x1).attr("y1",A=>A.y1).attr("x2",A=>A.x2).attr("y2",A=>A.y2).style("stroke",A=>A.strokeFill).style("stroke-width",A=>A.strokeWidth);let C=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");C.append("rect").attr("x",A=>A.x).attr("y",A=>A.y).attr("width",A=>A.width).attr("height",A=>A.height).attr("fill",A=>A.fill),C.append("text").attr("x",0).attr("y",0).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>n(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text)).text(A=>A.text.text),T.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(A=>A.text).attr("fill",A=>A.fill).attr("font-size",A=>A.fontSize).attr("dominant-baseline",A=>n(A.horizontalPos)).attr("text-anchor",A=>a(A.verticalPos)).attr("transform",A=>s(A));let E=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");E.append("circle").attr("cx",A=>A.x).attr("cy",A=>A.y).attr("r",A=>A.radius).attr("fill",A=>A.fill).attr("stroke",A=>A.strokeColor).attr("stroke-width",A=>A.strokeWidth),E.append("text").attr("x",0).attr("y",0).text(A=>A.text.text).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>n(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text))},"draw"),mAe={draw:H2t}});var yAe={};xr(yAe,{diagram:()=>Y2t});var Y2t,vAe=z(()=>{"use strict";lAe();pAe();gAe();Y2t={parser:oAe,db:fAe,renderer:mAe,styles:o(()=>"","styles")}});var HV,TAe,CAe=z(()=>{"use strict";HV=(function(){var e=o(function(M,L,B,O){for(B=B||{},O=M.length;O--;B[M[O]]=L);return B},"o"),t=[1,10,12,14,16,18,19,21,23],r=[2,6],i=[1,3],n=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],d=[1,28],f=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],T=[1,37],w=[1,43],C=[1,42],k=[1,47],E=[1,50],A=[1,10,12,14,16,18,19,21,23,34,35,36],N=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],P=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],I=[1,64],D={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(L,B,O,$,G,F,V){var H=F.length-1;switch(G){case 5:$.setOrientation(F[H]);break;case 9:$.setDiagramTitle(F[H].text.trim());break;case 12:$.setLineData({text:"",type:"text"},F[H]);break;case 13:$.setLineData(F[H-1],F[H]);break;case 14:$.setBarData({text:"",type:"text"},F[H]);break;case 15:$.setBarData(F[H-1],F[H]);break;case 16:this.$=F[H].trim(),$.setAccTitle(this.$);break;case 17:case 18:this.$=F[H].trim(),$.setAccDescription(this.$);break;case 19:this.$=F[H-1];break;case 20:this.$=[Number(F[H-2]),...F[H]];break;case 21:this.$=[Number(F[H])];break;case 22:$.setXAxisTitle(F[H]);break;case 23:$.setXAxisTitle(F[H-1]);break;case 24:$.setXAxisTitle({type:"text",text:""});break;case 25:$.setXAxisBand(F[H]);break;case 26:$.setXAxisRangeData(Number(F[H-2]),Number(F[H]));break;case 27:this.$=F[H-1];break;case 28:this.$=[F[H-2],...F[H]];break;case 29:this.$=[F[H]];break;case 30:$.setYAxisTitle(F[H]);break;case 31:$.setYAxisTitle(F[H-1]);break;case 32:$.setYAxisTitle({type:"text",text:""});break;case 33:$.setYAxisRangeData(Number(F[H-2]),Number(F[H]));break;case 37:this.$={text:F[H],type:"text"};break;case 38:this.$={text:F[H],type:"text"};break;case 39:this.$={text:F[H],type:"markdown"};break;case 40:this.$=F[H];break;case 41:this.$=F[H-1]+""+F[H];break}},"anonymous"),table:[e(t,r,{3:1,4:2,7:4,5:i,34:n,35:a,36:s}),{1:[3]},e(t,r,{4:2,7:4,3:8,5:i,34:n,35:a,36:s}),e(t,r,{4:2,7:4,6:9,3:10,5:i,8:[1,11],34:n,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(l,[2,34]),e(l,[2,35]),e(l,[2,36]),{1:[2,1]},e(t,r,{4:2,7:4,3:21,5:i,34:n,35:a,36:s}),{1:[2,3]},e(l,[2,5]),e(t,[2,7],{4:22,34:n,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:d,42:f,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:39,13:38,24:w,27:C,29:40,30:41,37:24,38:u,39:h,40:27,41:d,42:f,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:45,15:44,27:k,33:46,37:24,38:u,39:h,40:27,41:d,42:f,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:49,17:48,24:E,37:24,38:u,39:h,40:27,41:d,42:f,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{11:52,17:51,24:E,37:24,38:u,39:h,40:27,41:d,42:f,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},{20:[1,53]},{22:[1,54]},e(A,[2,18]),{1:[2,2]},e(A,[2,8]),e(A,[2,9]),e(N,[2,37],{40:55,41:d,42:f,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T}),e(N,[2,38]),e(N,[2,39]),e(P,[2,40]),e(P,[2,42]),e(P,[2,43]),e(P,[2,44]),e(P,[2,45]),e(P,[2,46]),e(P,[2,47]),e(P,[2,48]),e(P,[2,49]),e(P,[2,50]),e(P,[2,51]),e(A,[2,10]),e(A,[2,22],{30:41,29:56,24:w,27:C}),e(A,[2,24]),e(A,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:d,42:f,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},e(A,[2,11]),e(A,[2,30],{33:60,27:k}),e(A,[2,32]),{31:[1,61]},e(A,[2,12]),{17:62,24:E},{25:63,27:I},e(A,[2,14]),{17:65,24:E},e(A,[2,16]),e(A,[2,17]),e(P,[2,41]),e(A,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(A,[2,31]),{27:[1,69]},e(A,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(A,[2,15]),e(A,[2,26]),e(A,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:d,42:f,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:T},e(A,[2,33]),e(A,[2,19]),{25:73,27:I},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(L,B){if(B.recoverable)this.trace(L);else{var O=new Error(L);throw O.hash=B,O}},"parseError"),parse:o(function(L){var B=this,O=[0],$=[],G=[null],F=[],V=this.table,H="",j=0,U=0,Q=0,Y=2,ae=1,J=F.slice.call(arguments,1),te=Object.create(this.lexer),re={yy:{}};for(var ee in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ee)&&(re.yy[ee]=this.yy[ee]);te.setInput(L,re.yy),re.yy.lexer=te,re.yy.parser=this,typeof te.yylloc>"u"&&(te.yylloc={});var Te=te.yylloc;F.push(Te);var ue=te.options&&te.options.ranges;typeof re.yy.parseError=="function"?this.parseError=re.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function De(ye){O.length=O.length-2*ye,G.length=G.length-ye,F.length=F.length-ye}o(De,"popStack");function Ie(){var ye;return ye=$.pop()||te.lex()||ae,typeof ye!="number"&&(ye instanceof Array&&($=ye,ye=$.pop()),ye=B.symbols_[ye]||ye),ye}o(Ie,"lex");for(var Ee,we,Me,$e,de,rt,ke={},Fe,He,at,qe;;){if(Me=O[O.length-1],this.defaultActions[Me]?$e=this.defaultActions[Me]:((Ee===null||typeof Ee>"u")&&(Ee=Ie()),$e=V[Me]&&V[Me][Ee]),typeof $e>"u"||!$e.length||!$e[0]){var Ue="";qe=[];for(Fe in V[Me])this.terminals_[Fe]&&Fe>Y&&qe.push("'"+this.terminals_[Fe]+"'");te.showPosition?Ue="Parse error on line "+(j+1)+`: +`+te.showPosition()+` +Expecting `+qe.join(", ")+", got '"+(this.terminals_[Ee]||Ee)+"'":Ue="Parse error on line "+(j+1)+": Unexpected "+(Ee==ae?"end of input":"'"+(this.terminals_[Ee]||Ee)+"'"),this.parseError(Ue,{text:te.match,token:this.terminals_[Ee]||Ee,line:te.yylineno,loc:Te,expected:qe})}if($e[0]instanceof Array&&$e.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Me+", token: "+Ee);switch($e[0]){case 1:O.push(Ee),G.push(te.yytext),F.push(te.yylloc),O.push($e[1]),Ee=null,we?(Ee=we,we=null):(U=te.yyleng,H=te.yytext,j=te.yylineno,Te=te.yylloc,Q>0&&Q--);break;case 2:if(He=this.productions_[$e[1]][1],ke.$=G[G.length-He],ke._$={first_line:F[F.length-(He||1)].first_line,last_line:F[F.length-1].last_line,first_column:F[F.length-(He||1)].first_column,last_column:F[F.length-1].last_column},ue&&(ke._$.range=[F[F.length-(He||1)].range[0],F[F.length-1].range[1]]),rt=this.performAction.apply(ke,[H,U,j,re.yy,$e[1],G,F].concat(J)),typeof rt<"u")return rt;He&&(O=O.slice(0,-1*He*2),G=G.slice(0,-1*He),F=F.slice(0,-1*He)),O.push(this.productions_[$e[1]][0]),G.push(ke.$),F.push(ke._$),at=V[O[O.length-2]][O[O.length-1]],O.push(at);break;case 3:return!0}}return!0},"parse")},_=(function(){var M={EOF:1,parseError:o(function(B,O){if(this.yy.parser)this.yy.parser.parseError(B,O);else throw new Error(B)},"parseError"),setInput:o(function(L,B){return this.yy=B||this.yy||{},this._input=L,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var L=this._input[0];this.yytext+=L,this.yyleng++,this.offset++,this.match+=L,this.matched+=L;var B=L.match(/(?:\r\n?|\n).*/g);return B?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),L},"input"),unput:o(function(L){var B=L.length,O=L.split(/(?:\r\n?|\n)/g);this._input=L+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-B),this.offset-=B;var $=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),O.length-1&&(this.yylineno-=O.length-1);var G=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:O?(O.length===$.length?this.yylloc.first_column:0)+$[$.length-O.length].length-O[0].length:this.yylloc.first_column-B},this.options.ranges&&(this.yylloc.range=[G[0],G[0]+this.yyleng-B]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(L){this.unput(this.match.slice(L))},"less"),pastInput:o(function(){var L=this.matched.substr(0,this.matched.length-this.match.length);return(L.length>20?"...":"")+L.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var L=this.match;return L.length<20&&(L+=this._input.substr(0,20-L.length)),(L.substr(0,20)+(L.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var L=this.pastInput(),B=new Array(L.length+1).join("-");return L+this.upcomingInput()+` +`+B+"^"},"showPosition"),test_match:o(function(L,B){var O,$,G;if(this.options.backtrack_lexer&&(G={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(G.yylloc.range=this.yylloc.range.slice(0))),$=L[0].match(/(?:\r\n?|\n).*/g),$&&(this.yylineno+=$.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:$?$[$.length-1].length-$[$.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+L[0].length},this.yytext+=L[0],this.match+=L[0],this.matches=L,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(L[0].length),this.matched+=L[0],O=this.performAction.call(this,this.yy,this,B,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),O)return O;if(this._backtrack){for(var F in G)this[F]=G[F];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var L,B,O,$;this._more||(this.yytext="",this.match="");for(var G=this._currentRules(),F=0;FB[0].length)){if(B=O,$=F,this.options.backtrack_lexer){if(L=this.test_match(O,G[F]),L!==!1)return L;if(this._backtrack){B=!1;continue}else return!1}else if(!this.options.flex)break}return B?(L=this.test_match(B,G[$]),L!==!1?L:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var B=this.next();return B||this.lex()},"lex"),begin:o(function(B){this.conditionStack.push(B)},"begin"),popState:o(function(){var B=this.conditionStack.length-1;return B>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(B){return B=this.conditionStack.length-1-Math.abs(B||0),B>=0?this.conditionStack[B]:"INITIAL"},"topState"),pushState:o(function(B){this.begin(B)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(B,O,$,G){var F=G;switch($){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";break;case 18:return this.pushState("axis_data"),"Y_AXIS";break;case 19:return this.pushState("axis_band_data"),24;break;case 20:return 31;case 21:return this.pushState("data"),16;break;case 22:return this.pushState("data"),18;break;case 23:return this.pushState("data_inner"),24;break;case 24:return 27;case 25:return this.popState(),26;break;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 43;case 33:return"COLON";case 34:return 44;case 35:return 28;case 36:return 45;case 37:return 46;case 38:return 48;case 39:return 50;case 40:return 47;case 41:return 41;case 42:return 49;case 43:return 42;case 44:break;case 45:return 35;case 46:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return M})();D.lexer=_;function R(){this.yy={}}return o(R,"Parser"),R.prototype=D,D.Parser=R,new R})();HV.parser=HV;TAe=HV});function YV(e){return e.type==="bar"}function N6(e){return e.type==="band"}function vy(e){return e.type==="linear"}var I6=z(()=>{"use strict";o(YV,"isBarPlot");o(N6,"isBandAxisData");o(vy,"isLinearAxisData")});var xy,jV=z(()=>{"use strict";_s();xy=class{constructor(t){this.parentGroup=t}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,r){if(!this.parentGroup)return{width:t.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let i={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of t){let s=Are(n,1,a),l=s?s.width:a.length*r,u=s?s.height:r;i.width=Math.max(i.width,l),i.height=Math.max(i.height,u)}return n.remove(),i}}});var by,XV=z(()=>{"use strict";by=class{constructor(t,r,i,n){this.axisConfig=t;this.title=r;this.textDimensionCalculator=i;this.axisThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{o(this,"BaseAxis")}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){let t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let r=t.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let i=this.getLabelDimension(),n=.2*t.width;this.outerPadding=Math.min(i.width/2,n);let a=i.height+this.axisConfig.labelPadding*2;this.labelTextHeight=i.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let i=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=i.height+this.axisConfig.titlePadding*2;this.titleTextHeight=i.height,n<=r&&(r-=n,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-r}calculateSpaceIfDrawnVertical(t){let r=t.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let i=this.getLabelDimension(),n=.2*t.height;this.outerPadding=Math.min(i.height/2,n);let a=i.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let i=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=i.height+this.axisConfig.titlePadding*2;this.titleTextHeight=i.height,n<=r&&(r-=n,this.showTitle=!0)}this.boundingRect.width=t.width-r,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){let t=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(i=>({path:`M ${r},${this.getScaleValue(i)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(i)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){let t=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(i=>({path:`M ${this.getScaleValue(i)},${r} L ${this.getScaleValue(i)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){let t=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(i=>({path:`M ${this.getScaleValue(i)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(i)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}});var O6,kAe=z(()=>{"use strict";Rr();St();XV();O6=class extends by{static{o(this,"BandAxis")}constructor(t,r,i,n,a){super(t,n,a,r),this.categories=i,this.scale=ig().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=ig().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Z.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}}});var P6,wAe=z(()=>{"use strict";Rr();XV();P6=class extends by{static{o(this,"LinearAxis")}constructor(t,r,i,n,a){super(t,n,a,r),this.domain=i,this.scale=kl().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=kl().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}}});function KV(e,t,r,i){let n=new xy(i);return N6(e)?new O6(t,r,e.categories,e.title,n):new P6(t,r,[e.min,e.max],e.title,n)}var SAe=z(()=>{"use strict";I6();jV();kAe();wAe();o(KV,"getAxis")});function EAe(e,t,r,i){let n=new xy(i);return new ZV(n,e,t,r)}var ZV,AAe=z(()=>{"use strict";jV();ZV=class{constructor(t,r,i,n){this.textDimensionCalculator=t;this.chartConfig=r;this.chartData=i;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),i=Math.max(r.width,t.width),n=r.height+2*this.chartConfig.titlePadding;return r.width<=i&&r.height<=n&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=i,this.boundingRect.height=n,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}};o(EAe,"getChartTitleComponent")});var B6,_Ae=z(()=>{"use strict";Rr();B6=class{constructor(t,r,i,n,a){this.plotData=t;this.xAxis=r;this.yAxis=i;this.orientation=n;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let t=this.plotData.data.map(i=>[this.xAxis.getScaleValue(i[0]),this.yAxis.getScaleValue(i[1])]),r;return this.orientation==="horizontal"?r=_l().y(i=>i[0]).x(i=>i[1])(t):r=_l().x(i=>i[0]).y(i=>i[1])(t),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var F6,DAe=z(()=>{"use strict";F6=class{constructor(t,r,i,n,a,s){this.barData=t;this.boundingRect=r;this.xAxis=i;this.yAxis=n;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),i=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),n=i/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(a=>({x:this.boundingRect.x,y:a[0]-n,height:i,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(a=>({x:a[0]-n,y:a[1],width:i,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function RAe(e,t,r){return new QV(e,t,r)}var QV,LAe=z(()=>{"use strict";_Ae();DAe();QV=class{constructor(t,r,i){this.chartConfig=t;this.chartData=r;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(t,r){this.xAxis=t,this.yAxis=r}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let t=[];for(let[r,i]of this.chartData.plots.entries())switch(i.type){case"line":{let n=new B6(i,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);t.push(...n.getDrawableElement())}break;case"bar":{let n=new F6(i,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);t.push(...n.getDrawableElement())}break}return t}};o(RAe,"getPlotComponent")});var $6,MAe=z(()=>{"use strict";SAe();AAe();LAe();I6();$6=class{constructor(t,r,i,n){this.chartConfig=t;this.chartData=r;this.componentStore={title:EAe(t,r,i,n),plot:RAe(t,r,i),xAxis:KV(r.xAxis,t.xAxis,{titleColor:i.xAxisTitleColor,labelColor:i.xAxisLabelColor,tickColor:i.xAxisTickColor,axisLineColor:i.xAxisLineColor},n),yAxis:KV(r.yAxis,t.yAxis,{titleColor:i.yAxisTitleColor,labelColor:i.yAxisLabelColor,tickColor:i.yAxisTickColor,axisLineColor:i.yAxisLineColor},n)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,r=this.chartConfig.height,i=0,n=0,a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});t-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:t,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:t,height:r}),i=l.width,t-=l.width,t>0&&(a+=t,t=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([i,i+a]),this.componentStore.xAxis.setBoundingBoxXY({x:i,y:n+s}),this.componentStore.yAxis.setRange([n,n+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(u=>YV(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,r=this.chartConfig.height,i=0,n=0,a=0,s=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});t-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:t,height:r}),t-=u.width,n=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:t,height:r}),r-=u.height,a=i+u.height,t>0&&(s+=t,t=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:n,y:a}),this.componentStore.yAxis.setRange([n,n+s]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>YV(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))t.push(...r.getDrawableElements());return t}}});var z6,NAe=z(()=>{"use strict";MAe();z6=class{static{o(this,"XYChartBuilder")}static build(t,r,i,n){return new $6(t,r,i,n).getDrawableElement()}}});function OAe(){let e=Ao(),t=Nt();return Gr(e.xyChart,t.themeVariables.xyChart)}function PAe(){let e=Nt();return Gr(or.xyChart,e.xyChart)}function BAe(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function tW(e){let t=Nt();return fr(e.trim(),t)}function Z2t(e){IAe=e}function Q2t(e){e==="horizontal"?HT.chartOrientation="horizontal":HT.chartOrientation="vertical"}function J2t(e){fi.xAxis.title=tW(e.text)}function FAe(e,t){fi.xAxis={type:"linear",title:fi.xAxis.title,min:e,max:t},G6=!0}function eTt(e){fi.xAxis={type:"band",title:fi.xAxis.title,categories:e.map(t=>tW(t.text))},G6=!0}function tTt(e){fi.yAxis.title=tW(e.text)}function rTt(e,t){fi.yAxis={type:"linear",title:fi.yAxis.title,min:e,max:t},eW=!0}function iTt(e){let t=Math.min(...e),r=Math.max(...e),i=vy(fi.yAxis)?fi.yAxis.min:1/0,n=vy(fi.yAxis)?fi.yAxis.max:-1/0;fi.yAxis={type:"linear",title:fi.yAxis.title,min:Math.min(i,t),max:Math.max(n,r)}}function $Ae(e){let t=[];if(e.length===0)return t;if(!G6){let r=vy(fi.xAxis)?fi.xAxis.min:1/0,i=vy(fi.xAxis)?fi.xAxis.max:-1/0;FAe(Math.min(r,1),Math.max(i,e.length))}if(eW||iTt(e),N6(fi.xAxis)&&(t=fi.xAxis.categories.map((r,i)=>[r,e[i]])),vy(fi.xAxis)){let r=fi.xAxis.min,i=fi.xAxis.max,n=(i-r)/(e.length-1),a=[];for(let s=r;s<=i;s+=n)a.push(`${s}`);t=a.map((s,l)=>[s,e[l]])}return t}function zAe(e){return JV[e===0?0:e%JV.length]}function nTt(e,t){let r=$Ae(t);fi.plots.push({type:"line",strokeFill:zAe(UT),strokeWidth:2,data:r}),UT++}function aTt(e,t){let r=$Ae(t);fi.plots.push({type:"bar",fill:zAe(UT),data:r}),UT++}function sTt(){if(fi.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return fi.title=Er(),z6.build(HT,fi,YT,IAe)}function oTt(){return YT}function lTt(){return HT}function cTt(){return fi}var UT,IAe,HT,YT,fi,JV,G6,eW,uTt,GAe,VAe=z(()=>{"use strict";br();Bn();$f();Xt();Ir();Ci();NAe();I6();UT=0,HT=PAe(),YT=OAe(),fi=BAe(),JV=YT.plotColorPalette.split(",").map(e=>e.trim()),G6=!1,eW=!1;o(OAe,"getChartDefaultThemeConfig");o(PAe,"getChartDefaultConfig");o(BAe,"getChartDefaultData");o(tW,"textSanitizer");o(Z2t,"setTmpSVGG");o(Q2t,"setOrientation");o(J2t,"setXAxisTitle");o(FAe,"setXAxisRangeData");o(eTt,"setXAxisBand");o(tTt,"setYAxisTitle");o(rTt,"setYAxisRangeData");o(iTt,"setYAxisRangeFromPlotData");o($Ae,"transformDataWithoutCategory");o(zAe,"getPlotColorFromPalette");o(nTt,"setLineData");o(aTt,"setBarData");o(sTt,"getDrawableElem");o(oTt,"getChartThemeConfig");o(lTt,"getChartConfig");o(cTt,"getXYChartData");uTt=o(function(){gr(),UT=0,HT=PAe(),fi=BAe(),YT=OAe(),JV=YT.plotColorPalette.split(",").map(e=>e.trim()),G6=!1,eW=!1},"clear"),GAe={getDrawableElem:sTt,clear:uTt,setAccTitle:Cr,getAccTitle:kr,setDiagramTitle:Ar,getDiagramTitle:Er,getAccDescription:Sr,setAccDescription:wr,setOrientation:Q2t,setXAxisTitle:J2t,setXAxisRangeData:FAe,setXAxisBand:eTt,setYAxisTitle:tTt,setYAxisRangeData:rTt,setLineData:nTt,setBarData:aTt,setTmpSVGG:Z2t,getChartThemeConfig:oTt,getChartConfig:lTt,getXYChartData:cTt}});var hTt,WAe,qAe=z(()=>{"use strict";St();ps();Di();hTt=o((e,t,r,i)=>{let n=i.db,a=n.getChartThemeConfig(),s=n.getChartConfig(),l=n.getXYChartData().plots[0].data.map(T=>T[1]);function u(T){return T==="top"?"text-before-edge":"middle"}o(u,"getDominantBaseLine");function h(T){return T==="left"?"start":T==="right"?"end":"middle"}o(h,"getTextAnchor");function d(T){return`translate(${T.x}, ${T.y}) rotate(${T.rotation||0})`}o(d,"getTextTransformation"),Z.debug(`Rendering xychart chart +`+e);let f=bi(t),p=f.append("g").attr("class","main"),m=p.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");Br(f,s.height,s.width,!0),f.attr("viewBox",`0 0 ${s.width} ${s.height}`),m.attr("fill",a.backgroundColor),n.setTmpSVGG(f.append("g").attr("class","mermaid-tmp-group"));let g=n.getDrawableElem(),y={};function v(T){let w=p,C="";for(let[k]of T.entries()){let E=p;k>0&&y[C]&&(E=y[C]),C+=T[k],w=y[C],w||(w=y[C]=E.append("g").attr("class",T[k]))}return w}o(v,"getGroup");for(let T of g){if(T.data.length===0)continue;let w=v(T.groupTexts);switch(T.type){case"rect":if(w.selectAll("rect").data(T.data).enter().append("rect").attr("x",C=>C.x).attr("y",C=>C.y).attr("width",C=>C.width).attr("height",C=>C.height).attr("fill",C=>C.fill).attr("stroke",C=>C.strokeFill).attr("stroke-width",C=>C.strokeWidth),s.showDataLabel){let C=s.showDataLabelOutsideBar;if(s.chartOrientation==="horizontal"){let N=function(_,R){let{data:M,label:L}=_;return R*L.length*.7<=M.width-10};var x=N;o(N,"fitsHorizontally");let k=.7,E=10,A=T.data.map((_,R)=>({data:_,label:l[R].toString()})).filter(_=>_.data.width>0&&_.data.height>0),P=A.map(_=>{let{data:R}=_,M=R.height*.7;for(;!N(_,M)&&M>0;)M-=1;return M}),I=Math.floor(Math.min(...P)),D=o(_=>C?_.data.x+_.data.width+10:_.data.x+_.data.width-10,"determineLabelXPosition");w.selectAll("text").data(A).enter().append("text").attr("x",D).attr("y",_=>_.data.y+_.data.height/2).attr("text-anchor",C?"start":"end").attr("dominant-baseline","middle").attr("fill",a.dataLabelColor).attr("font-size",`${I}px`).text(_=>_.label)}else{let A=function(D,_,R){let{data:M,label:L}=D,O=_*L.length*.7,$=M.x+M.width/2,G=$-O/2,F=$+O/2,V=G>=M.x&&F<=M.x+M.width,H=M.y+R+_<=M.y+M.height;return V&&H};var b=A;o(A,"fitsInBar");let k=10,E=T.data.map((D,_)=>({data:D,label:l[_].toString()})).filter(D=>D.data.width>0&&D.data.height>0),N=E.map(D=>{let{data:_,label:R}=D,M=_.width/(R.length*.7);for(;!A(D,M,10)&&M>0;)M-=1;return M}),P=Math.floor(Math.min(...N)),I=o(D=>C?D.data.y-10:D.data.y+10,"determineLabelYPosition");w.selectAll("text").data(E).enter().append("text").attr("x",D=>D.data.x+D.data.width/2).attr("y",I).attr("text-anchor","middle").attr("dominant-baseline",C?"auto":"hanging").attr("fill",a.dataLabelColor).attr("font-size",`${P}px`).text(D=>D.label)}}break;case"text":w.selectAll("text").data(T.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",C=>C.fill).attr("font-size",C=>C.fontSize).attr("dominant-baseline",C=>u(C.verticalPos)).attr("text-anchor",C=>h(C.horizontalPos)).attr("transform",C=>d(C)).text(C=>C.text);break;case"path":w.selectAll("path").data(T.data).enter().append("path").attr("d",C=>C.path).attr("fill",C=>C.fill?C.fill:"none").attr("stroke",C=>C.strokeFill).attr("stroke-width",C=>C.strokeWidth);break}}},"draw"),WAe={draw:hTt}});var UAe={};xr(UAe,{diagram:()=>dTt});var dTt,HAe=z(()=>{"use strict";CAe();VAe();qAe();dTt={parser:TAe,db:GAe,renderer:WAe}});var rW,XAe,KAe=z(()=>{"use strict";rW=(function(){var e=o(function(ye,ve,ie,fe){for(ie=ie||{},fe=ye.length;fe--;ie[ye[fe]]=ve);return ie},"o"),t=[1,3],r=[1,4],i=[1,5],n=[1,6],a=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],s=[1,22],l=[2,7],u=[1,26],h=[1,27],d=[1,28],f=[1,29],p=[1,33],m=[1,34],g=[1,35],y=[1,36],v=[1,37],x=[1,38],b=[1,24],T=[1,31],w=[1,32],C=[1,30],k=[1,39],E=[1,40],A=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],N=[1,61],P=[89,90],I=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],D=[27,29],_=[1,70],R=[1,71],M=[1,72],L=[1,73],B=[1,74],O=[1,75],$=[1,76],G=[1,83],F=[1,80],V=[1,84],H=[1,85],j=[1,86],U=[1,87],Q=[1,88],Y=[1,89],ae=[1,90],J=[1,91],te=[1,92],re=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],ee=[63,64],Te=[1,101],ue=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],De=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Ie=[1,110],Ee=[1,106],we=[1,107],Me=[1,108],$e=[1,109],de=[1,111],rt=[1,116],ke=[1,117],Fe=[1,114],He=[1,115],at={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:o(function(ve,ie,fe,W,ce,K,Re){var xe=K.length-1;switch(ce){case 4:this.$=K[xe].trim(),W.setAccTitle(this.$);break;case 5:case 6:this.$=K[xe].trim(),W.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:W.setDirection("TB");break;case 18:W.setDirection("BT");break;case 19:W.setDirection("RL");break;case 20:W.setDirection("LR");break;case 21:W.addRequirement(K[xe-3],K[xe-4]);break;case 22:W.addRequirement(K[xe-5],K[xe-6]),W.setClass([K[xe-5]],K[xe-3]);break;case 23:W.setNewReqId(K[xe-2]);break;case 24:W.setNewReqText(K[xe-2]);break;case 25:W.setNewReqRisk(K[xe-2]);break;case 26:W.setNewReqVerifyMethod(K[xe-2]);break;case 29:this.$=W.RequirementType.REQUIREMENT;break;case 30:this.$=W.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=W.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=W.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=W.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=W.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=W.RiskLevel.LOW_RISK;break;case 36:this.$=W.RiskLevel.MED_RISK;break;case 37:this.$=W.RiskLevel.HIGH_RISK;break;case 38:this.$=W.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=W.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=W.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=W.VerifyType.VERIFY_TEST;break;case 42:W.addElement(K[xe-3]);break;case 43:W.addElement(K[xe-5]),W.setClass([K[xe-5]],K[xe-3]);break;case 44:W.setNewElementType(K[xe-2]);break;case 45:W.setNewElementDocRef(K[xe-2]);break;case 48:W.addRelationship(K[xe-2],K[xe],K[xe-4]);break;case 49:W.addRelationship(K[xe-2],K[xe-4],K[xe]);break;case 50:this.$=W.Relationships.CONTAINS;break;case 51:this.$=W.Relationships.COPIES;break;case 52:this.$=W.Relationships.DERIVES;break;case 53:this.$=W.Relationships.SATISFIES;break;case 54:this.$=W.Relationships.VERIFIES;break;case 55:this.$=W.Relationships.REFINES;break;case 56:this.$=W.Relationships.TRACES;break;case 57:this.$=K[xe-2],W.defineClass(K[xe-1],K[xe]);break;case 58:W.setClass(K[xe-1],K[xe]);break;case 59:W.setClass([K[xe-2]],K[xe]);break;case 60:case 62:this.$=[K[xe]];break;case 61:case 63:this.$=K[xe-2].concat([K[xe]]);break;case 64:this.$=K[xe-2],W.setCssStyle(K[xe-1],K[xe]);break;case 65:this.$=[K[xe]];break;case 66:K[xe-2].push(K[xe]),this.$=K[xe-2];break;case 68:this.$=K[xe-1]+K[xe];break}},"anonymous"),table:[{3:1,4:2,6:t,9:r,11:i,13:n},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:r,11:i,13:n},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(a,[2,6]),{3:12,4:2,6:t,9:r,11:i,13:n},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},e(a,[2,4]),e(a,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:s,7:42,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{4:17,5:s,7:43,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{4:17,5:s,7:44,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{4:17,5:s,7:45,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{4:17,5:s,7:46,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{4:17,5:s,7:47,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{4:17,5:s,7:48,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{4:17,5:s,7:49,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{4:17,5:s,7:50,8:l,9:r,11:i,13:n,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:d,24:f,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:T,74:w,77:C,89:k,90:E},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},e(A,[2,17]),e(A,[2,18]),e(A,[2,19]),e(A,[2,20]),{30:60,33:62,75:N,89:k,90:E},{30:63,33:62,75:N,89:k,90:E},{30:64,33:62,75:N,89:k,90:E},e(P,[2,29]),e(P,[2,30]),e(P,[2,31]),e(P,[2,32]),e(P,[2,33]),e(P,[2,34]),e(I,[2,81]),e(I,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},e(D,[2,79]),e(D,[2,80]),{27:[1,67],29:[1,68]},e(D,[2,85]),e(D,[2,86]),{62:69,65:_,66:R,67:M,68:L,69:B,70:O,71:$},{62:77,65:_,66:R,67:M,68:L,69:B,70:O,71:$},{30:78,33:62,75:N,89:k,90:E},{73:79,75:G,76:F,78:81,79:82,80:V,81:H,82:j,83:U,84:Q,85:Y,86:ae,87:J,88:te},e(re,[2,60]),e(re,[2,62]),{73:93,75:G,76:F,78:81,79:82,80:V,81:H,82:j,83:U,84:Q,85:Y,86:ae,87:J,88:te},{30:94,33:62,75:N,76:F,89:k,90:E},{5:[1,95]},{30:96,33:62,75:N,89:k,90:E},{5:[1,97]},{30:98,33:62,75:N,89:k,90:E},{63:[1,99]},e(ee,[2,50]),e(ee,[2,51]),e(ee,[2,52]),e(ee,[2,53]),e(ee,[2,54]),e(ee,[2,55]),e(ee,[2,56]),{64:[1,100]},e(A,[2,59],{76:F}),e(A,[2,64],{76:Te}),{33:103,75:[1,102],89:k,90:E},e(ue,[2,65],{79:104,75:G,80:V,81:H,82:j,83:U,84:Q,85:Y,86:ae,87:J,88:te}),e(De,[2,67]),e(De,[2,69]),e(De,[2,70]),e(De,[2,71]),e(De,[2,72]),e(De,[2,73]),e(De,[2,74]),e(De,[2,75]),e(De,[2,76]),e(De,[2,77]),e(De,[2,78]),e(A,[2,57],{76:Te}),e(A,[2,58],{76:F}),{5:Ie,28:105,31:Ee,34:we,36:Me,38:$e,40:de},{27:[1,112],76:F},{5:rt,40:ke,56:113,57:Fe,59:He},{27:[1,118],76:F},{33:119,89:k,90:E},{33:120,89:k,90:E},{75:G,78:121,79:82,80:V,81:H,82:j,83:U,84:Q,85:Y,86:ae,87:J,88:te},e(re,[2,61]),e(re,[2,63]),e(De,[2,68]),e(A,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:Ie,28:126,31:Ee,34:we,36:Me,38:$e,40:de},e(A,[2,28]),{5:[1,127]},e(A,[2,42]),{32:[1,128]},{32:[1,129]},{5:rt,40:ke,56:130,57:Fe,59:He},e(A,[2,47]),{5:[1,131]},e(A,[2,48]),e(A,[2,49]),e(ue,[2,66],{79:104,75:G,80:V,81:H,82:j,83:U,84:Q,85:Y,86:ae,87:J,88:te}),{33:132,89:k,90:E},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},e(A,[2,27]),{5:Ie,28:145,31:Ee,34:we,36:Me,38:$e,40:de},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(A,[2,46]),{5:rt,40:ke,56:152,57:Fe,59:He},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},e(A,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(A,[2,43]),{5:Ie,28:159,31:Ee,34:we,36:Me,38:$e,40:de},{5:Ie,28:160,31:Ee,34:we,36:Me,38:$e,40:de},{5:Ie,28:161,31:Ee,34:we,36:Me,38:$e,40:de},{5:Ie,28:162,31:Ee,34:we,36:Me,38:$e,40:de},{5:rt,40:ke,56:163,57:Fe,59:He},{5:rt,40:ke,56:164,57:Fe,59:He},e(A,[2,23]),e(A,[2,24]),e(A,[2,25]),e(A,[2,26]),e(A,[2,44]),e(A,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:o(function(ve,ie){if(ie.recoverable)this.trace(ve);else{var fe=new Error(ve);throw fe.hash=ie,fe}},"parseError"),parse:o(function(ve){var ie=this,fe=[0],W=[],ce=[null],K=[],Re=this.table,xe="",Oe=0,be=0,Be=0,Ae=2,Ve=1,Pe=K.slice.call(arguments,1),Ye=Object.create(this.lexer),le={yy:{}};for(var st in this.yy)Object.prototype.hasOwnProperty.call(this.yy,st)&&(le.yy[st]=this.yy[st]);Ye.setInput(ve,le.yy),le.yy.lexer=Ye,le.yy.parser=this,typeof Ye.yylloc>"u"&&(Ye.yylloc={});var me=Ye.yylloc;K.push(me);var ot=Ye.options&&Ye.options.ranges;typeof le.yy.parseError=="function"?this.parseError=le.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function kt(Rt){fe.length=fe.length-2*Rt,ce.length=ce.length-Rt,K.length=K.length-Rt}o(kt,"popStack");function Gt(){var Rt;return Rt=W.pop()||Ye.lex()||Ve,typeof Rt!="number"&&(Rt instanceof Array&&(W=Rt,Rt=W.pop()),Rt=ie.symbols_[Rt]||Rt),Rt}o(Gt,"lex");for(var Tt,Et,yt,oe,ht,gt,et={},pe,Qe,nt,dt;;){if(yt=fe[fe.length-1],this.defaultActions[yt]?oe=this.defaultActions[yt]:((Tt===null||typeof Tt>"u")&&(Tt=Gt()),oe=Re[yt]&&Re[yt][Tt]),typeof oe>"u"||!oe.length||!oe[0]){var Ft="";dt=[];for(pe in Re[yt])this.terminals_[pe]&&pe>Ae&&dt.push("'"+this.terminals_[pe]+"'");Ye.showPosition?Ft="Parse error on line "+(Oe+1)+`: +`+Ye.showPosition()+` +Expecting `+dt.join(", ")+", got '"+(this.terminals_[Tt]||Tt)+"'":Ft="Parse error on line "+(Oe+1)+": Unexpected "+(Tt==Ve?"end of input":"'"+(this.terminals_[Tt]||Tt)+"'"),this.parseError(Ft,{text:Ye.match,token:this.terminals_[Tt]||Tt,line:Ye.yylineno,loc:me,expected:dt})}if(oe[0]instanceof Array&&oe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+Tt);switch(oe[0]){case 1:fe.push(Tt),ce.push(Ye.yytext),K.push(Ye.yylloc),fe.push(oe[1]),Tt=null,Et?(Tt=Et,Et=null):(be=Ye.yyleng,xe=Ye.yytext,Oe=Ye.yylineno,me=Ye.yylloc,Be>0&&Be--);break;case 2:if(Qe=this.productions_[oe[1]][1],et.$=ce[ce.length-Qe],et._$={first_line:K[K.length-(Qe||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(Qe||1)].first_column,last_column:K[K.length-1].last_column},ot&&(et._$.range=[K[K.length-(Qe||1)].range[0],K[K.length-1].range[1]]),gt=this.performAction.apply(et,[xe,be,Oe,le.yy,oe[1],ce,K].concat(Pe)),typeof gt<"u")return gt;Qe&&(fe=fe.slice(0,-1*Qe*2),ce=ce.slice(0,-1*Qe),K=K.slice(0,-1*Qe)),fe.push(this.productions_[oe[1]][0]),ce.push(et.$),K.push(et._$),nt=Re[fe[fe.length-2]][fe[fe.length-1]],fe.push(nt);break;case 3:return!0}}return!0},"parse")},qe=(function(){var ye={EOF:1,parseError:o(function(ie,fe){if(this.yy.parser)this.yy.parser.parseError(ie,fe);else throw new Error(ie)},"parseError"),setInput:o(function(ve,ie){return this.yy=ie||this.yy||{},this._input=ve,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var ve=this._input[0];this.yytext+=ve,this.yyleng++,this.offset++,this.match+=ve,this.matched+=ve;var ie=ve.match(/(?:\r\n?|\n).*/g);return ie?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ve},"input"),unput:o(function(ve){var ie=ve.length,fe=ve.split(/(?:\r\n?|\n)/g);this._input=ve+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ie),this.offset-=ie;var W=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),fe.length-1&&(this.yylineno-=fe.length-1);var ce=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:fe?(fe.length===W.length?this.yylloc.first_column:0)+W[W.length-fe.length].length-fe[0].length:this.yylloc.first_column-ie},this.options.ranges&&(this.yylloc.range=[ce[0],ce[0]+this.yyleng-ie]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(ve){this.unput(this.match.slice(ve))},"less"),pastInput:o(function(){var ve=this.matched.substr(0,this.matched.length-this.match.length);return(ve.length>20?"...":"")+ve.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var ve=this.match;return ve.length<20&&(ve+=this._input.substr(0,20-ve.length)),(ve.substr(0,20)+(ve.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var ve=this.pastInput(),ie=new Array(ve.length+1).join("-");return ve+this.upcomingInput()+` +`+ie+"^"},"showPosition"),test_match:o(function(ve,ie){var fe,W,ce;if(this.options.backtrack_lexer&&(ce={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ce.yylloc.range=this.yylloc.range.slice(0))),W=ve[0].match(/(?:\r\n?|\n).*/g),W&&(this.yylineno+=W.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:W?W[W.length-1].length-W[W.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ve[0].length},this.yytext+=ve[0],this.match+=ve[0],this.matches=ve,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ve[0].length),this.matched+=ve[0],fe=this.performAction.call(this,this.yy,this,ie,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),fe)return fe;if(this._backtrack){for(var K in ce)this[K]=ce[K];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ve,ie,fe,W;this._more||(this.yytext="",this.match="");for(var ce=this._currentRules(),K=0;Kie[0].length)){if(ie=fe,W=K,this.options.backtrack_lexer){if(ve=this.test_match(fe,ce[K]),ve!==!1)return ve;if(this._backtrack){ie=!1;continue}else return!1}else if(!this.options.flex)break}return ie?(ve=this.test_match(ie,ce[W]),ve!==!1?ve:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ie=this.next();return ie||this.lex()},"lex"),begin:o(function(ie){this.conditionStack.push(ie)},"begin"),popState:o(function(){var ie=this.conditionStack.length-1;return ie>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ie){return ie=this.conditionStack.length-1-Math.abs(ie||0),ie>=0?this.conditionStack[ie]:"INITIAL"},"topState"),pushState:o(function(ie){this.begin(ie)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(ie,fe,W,ce){var K=ce;switch(W){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 21;case 9:return 22;case 10:return 23;case 11:return 24;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:return 8;case 17:return 6;case 18:return 27;case 19:return 40;case 20:return 29;case 21:return 32;case 22:return 31;case 23:return 34;case 24:return 36;case 25:return 38;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 48;case 34:return 49;case 35:return 50;case 36:return 51;case 37:return 52;case 38:return 53;case 39:return 54;case 40:return 65;case 41:return 66;case 42:return 67;case 43:return 68;case 44:return 69;case 45:return 70;case 46:return 71;case 47:return 57;case 48:return 59;case 49:return this.begin("style"),77;break;case 50:return 75;case 51:return 81;case 52:return 88;case 53:return"PERCENT";case 54:return 86;case 55:return 84;case 56:break;case 57:this.begin("string");break;case 58:this.popState();break;case 59:return this.begin("style"),72;break;case 60:return this.begin("style"),74;break;case 61:return 61;case 62:return 64;case 63:return 63;case 64:this.begin("string");break;case 65:this.popState();break;case 66:return"qString";case 67:return fe.yytext=fe.yytext.trim(),89;break;case 68:return 75;case 69:return 80;case 70:return 76}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:!1},acc_descr:{rules:[4,68,69,70],inclusive:!1},acc_title:{rules:[2,68,69,70],inclusive:!1},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:!1},unqString:{rules:[68,69,70],inclusive:!1},token:{rules:[68,69,70],inclusive:!1},string:{rules:[65,66,68,69,70],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:!0}}};return ye})();at.lexer=qe;function Ue(){this.yy={}}return o(Ue,"Parser"),Ue.prototype=at,at.Parser=Ue,new Ue})();rW.parser=rW;XAe=rW});var V6,ZAe=z(()=>{"use strict";Ut();St();Ci();V6=class{constructor(){this.relations=[];this.latestRequirement=this.getInitialRequirement();this.requirements=new Map;this.latestElement=this.getInitialElement();this.elements=new Map;this.classes=new Map;this.direction="TB";this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"};this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"};this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"};this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"};this.setAccTitle=Cr;this.getAccTitle=kr;this.setAccDescription=wr;this.getAccDescription=Sr;this.setDiagramTitle=Ar;this.getDiagramTitle=Er;this.getConfig=o(()=>ge().requirement,"getConfig");this.clear(),this.setDirection=this.setDirection.bind(this),this.addRequirement=this.addRequirement.bind(this),this.setNewReqId=this.setNewReqId.bind(this),this.setNewReqRisk=this.setNewReqRisk.bind(this),this.setNewReqText=this.setNewReqText.bind(this),this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this),this.addElement=this.addElement.bind(this),this.setNewElementType=this.setNewElementType.bind(this),this.setNewElementDocRef=this.setNewElementDocRef.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setCssStyle=this.setCssStyle.bind(this),this.setClass=this.setClass.bind(this),this.defineClass=this.defineClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"RequirementDB")}getDirection(){return this.direction}setDirection(t){this.direction=t}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(t,r){return this.requirements.has(t)||this.requirements.set(t,{name:t,type:r,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(t)}getRequirements(){return this.requirements}setNewReqId(t){this.latestRequirement!==void 0&&(this.latestRequirement.requirementId=t)}setNewReqText(t){this.latestRequirement!==void 0&&(this.latestRequirement.text=t)}setNewReqRisk(t){this.latestRequirement!==void 0&&(this.latestRequirement.risk=t)}setNewReqVerifyMethod(t){this.latestRequirement!==void 0&&(this.latestRequirement.verifyMethod=t)}addElement(t){return this.elements.has(t)||(this.elements.set(t,{name:t,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),Z.info("Added new element: ",t)),this.resetLatestElement(),this.elements.get(t)}getElements(){return this.elements}setNewElementType(t){this.latestElement!==void 0&&(this.latestElement.type=t)}setNewElementDocRef(t){this.latestElement!==void 0&&(this.latestElement.docRef=t)}addRelationship(t,r,i){this.relations.push({type:t,src:r,dst:i})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,gr()}setCssStyle(t,r){for(let i of t){let n=this.requirements.get(i)??this.elements.get(i);if(!r||!n)return;for(let a of r)a.includes(",")?n.cssStyles.push(...a.split(",")):n.cssStyles.push(a)}}setClass(t,r){for(let i of t){let n=this.requirements.get(i)??this.elements.get(i);if(n)for(let a of r){n.classes.push(a);let s=this.classes.get(a)?.styles;s&&n.cssStyles.push(...s)}}}defineClass(t,r){for(let i of t){let n=this.classes.get(i);n===void 0&&(n={id:i,styles:[],textStyles:[]},this.classes.set(i,n)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");n.textStyles.push(s)}n.styles.push(a)}),this.requirements.forEach(a=>{a.classes.includes(i)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))}),this.elements.forEach(a=>{a.classes.includes(i)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))})}}getClasses(){return this.classes}getData(){let t=ge(),r=[],i=[];for(let n of this.requirements.values()){let a=n;a.id=n.name,a.cssStyles=n.cssStyles,a.cssClasses=n.classes.join(" "),a.shape="requirementBox",a.look=t.look,a.colorIndex=r.length,r.push(a)}for(let n of this.elements.values()){let a=n;a.shape="requirementBox",a.look=t.look,a.id=n.name,a.cssStyles=n.cssStyles,a.cssClasses=n.classes.join(" "),a.colorIndex=r.length,r.push(a)}for(let n of this.relations){let a=0,s=n.type===this.Relationships.CONTAINS,l={id:`${n.src}-${n.dst}-${a}`,start:this.requirements.get(n.src)?.name??this.elements.get(n.src)?.name,end:this.requirements.get(n.dst)?.name??this.elements.get(n.dst)?.name,label:`<<${n.type}>>`,classes:"relationshipLine",style:["fill:none",s?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:s?"normal":"dashed",arrowTypeStart:s?"requirement_contains":"",arrowTypeEnd:s?"":"requirement_arrow",look:t.look,labelType:"markdown"};i.push(l),a++}return{nodes:r,edges:i,other:{},config:t,direction:this.getDirection()}}}});var gTt,yTt,QAe,JAe=z(()=>{"use strict";br();gTt=o(e=>{let t=Nt(),{themeVariables:r,look:i}=t,{bkgColorArray:n,borderColorArray:a}=r;if(!a?.length)return"";let s="";for(let l=0;l{let t=Nt(),{look:r,themeVariables:i}=t,{requirementEdgeLabelBackground:n}=i;return` + ${gTt(e)} + marker { + fill: ${e.relationColor}; + stroke: ${e.relationColor}; + } + + marker.cross { + stroke: ${e.lineColor}; + } + + svg { + font-family: ${e.fontFamily}; + font-size: ${e.fontSize}; + } + + .reqBox { + fill: ${e.requirementBackground}; + fill-opacity: 1.0; + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${e.requirementTextColor}; + } + .reqLabelBox { + fill: ${e.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + .relationshipLine { + stroke: ${e.relationColor}; + stroke-width: ${r==="neo"?e.strokeWidth:"1px"}; + } + .relationshipLabel { + fill: ${e.relationLabelColor}; + } + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + } + .edgeLabel .label rect { + fill: ${e.edgeLabelBackground}; + } + .edgeLabel .label text { + fill: ${e.relationLabelColor}; + } + .divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; + } + .label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .label text,span { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + .labelBkg { + background-color: ${n??e.edgeLabelBackground}; + } + +`},"getStyles"),QAe=yTt});var iW={};xr(iW,{draw:()=>vTt});var vTt,e6e=z(()=>{"use strict";Ut();St();Lp();tf();rf();Xt();vTt=o(async function(e,t,r,i){Z.info("REF0:"),Z.info("Drawing requirement diagram (unified)",t);let{securityLevel:n,state:a,layout:s,look:l}=ge(),u=i.db.getData(),h=Fo(t,n);u.type=i.type,u.layoutAlgorithm=Gc(s),u.nodeSpacing=a?.nodeSpacing??50,u.rankSpacing=a?.rankSpacing??50,u.markers=l==="neo"?["requirement_contains_neo","requirement_arrow_neo"]:["requirement_contains","requirement_arrow"],u.diagramId=t,await Zo(u,h);let d=8;Zt.insertTitle(h,"requirementDiagramTitleText",a?.titleTopMargin??25,i.db.getDiagramTitle()),$s(h,d,"requirementDiagram",a?.useMaxWidth??!0)},"draw")});var t6e={};xr(t6e,{diagram:()=>xTt});var xTt,r6e=z(()=>{"use strict";KAe();ZAe();JAe();e6e();xTt={parser:XAe,get db(){return new V6},renderer:iW,styles:QAe}});var nW,a6e,s6e=z(()=>{"use strict";nW=(function(){var e=o(function(be,Be,Ae,Ve){for(Ae=Ae||{},Ve=be.length;Ve--;Ae[be[Ve]]=Be);return Ae},"o"),t=[1,2],r=[1,3],i=[1,4],n=[2,4],a=[1,9],s=[1,11],l=[1,12],u=[1,14],h=[1,15],d=[1,17],f=[1,18],p=[1,19],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],T=[1,31],w=[1,32],C=[1,33],k=[1,34],E=[1,35],A=[1,36],N=[1,37],P=[1,38],I=[1,39],D=[1,40],_=[1,42],R=[1,43],M=[1,44],L=[1,45],B=[1,46],O=[1,47],$=[1,4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,49,50,51,53,54,56,61,62,63,64,73],G=[1,74],F=[1,80],V=[1,81],H=[1,82],j=[1,83],U=[1,84],Q=[1,85],Y=[1,86],ae=[1,87],J=[1,88],te=[1,89],re=[1,90],ee=[1,91],Te=[1,92],ue=[1,93],De=[1,94],Ie=[1,95],Ee=[1,96],we=[1,97],Me=[1,98],$e=[1,99],de=[1,100],rt=[1,101],ke=[1,102],Fe=[1,103],He=[1,104],at=[1,105],qe=[2,78],Ue=[4,5,17,51,53,54],ye=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],ve=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,50,51,53,54,56,61,62,63,64,73],ie=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,49,51,53,54,56,61,62,63,64,73],fe=[4,5,10,14,15,17,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,48,51,53,54,56,61,62,63,64,73],W=[5,52],ce=[70,71,72,73],K=[1,151],Re={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,INVALID:10,box_section:11,box_line:12,participant_statement:13,create:14,box:15,restOfLine:16,end:17,signal:18,autonumber:19,NUM:20,off:21,activate:22,actor:23,deactivate:24,note_statement:25,links_statement:26,link_statement:27,properties_statement:28,details_statement:29,title:30,legacy_title:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,loop:37,rect:38,opt:39,alt:40,else_sections:41,par:42,par_sections:43,par_over:44,critical:45,option_sections:46,break:47,option:48,and:49,else:50,participant:51,AS:52,participant_actor:53,destroy:54,actor_with_config:55,note:56,placement:57,text2:58,over:59,actor_pair:60,links:61,link:62,properties:63,details:64,spaceList:65,",":66,left_of:67,right_of:68,signaltype:69,"+":70,"-":71,"()":72,ACTOR:73,config_object:74,CONFIG_START:75,CONFIG_CONTENT:76,CONFIG_END:77,SOLID_OPEN_ARROW:78,DOTTED_OPEN_ARROW:79,SOLID_ARROW:80,SOLID_ARROW_TOP:81,SOLID_ARROW_BOTTOM:82,STICK_ARROW_TOP:83,STICK_ARROW_BOTTOM:84,SOLID_ARROW_TOP_DOTTED:85,SOLID_ARROW_BOTTOM_DOTTED:86,STICK_ARROW_TOP_DOTTED:87,STICK_ARROW_BOTTOM_DOTTED:88,SOLID_ARROW_TOP_REVERSE:89,SOLID_ARROW_BOTTOM_REVERSE:90,STICK_ARROW_TOP_REVERSE:91,STICK_ARROW_BOTTOM_REVERSE:92,SOLID_ARROW_TOP_REVERSE_DOTTED:93,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:94,STICK_ARROW_TOP_REVERSE_DOTTED:95,STICK_ARROW_BOTTOM_REVERSE_DOTTED:96,BIDIRECTIONAL_SOLID_ARROW:97,DOTTED_ARROW:98,BIDIRECTIONAL_DOTTED_ARROW:99,SOLID_CROSS:100,DOTTED_CROSS:101,SOLID_POINT:102,DOTTED_POINT:103,TXT:104,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",10:"INVALID",14:"create",15:"box",16:"restOfLine",17:"end",19:"autonumber",20:"NUM",21:"off",22:"activate",24:"deactivate",30:"title",31:"legacy_title",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"loop",38:"rect",39:"opt",40:"alt",42:"par",44:"par_over",45:"critical",47:"break",48:"option",49:"and",50:"else",51:"participant",52:"AS",53:"participant_actor",54:"destroy",56:"note",59:"over",61:"links",62:"link",63:"properties",64:"details",66:",",67:"left_of",68:"right_of",70:"+",71:"-",72:"()",73:"ACTOR",75:"CONFIG_START",76:"CONFIG_CONTENT",77:"CONFIG_END",78:"SOLID_OPEN_ARROW",79:"DOTTED_OPEN_ARROW",80:"SOLID_ARROW",81:"SOLID_ARROW_TOP",82:"SOLID_ARROW_BOTTOM",83:"STICK_ARROW_TOP",84:"STICK_ARROW_BOTTOM",85:"SOLID_ARROW_TOP_DOTTED",86:"SOLID_ARROW_BOTTOM_DOTTED",87:"STICK_ARROW_TOP_DOTTED",88:"STICK_ARROW_BOTTOM_DOTTED",89:"SOLID_ARROW_TOP_REVERSE",90:"SOLID_ARROW_BOTTOM_REVERSE",91:"STICK_ARROW_TOP_REVERSE",92:"STICK_ARROW_BOTTOM_REVERSE",93:"SOLID_ARROW_TOP_REVERSE_DOTTED",94:"SOLID_ARROW_BOTTOM_REVERSE_DOTTED",95:"STICK_ARROW_TOP_REVERSE_DOTTED",96:"STICK_ARROW_BOTTOM_REVERSE_DOTTED",97:"BIDIRECTIONAL_SOLID_ARROW",98:"DOTTED_ARROW",99:"BIDIRECTIONAL_DOTTED_ARROW",100:"SOLID_CROSS",101:"DOTTED_CROSS",102:"SOLID_POINT",103:"DOTTED_POINT",104:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[8,1],[11,0],[11,2],[12,2],[12,1],[12,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[46,1],[46,4],[43,1],[43,4],[41,1],[41,4],[13,5],[13,3],[13,5],[13,3],[13,3],[13,5],[13,3],[13,5],[13,3],[25,4],[25,4],[26,3],[27,3],[28,3],[29,3],[65,2],[65,1],[60,3],[60,1],[57,1],[57,1],[18,5],[18,5],[18,5],[18,5],[18,6],[18,4],[55,2],[74,3],[23,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[58,1]],performAction:o(function(Be,Ae,Ve,Pe,Ye,le,st){var me=le.length-1;switch(Ye){case 3:return Pe.apply(le[me]),le[me];break;case 4:case 10:this.$=[];break;case 5:case 11:le[me-1].push(le[me]),this.$=le[me-1];break;case 6:case 7:case 12:case 13:this.$=le[me];break;case 8:case 9:case 14:this.$=[];break;case 16:le[me].type="createParticipant",this.$=le[me];break;case 17:le[me-1].unshift({type:"boxStart",boxData:Pe.parseBoxData(le[me-2])}),le[me-1].push({type:"boxEnd",boxText:le[me-2]}),this.$=le[me-1];break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(le[me-2]),sequenceIndexStep:Number(le[me-1]),sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(le[me-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:Pe.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:Pe.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"activeStart",signalType:Pe.LINETYPE.ACTIVE_START,actor:le[me-1].actor};break;case 24:this.$={type:"activeEnd",signalType:Pe.LINETYPE.ACTIVE_END,actor:le[me-1].actor};break;case 30:Pe.setDiagramTitle(le[me].substring(6)),this.$=le[me].substring(6);break;case 31:Pe.setDiagramTitle(le[me].substring(7)),this.$=le[me].substring(7);break;case 32:this.$=le[me].trim(),Pe.setAccTitle(this.$);break;case 33:case 34:this.$=le[me].trim(),Pe.setAccDescription(this.$);break;case 35:le[me-1].unshift({type:"loopStart",loopText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.LOOP_START}),le[me-1].push({type:"loopEnd",loopText:le[me-2],signalType:Pe.LINETYPE.LOOP_END}),this.$=le[me-1];break;case 36:le[me-1].unshift({type:"rectStart",color:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.RECT_START}),le[me-1].push({type:"rectEnd",color:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.RECT_END}),this.$=le[me-1];break;case 37:le[me-1].unshift({type:"optStart",optText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.OPT_START}),le[me-1].push({type:"optEnd",optText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.OPT_END}),this.$=le[me-1];break;case 38:le[me-1].unshift({type:"altStart",altText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.ALT_START}),le[me-1].push({type:"altEnd",signalType:Pe.LINETYPE.ALT_END}),this.$=le[me-1];break;case 39:le[me-1].unshift({type:"parStart",parText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.PAR_START}),le[me-1].push({type:"parEnd",signalType:Pe.LINETYPE.PAR_END}),this.$=le[me-1];break;case 40:le[me-1].unshift({type:"parStart",parText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.PAR_OVER_START}),le[me-1].push({type:"parEnd",signalType:Pe.LINETYPE.PAR_END}),this.$=le[me-1];break;case 41:le[me-1].unshift({type:"criticalStart",criticalText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.CRITICAL_START}),le[me-1].push({type:"criticalEnd",signalType:Pe.LINETYPE.CRITICAL_END}),this.$=le[me-1];break;case 42:le[me-1].unshift({type:"breakStart",breakText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.BREAK_START}),le[me-1].push({type:"breakEnd",optText:Pe.parseMessage(le[me-2]),signalType:Pe.LINETYPE.BREAK_END}),this.$=le[me-1];break;case 44:this.$=le[me-3].concat([{type:"option",optionText:Pe.parseMessage(le[me-1]),signalType:Pe.LINETYPE.CRITICAL_OPTION},le[me]]);break;case 46:this.$=le[me-3].concat([{type:"and",parText:Pe.parseMessage(le[me-1]),signalType:Pe.LINETYPE.PAR_AND},le[me]]);break;case 48:this.$=le[me-3].concat([{type:"else",altText:Pe.parseMessage(le[me-1]),signalType:Pe.LINETYPE.ALT_ELSE},le[me]]);break;case 49:le[me-3].draw="participant",le[me-3].type="addParticipant",le[me-3].description=Pe.parseMessage(le[me-1]),this.$=le[me-3];break;case 50:le[me-1].draw="participant",le[me-1].type="addParticipant",this.$=le[me-1];break;case 51:le[me-3].draw="actor",le[me-3].type="addParticipant",le[me-3].description=Pe.parseMessage(le[me-1]),this.$=le[me-3];break;case 52:case 57:le[me-1].draw="actor",le[me-1].type="addParticipant",this.$=le[me-1];break;case 53:le[me-1].type="destroyParticipant",this.$=le[me-1];break;case 54:le[me-3].draw="participant",le[me-3].type="addParticipant",le[me-3].description=Pe.parseMessage(le[me-1]),this.$=le[me-3];break;case 55:le[me-1].draw="participant",le[me-1].type="addParticipant",this.$=le[me-1];break;case 56:le[me-3].draw="actor",le[me-3].type="addParticipant",le[me-3].description=Pe.parseMessage(le[me-1]),this.$=le[me-3];break;case 58:this.$=[le[me-1],{type:"addNote",placement:le[me-2],actor:le[me-1].actor,text:le[me]}];break;case 59:le[me-2]=[].concat(le[me-1],le[me-1]).slice(0,2),le[me-2][0]=le[me-2][0].actor,le[me-2][1]=le[me-2][1].actor,this.$=[le[me-1],{type:"addNote",placement:Pe.PLACEMENT.OVER,actor:le[me-2].slice(0,2),text:le[me]}];break;case 60:this.$=[le[me-1],{type:"addLinks",actor:le[me-1].actor,text:le[me]}];break;case 61:this.$=[le[me-1],{type:"addALink",actor:le[me-1].actor,text:le[me]}];break;case 62:this.$=[le[me-1],{type:"addProperties",actor:le[me-1].actor,text:le[me]}];break;case 63:this.$=[le[me-1],{type:"addDetails",actor:le[me-1].actor,text:le[me]}];break;case 66:this.$=[le[me-2],le[me]];break;case 67:this.$=le[me];break;case 68:this.$=Pe.PLACEMENT.LEFTOF;break;case 69:this.$=Pe.PLACEMENT.RIGHTOF;break;case 70:this.$=[le[me-4],le[me-1],{type:"addMessage",from:le[me-4].actor,to:le[me-1].actor,signalType:le[me-3],msg:le[me],activate:!0},{type:"activeStart",signalType:Pe.LINETYPE.ACTIVE_START,actor:le[me-1].actor}];break;case 71:this.$=[le[me-4],le[me-1],{type:"addMessage",from:le[me-4].actor,to:le[me-1].actor,signalType:le[me-3],msg:le[me]},{type:"activeEnd",signalType:Pe.LINETYPE.ACTIVE_END,actor:le[me-4].actor}];break;case 72:this.$=[le[me-4],le[me-1],{type:"addMessage",from:le[me-4].actor,to:le[me-1].actor,signalType:le[me-3],msg:le[me],activate:!0,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION},{type:"centralConnection",signalType:Pe.LINETYPE.CENTRAL_CONNECTION,actor:le[me-1].actor}];break;case 73:this.$=[le[me-4],le[me-1],{type:"addMessage",from:le[me-4].actor,to:le[me-1].actor,signalType:le[me-2],msg:le[me],activate:!1,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE},{type:"centralConnectionReverse",signalType:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:le[me-4].actor}];break;case 74:this.$=[le[me-5],le[me-1],{type:"addMessage",from:le[me-5].actor,to:le[me-1].actor,signalType:le[me-3],msg:le[me],activate:!0,centralConnection:Pe.LINETYPE.CENTRAL_CONNECTION_DUAL},{type:"centralConnection",signalType:Pe.LINETYPE.CENTRAL_CONNECTION,actor:le[me-1].actor},{type:"centralConnectionReverse",signalType:Pe.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:le[me-5].actor}];break;case 75:this.$=[le[me-3],le[me-1],{type:"addMessage",from:le[me-3].actor,to:le[me-1].actor,signalType:le[me-2],msg:le[me]}];break;case 76:this.$={type:"addParticipant",actor:le[me-1],config:le[me]};break;case 77:this.$=le[me-1].trim();break;case 78:this.$={type:"addParticipant",actor:le[me]};break;case 79:this.$=Pe.LINETYPE.SOLID_OPEN;break;case 80:this.$=Pe.LINETYPE.DOTTED_OPEN;break;case 81:this.$=Pe.LINETYPE.SOLID;break;case 82:this.$=Pe.LINETYPE.SOLID_TOP;break;case 83:this.$=Pe.LINETYPE.SOLID_BOTTOM;break;case 84:this.$=Pe.LINETYPE.STICK_TOP;break;case 85:this.$=Pe.LINETYPE.STICK_BOTTOM;break;case 86:this.$=Pe.LINETYPE.SOLID_TOP_DOTTED;break;case 87:this.$=Pe.LINETYPE.SOLID_BOTTOM_DOTTED;break;case 88:this.$=Pe.LINETYPE.STICK_TOP_DOTTED;break;case 89:this.$=Pe.LINETYPE.STICK_BOTTOM_DOTTED;break;case 90:this.$=Pe.LINETYPE.SOLID_ARROW_TOP_REVERSE;break;case 91:this.$=Pe.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE;break;case 92:this.$=Pe.LINETYPE.STICK_ARROW_TOP_REVERSE;break;case 93:this.$=Pe.LINETYPE.STICK_ARROW_BOTTOM_REVERSE;break;case 94:this.$=Pe.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED;break;case 95:this.$=Pe.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED;break;case 96:this.$=Pe.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED;break;case 97:this.$=Pe.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED;break;case 98:this.$=Pe.LINETYPE.BIDIRECTIONAL_SOLID;break;case 99:this.$=Pe.LINETYPE.DOTTED;break;case 100:this.$=Pe.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 101:this.$=Pe.LINETYPE.SOLID_CROSS;break;case 102:this.$=Pe.LINETYPE.DOTTED_CROSS;break;case 103:this.$=Pe.LINETYPE.SOLID_POINT;break;case 104:this.$=Pe.LINETYPE.DOTTED_POINT;break;case 105:this.$=Pe.parseMessage(le[me].trim().substring(1));break}},"anonymous"),table:[{3:1,4:t,5:r,6:i},{1:[3]},{3:5,4:t,5:r,6:i},{3:6,4:t,5:r,6:i},e([1,4,5,10,14,15,19,22,24,30,31,32,34,36,37,38,39,40,42,44,45,47,51,53,54,56,61,62,63,64,73],n,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},e($,[2,5]),{9:48,13:13,14:u,15:h,18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},e($,[2,7]),e($,[2,8]),e($,[2,9]),e($,[2,15]),{13:49,51:P,53:I,54:D},{16:[1,50]},{5:[1,51]},{5:[1,54],20:[1,52],21:[1,53]},{23:55,73:O},{23:56,73:O},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},{5:[1,61]},e($,[2,30]),e($,[2,31]),{33:[1,62]},{35:[1,63]},e($,[2,34]),{16:[1,64]},{16:[1,65]},{16:[1,66]},{16:[1,67]},{16:[1,68]},{16:[1,69]},{16:[1,70]},{16:[1,71]},{23:72,55:73,73:G},{23:75,55:76,73:G},{23:77,73:O},{69:78,72:[1,79],78:F,79:V,80:H,81:j,82:U,83:Q,84:Y,85:ae,86:J,87:te,88:re,89:ee,90:Te,91:ue,92:De,93:Ie,94:Ee,95:we,96:Me,97:$e,98:de,99:rt,100:ke,101:Fe,102:He,103:at},{57:106,59:[1,107],67:[1,108],68:[1,109]},{23:110,73:O},{23:111,73:O},{23:112,73:O},{23:113,73:O},e([5,66,72,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],qe),e($,[2,6]),e($,[2,16]),e(Ue,[2,10],{11:114}),e($,[2,18]),{5:[1,116],20:[1,115]},{5:[1,117]},e($,[2,22]),{5:[1,118]},{5:[1,119]},e($,[2,25]),e($,[2,26]),e($,[2,27]),e($,[2,28]),e($,[2,29]),e($,[2,32]),e($,[2,33]),e(ye,n,{7:120}),e(ye,n,{7:121}),e(ye,n,{7:122}),e(ve,n,{41:123,7:124}),e(ie,n,{43:125,7:126}),e(ie,n,{7:126,43:127}),e(fe,n,{46:128,7:129}),e(ye,n,{7:130}),{5:[1,132],52:[1,131]},{5:[1,134],52:[1,133]},e(W,qe,{74:135,75:[1,136]}),{5:[1,138],52:[1,137]},{5:[1,140],52:[1,139]},{5:[1,141]},{23:145,70:[1,142],71:[1,143],72:[1,144],73:O},{69:146,78:F,79:V,80:H,81:j,82:U,83:Q,84:Y,85:ae,86:J,87:te,88:re,89:ee,90:Te,91:ue,92:De,93:Ie,94:Ee,95:we,96:Me,97:$e,98:de,99:rt,100:ke,101:Fe,102:He,103:at},e(ce,[2,79]),e(ce,[2,80]),e(ce,[2,81]),e(ce,[2,82]),e(ce,[2,83]),e(ce,[2,84]),e(ce,[2,85]),e(ce,[2,86]),e(ce,[2,87]),e(ce,[2,88]),e(ce,[2,89]),e(ce,[2,90]),e(ce,[2,91]),e(ce,[2,92]),e(ce,[2,93]),e(ce,[2,94]),e(ce,[2,95]),e(ce,[2,96]),e(ce,[2,97]),e(ce,[2,98]),e(ce,[2,99]),e(ce,[2,100]),e(ce,[2,101]),e(ce,[2,102]),e(ce,[2,103]),e(ce,[2,104]),{23:147,73:O},{23:149,60:148,73:O},{73:[2,68]},{73:[2,69]},{58:150,104:K},{58:152,104:K},{58:153,104:K},{58:154,104:K},{4:[1,157],5:[1,159],12:156,13:158,17:[1,155],51:P,53:I,54:D},{5:[1,160]},e($,[2,20]),e($,[2,21]),e($,[2,23]),e($,[2,24]),{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,161],18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,162],18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,163],18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},{17:[1,164]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,47],18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,50:[1,165],51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},{17:[1,166]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,45],18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,49:[1,167],51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},{17:[1,168]},{17:[1,169]},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[2,43],18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,48:[1,170],51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},{4:a,5:s,8:8,9:10,10:l,13:13,14:u,15:h,17:[1,171],18:16,19:d,22:f,23:41,24:p,25:20,26:21,27:22,28:23,29:24,30:m,31:g,32:y,34:v,36:x,37:b,38:T,39:w,40:C,42:k,44:E,45:A,47:N,51:P,53:I,54:D,56:_,61:R,62:M,63:L,64:B,73:O},{16:[1,172]},e($,[2,50]),{16:[1,173]},e($,[2,55]),e(W,[2,76]),{76:[1,174]},{16:[1,175]},e($,[2,52]),{16:[1,176]},e($,[2,57]),e($,[2,53]),{23:177,73:O},{23:178,73:O},{23:179,73:O},{58:180,104:K},{23:181,72:[1,182],73:O},{58:183,104:K},{58:184,104:K},{66:[1,185],104:[2,67]},{5:[2,60]},{5:[2,105]},{5:[2,61]},{5:[2,62]},{5:[2,63]},e($,[2,17]),e(Ue,[2,11]),{13:186,51:P,53:I,54:D},e(Ue,[2,13]),e(Ue,[2,14]),e($,[2,19]),e($,[2,35]),e($,[2,36]),e($,[2,37]),e($,[2,38]),{16:[1,187]},e($,[2,39]),{16:[1,188]},e($,[2,40]),e($,[2,41]),{16:[1,189]},e($,[2,42]),{5:[1,190]},{5:[1,191]},{77:[1,192]},{5:[1,193]},{5:[1,194]},{58:195,104:K},{58:196,104:K},{58:197,104:K},{5:[2,75]},{58:198,104:K},{23:199,73:O},{5:[2,58]},{5:[2,59]},{23:200,73:O},e(Ue,[2,12]),e(ve,n,{7:124,41:201}),e(ie,n,{7:126,43:202}),e(fe,n,{7:129,46:203}),e($,[2,49]),e($,[2,54]),e(W,[2,77]),e($,[2,51]),e($,[2,56]),{5:[2,70]},{5:[2,71]},{5:[2,72]},{5:[2,73]},{58:204,104:K},{104:[2,66]},{17:[2,48]},{17:[2,46]},{17:[2,44]},{5:[2,74]}],defaultActions:{5:[2,1],6:[2,2],108:[2,68],109:[2,69],150:[2,60],151:[2,105],152:[2,61],153:[2,62],154:[2,63],180:[2,75],183:[2,58],184:[2,59],195:[2,70],196:[2,71],197:[2,72],198:[2,73],200:[2,66],201:[2,48],202:[2,46],203:[2,44],204:[2,74]},parseError:o(function(Be,Ae){if(Ae.recoverable)this.trace(Be);else{var Ve=new Error(Be);throw Ve.hash=Ae,Ve}},"parseError"),parse:o(function(Be){var Ae=this,Ve=[0],Pe=[],Ye=[null],le=[],st=this.table,me="",ot=0,kt=0,Gt=0,Tt=2,Et=1,yt=le.slice.call(arguments,1),oe=Object.create(this.lexer),ht={yy:{}};for(var gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gt)&&(ht.yy[gt]=this.yy[gt]);oe.setInput(Be,ht.yy),ht.yy.lexer=oe,ht.yy.parser=this,typeof oe.yylloc>"u"&&(oe.yylloc={});var et=oe.yylloc;le.push(et);var pe=oe.options&&oe.options.ranges;typeof ht.yy.parseError=="function"?this.parseError=ht.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Qe(Dr){Ve.length=Ve.length-2*Dr,Ye.length=Ye.length-Dr,le.length=le.length-Dr}o(Qe,"popStack");function nt(){var Dr;return Dr=Pe.pop()||oe.lex()||Et,typeof Dr!="number"&&(Dr instanceof Array&&(Pe=Dr,Dr=Pe.pop()),Dr=Ae.symbols_[Dr]||Dr),Dr}o(nt,"lex");for(var dt,Ft,Rt,$t,lr,pt,Se={},it,xt,rr,_r;;){if(Rt=Ve[Ve.length-1],this.defaultActions[Rt]?$t=this.defaultActions[Rt]:((dt===null||typeof dt>"u")&&(dt=nt()),$t=st[Rt]&&st[Rt][dt]),typeof $t>"u"||!$t.length||!$t[0]){var Ur="";_r=[];for(it in st[Rt])this.terminals_[it]&&it>Tt&&_r.push("'"+this.terminals_[it]+"'");oe.showPosition?Ur="Parse error on line "+(ot+1)+`: +`+oe.showPosition()+` +Expecting `+_r.join(", ")+", got '"+(this.terminals_[dt]||dt)+"'":Ur="Parse error on line "+(ot+1)+": Unexpected "+(dt==Et?"end of input":"'"+(this.terminals_[dt]||dt)+"'"),this.parseError(Ur,{text:oe.match,token:this.terminals_[dt]||dt,line:oe.yylineno,loc:et,expected:_r})}if($t[0]instanceof Array&&$t.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Rt+", token: "+dt);switch($t[0]){case 1:Ve.push(dt),Ye.push(oe.yytext),le.push(oe.yylloc),Ve.push($t[1]),dt=null,Ft?(dt=Ft,Ft=null):(kt=oe.yyleng,me=oe.yytext,ot=oe.yylineno,et=oe.yylloc,Gt>0&&Gt--);break;case 2:if(xt=this.productions_[$t[1]][1],Se.$=Ye[Ye.length-xt],Se._$={first_line:le[le.length-(xt||1)].first_line,last_line:le[le.length-1].last_line,first_column:le[le.length-(xt||1)].first_column,last_column:le[le.length-1].last_column},pe&&(Se._$.range=[le[le.length-(xt||1)].range[0],le[le.length-1].range[1]]),pt=this.performAction.apply(Se,[me,kt,ot,ht.yy,$t[1],Ye,le].concat(yt)),typeof pt<"u")return pt;xt&&(Ve=Ve.slice(0,-1*xt*2),Ye=Ye.slice(0,-1*xt),le=le.slice(0,-1*xt)),Ve.push(this.productions_[$t[1]][0]),Ye.push(Se.$),le.push(Se._$),rr=st[Ve[Ve.length-2]][Ve[Ve.length-1]],Ve.push(rr);break;case 3:return!0}}return!0},"parse")},xe=(function(){var be={EOF:1,parseError:o(function(Ae,Ve){if(this.yy.parser)this.yy.parser.parseError(Ae,Ve);else throw new Error(Ae)},"parseError"),setInput:o(function(Be,Ae){return this.yy=Ae||this.yy||{},this._input=Be,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Be=this._input[0];this.yytext+=Be,this.yyleng++,this.offset++,this.match+=Be,this.matched+=Be;var Ae=Be.match(/(?:\r\n?|\n).*/g);return Ae?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Be},"input"),unput:o(function(Be){var Ae=Be.length,Ve=Be.split(/(?:\r\n?|\n)/g);this._input=Be+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ae),this.offset-=Ae;var Pe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ve.length-1&&(this.yylineno-=Ve.length-1);var Ye=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ve?(Ve.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-Ve.length].length-Ve[0].length:this.yylloc.first_column-Ae},this.options.ranges&&(this.yylloc.range=[Ye[0],Ye[0]+this.yyleng-Ae]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Be){this.unput(this.match.slice(Be))},"less"),pastInput:o(function(){var Be=this.matched.substr(0,this.matched.length-this.match.length);return(Be.length>20?"...":"")+Be.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Be=this.match;return Be.length<20&&(Be+=this._input.substr(0,20-Be.length)),(Be.substr(0,20)+(Be.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Be=this.pastInput(),Ae=new Array(Be.length+1).join("-");return Be+this.upcomingInput()+` +`+Ae+"^"},"showPosition"),test_match:o(function(Be,Ae){var Ve,Pe,Ye;if(this.options.backtrack_lexer&&(Ye={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ye.yylloc.range=this.yylloc.range.slice(0))),Pe=Be[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Be[0].length},this.yytext+=Be[0],this.match+=Be[0],this.matches=Be,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Be[0].length),this.matched+=Be[0],Ve=this.performAction.call(this,this.yy,this,Ae,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ve)return Ve;if(this._backtrack){for(var le in Ye)this[le]=Ye[le];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Be,Ae,Ve,Pe;this._more||(this.yytext="",this.match="");for(var Ye=this._currentRules(),le=0;leAe[0].length)){if(Ae=Ve,Pe=le,this.options.backtrack_lexer){if(Be=this.test_match(Ve,Ye[le]),Be!==!1)return Be;if(this._backtrack){Ae=!1;continue}else return!1}else if(!this.options.flex)break}return Ae?(Be=this.test_match(Ae,Ye[Pe]),Be!==!1?Be:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ae=this.next();return Ae||this.lex()},"lex"),begin:o(function(Ae){this.conditionStack.push(Ae)},"begin"),popState:o(function(){var Ae=this.conditionStack.length-1;return Ae>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ae){return Ae=this.conditionStack.length-1-Math.abs(Ae||0),Ae>=0?this.conditionStack[Ae]:"INITIAL"},"topState"),pushState:o(function(Ae){this.begin(Ae)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Ae,Ve,Pe,Ye){var le=Ye;switch(Pe){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 20;case 7:return this.begin("CONFIG"),75;break;case 8:return 76;case 9:return this.popState(),this.begin("ALIAS"),77;break;case 10:return this.popState(),this.popState(),77;break;case 11:return Ve.yytext=Ve.yytext.trim(),73;break;case 12:return Ve.yytext=Ve.yytext.trim(),this.begin("ALIAS"),73;break;case 13:return Ve.yytext=Ve.yytext.trim(),this.popState(),73;break;case 14:return this.popState(),10;break;case 15:return Ve.yytext=Ve.yytext.trim(),this.popState(),10;break;case 16:return this.begin("LINE"),15;break;case 17:return this.begin("ID"),51;break;case 18:return this.begin("ID"),53;break;case 19:return 14;case 20:return this.begin("ID"),54;break;case 21:return this.popState(),this.popState(),this.begin("LINE"),52;break;case 22:return this.popState(),this.popState(),5;break;case 23:return this.begin("LINE"),37;break;case 24:return this.begin("LINE"),38;break;case 25:return this.begin("LINE"),39;break;case 26:return this.begin("LINE"),40;break;case 27:return this.begin("LINE"),50;break;case 28:return this.begin("LINE"),42;break;case 29:return this.begin("LINE"),44;break;case 30:return this.begin("LINE"),49;break;case 31:return this.begin("LINE"),45;break;case 32:return this.begin("LINE"),48;break;case 33:return this.begin("LINE"),47;break;case 34:return this.popState(),16;break;case 35:return 17;case 36:return 67;case 37:return 68;case 38:return 61;case 39:return 62;case 40:return 63;case 41:return 64;case 42:return 59;case 43:return 56;case 44:return this.begin("ID"),22;break;case 45:return this.begin("ID"),24;break;case 46:return 30;case 47:return 31;case 48:return this.begin("acc_title"),32;break;case 49:return this.popState(),"acc_title_value";break;case 50:return this.begin("acc_descr"),34;break;case 51:return this.popState(),"acc_descr_value";break;case 52:this.begin("acc_descr_multiline");break;case 53:this.popState();break;case 54:return"acc_descr_multiline_value";case 55:return 6;case 56:return 19;case 57:return 21;case 58:return 66;case 59:return 5;case 60:return Ve.yytext=Ve.yytext.trim(),73;break;case 61:return 80;case 62:return 97;case 63:return 98;case 64:return 99;case 65:return 78;case 66:return 79;case 67:return 100;case 68:return 101;case 69:return 102;case 70:return 103;case 71:return 85;case 72:return 86;case 73:return 87;case 74:return 88;case 75:return 93;case 76:return 94;case 77:return 95;case 78:return 96;case 79:return 81;case 80:return 82;case 81:return 83;case 82:return 84;case 83:return 89;case 84:return 90;case 85:return 91;case 86:return 92;case 87:return 104;case 88:return 104;case 89:return 70;case 90:return 71;case 91:return 72;case 92:return 5;case 93:return 10}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:([0-9]+(\.[0-9]{1,2})?|\.[0-9]{1,2})(?=[ \n]+))/i,/^(?:@\{)/i,/^(?:[^\}]+)/i,/^(?:\}(?=\s+as\s))/i,/^(?:\})/i,/^(?:[^\<->\->:\n,;@\s]+(?=@\{))/i,/^(?:[^<>:\n,;@\s]+(?=\s+as\s))/i,/^(?:[^<>:\n,;@]+(?=\s*[\n;#]|$))/i,/^(?:[^<>:\n,;@]*<[^\n]*)/i,/^(?:[^\n]+)/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\/\\\+\()\+<\->\->:\n,;]+((?!(-x|--x|-\)|--\)|-\|\\|-\\|-\/|-\/\/|-\|\/|\/\|-|\\\|-|\/\/-|\\\\-|\/\|-|--\|\\|--|\(\)))[\-]*[^\+<\->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?:--\|\\)/i,/^(?:--\|\/)/i,/^(?:--\\\\)/i,/^(?:--\/\/)/i,/^(?:\/\|--)/i,/^(?:\\\|--)/i,/^(?:\/\/--)/i,/^(?:\\\\--)/i,/^(?:-\|\\)/i,/^(?:-\|\/)/i,/^(?:-\\\\)/i,/^(?:-\/\/)/i,/^(?:\/\|-)/i,/^(?:\\\|-)/i,/^(?:\/\/-)/i,/^(?:\\\\-)/i,/^(?::(?:(?:no)?wrap)?[^#\n;]*)/i,/^(?::)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\(\))/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[53,54],inclusive:!1},acc_descr:{rules:[51],inclusive:!1},acc_title:{rules:[49],inclusive:!1},ID:{rules:[2,3,7,11,12,13,14,15],inclusive:!1},ALIAS:{rules:[2,3,21,22],inclusive:!1},LINE:{rules:[2,3,34],inclusive:!1},CONFIG:{rules:[8,9,10],inclusive:!1},CONFIG_DATA:{rules:[],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,16,17,18,19,20,23,24,25,26,27,28,29,30,31,32,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,52,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],inclusive:!0}}};return be})();Re.lexer=xe;function Oe(){this.yy={}}return o(Oe,"Parser"),Oe.prototype=Re,Re.Parser=Oe,new Oe})();nW.parser=nW;a6e=nW});var kTt,wTt,STt,jT,W6,aW=z(()=>{"use strict";Ut();Wx();St();T6();Ir();Ci();kTt={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34,SOLID_TOP:41,SOLID_BOTTOM:42,STICK_TOP:43,STICK_BOTTOM:44,SOLID_ARROW_TOP_REVERSE:45,SOLID_ARROW_BOTTOM_REVERSE:46,STICK_ARROW_TOP_REVERSE:47,STICK_ARROW_BOTTOM_REVERSE:48,SOLID_TOP_DOTTED:51,SOLID_BOTTOM_DOTTED:52,STICK_TOP_DOTTED:53,STICK_BOTTOM_DOTTED:54,SOLID_ARROW_TOP_REVERSE_DOTTED:55,SOLID_ARROW_BOTTOM_REVERSE_DOTTED:56,STICK_ARROW_TOP_REVERSE_DOTTED:57,STICK_ARROW_BOTTOM_REVERSE_DOTTED:58,CENTRAL_CONNECTION:59,CENTRAL_CONNECTION_REVERSE:60,CENTRAL_CONNECTION_DUAL:61},wTt={FILLED:0,OPEN:1},STt={LEFTOF:0,RIGHTOF:1,OVER:2},jT={ACTOR:"actor",BOUNDARY:"boundary",COLLECTIONS:"collections",CONTROL:"control",DATABASE:"database",ENTITY:"entity",PARTICIPANT:"participant",QUEUE:"queue"},W6=class{constructor(){this.state=new wf(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0}));this.setAccTitle=Cr;this.setAccDescription=wr;this.setDiagramTitle=Ar;this.getAccTitle=kr;this.getAccDescription=Sr;this.getDiagramTitle=Er;this.apply=this.apply.bind(this),this.parseBoxData=this.parseBoxData.bind(this),this.parseMessage=this.parseMessage.bind(this),this.clear(),this.setWrap(ge().wrap),this.LINETYPE=kTt,this.ARROWTYPE=wTt,this.PLACEMENT=STt}static{o(this,"SequenceDB")}addBox(t){this.state.records.boxes.push({name:t.text,wrap:t.wrap??this.autoWrap(),fill:t.color,actorKeys:[]}),this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(t,r,i,n,a){let s=this.state.records.currentBox,l;if(a!==void 0){let h;a.includes(` +`)?h=a+` +`:h=`{ +`+a+` +}`,l=ld(h,{schema:od})}n=l?.type??n,l?.alias&&(!i||i.text===r)&&(i={text:l.alias,wrap:i?.wrap,type:n});let u=this.state.records.actors.get(t);if(u){if(this.state.records.currentBox&&u.box&&this.state.records.currentBox!==u.box)throw new Error(`A same participant should only be defined in one Box: ${u.name} can't be in '${u.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`);if(s=u.box?u.box:this.state.records.currentBox,u.box=s,u&&r===u.name&&i==null)return}if(i?.text==null&&(i={text:r,type:n}),(n==null||i.text==null)&&(i={text:r,type:n}),this.state.records.actors.set(t,{box:s,name:r,description:i.text,wrap:i.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:n??"participant"}),this.state.records.prevActor){let h=this.state.records.actors.get(this.state.records.prevActor);h&&(h.nextActor=t)}this.state.records.currentBox&&this.state.records.currentBox.actorKeys.push(t),this.state.records.prevActor=t}activationCount(t){let r,i=0;if(!t)return 0;for(r=0;r>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},u}return this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:t,to:r,message:i?.text??"",wrap:i?.wrap??this.autoWrap(),type:n,activate:a,centralConnection:s??0}),!0}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some(t=>t.name)}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(t){return this.state.records.actors.get(t)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!0}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!1}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(t){this.state.records.wrapEnabled=t}extractWrap(t){if(t===void 0)return{};t=t.trim();let r=/^:?wrap:/.exec(t)!==null?!0:/^:?nowrap:/.exec(t)!==null?!1:void 0;return{cleanedText:(r===void 0?t:t.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:r}}autoWrap(){return this.state.records.wrapEnabled!==void 0?this.state.records.wrapEnabled:ge().sequence?.wrap??!1}clear(){this.state.reset(),gr()}parseMessage(t){let r=t.trim(),{wrap:i,cleanedText:n}=this.extractWrap(r),a={text:n,wrap:i};return Z.debug(`parseMessage: ${JSON.stringify(a)}`),a}parseBoxData(t){let r=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t),i=r?.[1]?r[1].trim():"transparent",n=r?.[2]?r[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",i)||(i="transparent",n=t.trim());else{let l=new Option().style;l.color=i,l.color!==i&&(i="transparent",n=t.trim())}let{wrap:a,cleanedText:s}=this.extractWrap(n);return{text:s?fr(s,ge()):void 0,color:i,wrap:a}}addNote(t,r,i){let n={actor:t,placement:r,message:i.text,wrap:i.wrap??this.autoWrap()},a=[].concat(t,t);this.state.records.notes.push(n),this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:a[0],to:a[1],message:i.text,wrap:i.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:r})}addLinks(t,r){let i=this.getActor(t);try{let n=fr(r.text,ge());n=n.replace(/=/g,"="),n=n.replace(/&/g,"&");let a=JSON.parse(n);this.insertLinks(i,a)}catch(n){Z.error("error while parsing actor link text",n)}}addALink(t,r){let i=this.getActor(t);try{let n={},a=fr(r.text,ge()),s=a.indexOf("@");a=a.replace(/=/g,"="),a=a.replace(/&/g,"&");let l=a.slice(0,s-1).trim(),u=a.slice(s+1).trim();n[l]=u,this.insertLinks(i,n)}catch(n){Z.error("error while parsing actor link text",n)}}insertLinks(t,r){if(t.links==null)t.links=r;else for(let i in r)t.links[i]=r[i]}addProperties(t,r){let i=this.getActor(t);try{let n=fr(r.text,ge()),a=JSON.parse(n);this.insertProperties(i,a)}catch(n){Z.error("error while parsing actor properties text",n)}}insertProperties(t,r){if(t.properties==null)t.properties=r;else for(let i in r)t.properties[i]=r[i]}boxEnd(){this.state.records.currentBox=void 0}addDetails(t,r){let i=this.getActor(t),n=document.getElementById(r.text);try{let a=n.innerHTML,s=JSON.parse(a);s.properties&&this.insertProperties(i,s.properties),s.links&&this.insertLinks(i,s.links)}catch(a){Z.error("error while parsing actor details text",a)}}getActorProperty(t,r){if(t?.properties!==void 0)return t.properties[r]}apply(t){if(Array.isArray(t))t.forEach(r=>{this.apply(r)});else switch(t.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":this.addActor(t.actor,t.actor,t.description,t.draw,t.config);break;case"createParticipant":if(this.state.records.actors.has(t.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");this.state.records.lastCreated=t.actor,this.addActor(t.actor,t.actor,t.description,t.draw,t.config),this.state.records.createdActors.set(t.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=t.actor,this.state.records.destroyedActors.set(t.actor,this.state.records.messages.length);break;case"activeStart":this.addSignal(t.actor,void 0,void 0,t.signalType);break;case"centralConnection":this.addSignal(t.actor,void 0,void 0,t.signalType);break;case"centralConnectionReverse":this.addSignal(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":this.addSignal(t.actor,void 0,void 0,t.signalType);break;case"addNote":this.addNote(t.actor,t.placement,t.text);break;case"addLinks":this.addLinks(t.actor,t.text);break;case"addALink":this.addALink(t.actor,t.text);break;case"addProperties":this.addProperties(t.actor,t.text);break;case"addDetails":this.addDetails(t.actor,t.text);break;case"addMessage":if(this.state.records.lastCreated){if(t.to!==this.state.records.lastCreated)throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");this.state.records.lastCreated=void 0}else if(this.state.records.lastDestroyed){if(t.to!==this.state.records.lastDestroyed&&t.from!==this.state.records.lastDestroyed)throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");this.state.records.lastDestroyed=void 0}this.addSignal(t.from,t.to,t.msg,t.signalType,t.activate,t.centralConnection);break;case"boxStart":this.addBox(t.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"rectStart":this.addSignal(void 0,void 0,t.color,t.signalType);break;case"rectEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"optStart":this.addSignal(void 0,void 0,t.optText,t.signalType);break;case"optEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"altStart":this.addSignal(void 0,void 0,t.altText,t.signalType);break;case"else":this.addSignal(void 0,void 0,t.altText,t.signalType);break;case"altEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":Cr(t.text);break;case"parStart":this.addSignal(void 0,void 0,t.parText,t.signalType);break;case"and":this.addSignal(void 0,void 0,t.parText,t.signalType);break;case"parEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,t.criticalText,t.signalType);break;case"option":this.addSignal(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"breakStart":this.addSignal(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break}}getConfig(){return ge().sequence}}});var ETt,o6e,l6e=z(()=>{"use strict";Ut();ETt=o(e=>{let t=e.dropShadow??"none",{look:r}=ge();return`.actor { + stroke: ${e.actorBorder}; + fill: ${e.actorBkg}; + stroke-width: ${e.strokeWidth??1}; + } + + rect.actor.outer-path[data-look="neo"] { + filter: ${t}; + } + + rect.note[data-look="neo"] { + stroke:${e.noteBorderColor}; + fill:${e.noteBkgColor}; + filter: ${t}; + } + + text.actor > tspan { + fill: ${e.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${e.actorLineColor}; + } + + .innerArc { + stroke-width: 1.5; + stroke-dasharray: none; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${e.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${e.signalColor}; + } + + [id$="-arrowhead"] path { + fill: ${e.signalColor}; + stroke: ${e.signalColor}; + } + + .sequenceNumber { + fill: ${e.sequenceNumberColor}; + } + + [id$="-sequencenumber"] { + fill: ${e.signalColor}; + } + + [id$="-crosshead"] path { + fill: ${e.signalColor}; + stroke: ${e.signalColor}; + } + + .messageText { + fill: ${e.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${e.labelBoxBorderColor}; + fill: ${e.labelBoxBkgColor}; + filter: ${r==="neo"?t:"none"}; + } + + .labelText, .labelText > tspan { + fill: ${e.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${e.loopTextColor}; + stroke: none; + } + + .sectionTitle, .sectionTitle > tspan { + fill: ${e.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${e.labelBoxBorderColor}; + fill: ${e.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${e.noteBorderColor}; + fill: ${e.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${e.noteTextColor}; + stroke: none; + ${e.noteFontWeight?`font-weight: ${e.noteFontWeight};`:""} + } + + .activation0 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .activation1 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .activation2 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${e.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man circle, line { + fill: ${e.actorBkg}; + stroke-width: 2px; + } + + g rect.rect { + filter: ${t}; + stroke: ${e.nodeBorder}; + } +`},"getStyles"),o6e=ETt});var sW,Af,_f,Df,q6,mm,Sh,XT,ATt,U6,KT,gm,c6e,Wr,oW,_Tt,DTt,RTt,LTt,MTt,NTt,ITt,OTt,PTt,BTt,FTt,$Tt,zTt,u6e,GTt,VTt,WTt,qTt,UTt,HTt,YTt,jTt,h6e,XTt,Eh,KTt,ZTt,QTt,JTt,eCt,Ei,d6e=z(()=>{"use strict";sW=ys(fg(),1);br();Xt();Ir();gp();Af=36,_f="actor-top",Df="actor-bottom",q6="actor-box",mm="actor-man",Sh=new Set(["redux-color","redux-dark-color"]),XT=o(function(e,t){let r=mp(e,t);return Nt().look==="neo"&&r.attr("data-look","neo"),r},"drawRect"),ATt=o(function(e,t,r,i,n){if(t.links===void 0||t.links===null||Object.keys(t.links).length===0)return{height:0,width:0};let a=t.links,s=t.actorCnt,l=t.rectData;var u="none";n&&(u="block !important");let h=e.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var d="";l.class!==void 0&&(d=" "+l.class);let f=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+d),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",f),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,sW.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),KTt(i)(v,g,l.x+10,l.height+m,f,20,{class:"actor"},i),m+=30}}return p.attr("height",m),{height:l.height+m,width:f}},"drawPopup"),U6=o(function(e){return"var pu = document.getElementById('"+e+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),KT=o(async function(e,t,r=null){let i=e.append("foreignObject"),n=await Fm(t.text,Nt()),s=i.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(n).node().getBoundingClientRect();if(i.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),t.class==="noteText"){let l=e.node().firstChild;l.setAttribute("height",s.height+2*t.textMargin);let u=l.getBBox();i.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let d=l;l=u,u=d}i.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),t.class==="loopText"?i.attr("y",Math.round(h)):i.attr("y",Math.round(h-s.height))}return[i]},"drawKatex"),gm=o(function(e,t){let r=0,i=0,n=t.text.split(vt.lineBreakRegex),[a,s]=Za(t.fontSize),l=[],u=0,h=o(()=>t.y,"yfunc");if(t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0)switch(t.valign){case"top":case"start":h=o(()=>Math.round(t.y+t.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(t.y+(r+i+t.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(t.y+(r+i+2*t.textMargin)-t.textMargin),"yfunc");break}if(t.anchor!==void 0&&t.textMargin!==void 0&&t.width!==void 0)switch(t.anchor){case"left":case"start":t.x=Math.round(t.x+t.textMargin),t.anchor="start",t.dominantBaseline="middle",t.alignmentBaseline="middle";break;case"middle":case"center":t.x=Math.round(t.x+t.width/2),t.anchor="middle",t.dominantBaseline="middle",t.alignmentBaseline="middle";break;case"right":case"end":t.x=Math.round(t.x+t.width-t.textMargin),t.anchor="end",t.dominantBaseline="middle",t.alignmentBaseline="middle";break}for(let[d,f]of n.entries()){t.textMargin!==void 0&&t.textMargin===0&&a!==void 0&&(u=d*a);let p=e.append("text");p.attr("x",t.x),p.attr("y",h()),t.anchor!==void 0&&p.attr("text-anchor",t.anchor).attr("dominant-baseline",t.dominantBaseline).attr("alignment-baseline",t.alignmentBaseline),t.fontFamily!==void 0&&p.style("font-family",t.fontFamily),s!==void 0&&p.style("font-size",s),t.fontWeight!==void 0&&p.style("font-weight",t.fontWeight),t.fill!==void 0&&p.attr("fill",t.fill),t.class!==void 0&&p.attr("class",t.class),t.dy!==void 0?p.attr("dy",t.dy):u!==0&&p.attr("dy",u);let m=f||SM;if(t.tspan){let g=p.append("tspan");g.attr("x",t.x),t.fill!==void 0&&g.attr("fill",t.fill),g.text(m)}else p.text(m);t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0&&(i+=(p._groups||p)[0][0].getBBox().height,r=i),l.push(p)}return l},"drawText"),c6e=o(function(e,t){function r(n,a,s,l,u){return n+","+a+" "+(n+s)+","+a+" "+(n+s)+","+(a+l-u)+" "+(n+s-u*1.2)+","+(a+l)+" "+n+","+(a+l)}o(r,"genPoints");let i=e.append("polygon");return i.attr("points",r(t.x,t.y,t.width,t.height,7)),i.attr("class","labelBox"),t.y=t.y+t.height/2,gm(e,t),i},"drawLabel"),Wr=-1,oW=o((e,t,r,i)=>{e.select&&r.forEach(n=>{let a=t.get(n),s=e.select("#actor"+a.actorCnt);!i.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):i.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),_Tt=o(function(e,t,r,i,n){let a=i?t.stopy:t.starty,s=t.x+t.width/2,l=a+t.height,{look:u,theme:h,themeVariables:d}=r,{bkgColorArray:f,borderColorArray:p}=d,m=e.append("g").lower();var g=m;i||(Wr++,Object.keys(t.links||{}).length&&!r.forceMenus&&g.attr("onclick",U6(`actor${Wr}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+Wr).attr("x1",s).attr("y1",l).attr("x2",s).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name).attr("data-et","life-line").attr("data-id",t.name),g=m.append("g"),t.actorCnt=Wr,t.links!=null&&g.attr("id","root-"+Wr),u==="neo"&&g.attr("data-look","neo"));let y=fa();var v="actor";t.properties?.class?v=t.properties.class:y.fill="#eaeaea",i?v+=` ${Df}`:v+=` ${_f}`,y.x=t.x,y.y=a,y.width=t.width,y.height=t.height,y.class=v,y.rx=3,y.ry=3,y.name=t.name,u==="neo"&&(y.rx=6,y.ry=6);let x=XT(g,y),b=n.get(t.name)??0;if(Sh.has(h)&&(x.style("stroke",p[b%p.length]),x.style("fill",f[b%p.length])),u==="neo"&&x.attr("filter","url(#drop-shadow)"),t.rectData=y,t.properties?.icon){let w=t.properties.icon.trim();w.charAt(0)==="@"?$w(g,y.x+y.width-20,y.y+10,w.substr(1)):Fw(g,y.x+y.width-20,y.y+10,w)}i||(g.attr("data-et","participant"),g.attr("data-type","participant"),g.attr("data-id",t.name)),Eh(r,Bi(t.description))(t.description,g,y.x,y.y,y.width,y.height,{class:`actor ${q6}`},r);let T=t.height;if(x.node){let w=x.node().getBBox();t.height=w.height,T=w.height}return T},"drawActorTypeParticipant"),DTt=o(function(e,t,r,i,n){let a=i?t.stopy:t.starty,s=t.x+t.width/2,l=a+t.height,{look:u,theme:h,themeVariables:d}=r,{bkgColorArray:f,borderColorArray:p}=d,m=e.append("g").lower();var g=m;i||(Wr++,Object.keys(t.links||{}).length&&!r.forceMenus&&g.attr("onclick",U6(`actor${Wr}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+Wr).attr("x1",s).attr("y1",l).attr("x2",s).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name).attr("data-et","life-line").attr("data-id",t.name),g=m.append("g"),t.actorCnt=Wr,t.links!=null&&g.attr("id","root-"+Wr),u==="neo"&&g.attr("data-look","neo"));let y=fa();var v="actor";t.properties?.class?v=t.properties.class:y.fill="#eaeaea",i?v+=` ${Df}`:v+=` ${_f}`,y.x=t.x,y.y=a,y.width=t.width,y.height=t.height,y.class=v,y.name=t.name;let x=6,b={...y,x:y.x+-x,y:y.y+ +x,class:"actor"},T=XT(g,y),w=XT(g,b);t.rectData=y,u==="neo"&&g.attr("filter","url(#drop-shadow)");let C=n.get(t.name)??0;if(Sh.has(h)&&(T.style("stroke",p[C%p.length]),T.style("fill",f[C%p.length]),w.style("stroke",p[C%p.length]),w.style("fill",f[C%p.length])),t.properties?.icon){let E=t.properties.icon.trim();E.charAt(0)==="@"?$w(g,y.x+y.width-20,y.y+10,E.substr(1)):Fw(g,y.x+y.width-20,y.y+10,E)}Eh(r,Bi(t.description))(t.description,g,y.x-x,y.y+x,y.width,y.height,{class:`actor ${q6}`},r);let k=t.height;if(T.node){let E=T.node().getBBox();t.height=E.height,k=E.height}return i||(g.attr("data-et","participant"),g.attr("data-type","collections"),g.attr("data-id",t.name)),k},"drawActorTypeCollections"),RTt=o(function(e,t,r,i,n){let a=i?t.stopy:t.starty,s=t.x+t.width/2,l=a+t.height,{look:u,theme:h,themeVariables:d}=r,{bkgColorArray:f,borderColorArray:p}=d,m=e.append("g").lower(),g=m;i||(Wr++,Object.keys(t.links||{}).length&&!r.forceMenus&&g.attr("onclick",U6(`actor${Wr}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+Wr).attr("x1",s).attr("y1",l).attr("x2",s).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name).attr("data-et","life-line").attr("data-id",t.name),g=m.append("g"),t.actorCnt=Wr,t.links!=null&&g.attr("id","root-"+Wr),u==="neo"&&g.attr("data-look","neo"));let y=fa(),v="actor";t.properties?.class?v=t.properties.class:y.fill="#eaeaea",i?v+=` ${Df}`:v+=` ${_f}`,g.attr("class",v),y.x=t.x,y.y=a,y.width=t.width,y.height=t.height,y.name=t.name;let x=y.height/2,b=x/(2.5+y.height/50),T=g.append("g"),w=g.append("g"),C=`M ${y.x},${y.y+x} + a ${b},${x} 0 0 0 0,${y.height} + h ${y.width-2*b} + a ${b},${x} 0 0 0 0,-${y.height} + Z + `;T.append("path").attr("d",C),w.append("path").attr("d",`M ${y.x},${y.y+x} + a ${b},${x} 0 0 0 0,${y.height}`),T.attr("transform",`translate(${b}, ${-(y.height/2)})`),w.attr("transform",`translate(${y.width-b}, ${-y.height/2})`),t.rectData=y,u==="neo"&&T.attr("filter","url(#drop-shadow)");let k=n.get(t.name)??0;if(Sh.has(h)&&(T.style("stroke",p[k%p.length]),T.style("fill",f[k%p.length]),w.style("stroke",p[k%p.length]),w.style("fill",f[k%p.length])),t.properties?.icon){let N=t.properties.icon.trim(),P=y.x+y.width-20,I=y.y+10;N.charAt(0)==="@"?$w(g,P,I,N.substr(1)):Fw(g,P,I,N)}Eh(r,Bi(t.description))(t.description,g,y.x,y.y,y.width,y.height,{class:`actor ${q6}`},r);let E=t.height,A=T.select("path:last-child");if(A.node()){let N=A.node().getBBox();t.height=N.height,E=N.height}return i||(g.attr("data-et","participant"),g.attr("data-type","queue"),g.attr("data-id",t.name)),E},"drawActorTypeQueue"),LTt=o(function(e,t,r,i,n,a){let s=i?t.stopy:t.starty,l=t.x+t.width/2,u=s+75,{look:h,theme:d,themeVariables:f}=r,{bkgColorArray:p,borderColorArray:m,actorBorder:g,actorBkg:y}=f,v=e.append("g").lower();i||(Wr++,v.append("line").attr("id","actor"+Wr).attr("x1",l).attr("y1",u).attr("x2",l).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name).attr("data-et","life-line").attr("data-id",t.name),t.actorCnt=Wr);let x=e.append("g"),b=mm;i?b+=` ${Df}`:b+=` ${_f}`,x.attr("class",b),x.attr("name",t.name);let T=fa();T.x=t.x,T.y=s,T.fill="#eaeaea",T.width=t.width,T.height=t.height,T.class="actor";let w=t.x+t.width/2,C=s+32,k=22;x.append("defs").append("marker").attr("id",n+"-filled-head-control").attr("refX",11).attr("refY",5.8).attr("markerWidth",20).attr("markerHeight",28).attr("orient","172.5").attr("stroke-width",1.2).append("path").attr("d","M 14.4 5.6 L 7.2 10.4 L 8.8 5.6 L 7.2 0.8 Z"),x.append("circle").attr("cx",w).attr("cy",C).attr("r",k).attr("filter",`${h==="neo"?"url(#drop-shadow)":""}`),x.append("line").attr("marker-end","url(#"+n+"-filled-head-control)").attr("transform",`translate(${w}, ${C-k})`);let E=a.get(t.name)??0;Sh.has(d)?(x.style("stroke",m[E%m.length]),x.style("fill",p[E%m.length])):(x.style("stroke",g),x.style("fill",y));let A=x.node().getBBox();return t.height=A.height+2*(r?.sequence?.labelBoxHeight??0),Eh(r,Bi(t.description))(t.description,x,T.x,T.y+k+(i?5:12),T.width,T.height,{class:`actor ${mm}`},r),i||(x.attr("data-et","participant"),x.attr("data-type","control"),x.attr("data-id",t.name)),t.height},"drawActorTypeControl"),MTt=o(function(e,t,r,i,n){let a=i?t.stopy:t.starty,s=t.x+t.width/2,l=a+75,{look:u,theme:h,themeVariables:d}=r,{bkgColorArray:f,borderColorArray:p}=d,m=e.append("g").lower(),g=e.append("g"),y="actor";i?y+=` ${Df}`:y+=` ${_f}`,g.attr("class",y),g.attr("name",t.name);let v=fa();v.x=t.x,v.y=a,v.fill="#eaeaea",v.width=t.width,v.height=t.height,v.class="actor";let x=t.x+t.width/2,b=a+(i?10:25),T=22;g.append("circle").attr("cx",x).attr("cy",b).attr("r",T).attr("width",t.width).attr("height",t.height),g.append("line").attr("x1",x-T).attr("x2",x+T).attr("y1",b+T).attr("y2",b+T).attr("stroke-width",2),u==="neo"&&g.attr("filter","url(#drop-shadow)");let w=n.get(t.name)??0;Sh.has(h)&&(g.style("stroke",p[w%p.length]),g.style("fill",f[w%p.length]));let C=g.node().getBBox();return t.height=C.height+(r?.sequence?.labelBoxHeight??0),i||(Wr++,m.append("line").attr("id","actor"+Wr).attr("x1",s).attr("y1",l).attr("x2",s).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name).attr("data-et","life-line").attr("data-id",t.name),t.actorCnt=Wr),Eh(r,Bi(t.description))(t.description,g,v.x,v.y+(i?15:30),v.width,v.height,{class:`actor ${mm}`},r),i?g.attr("transform",`translate(0, ${T})`):(g.attr("transform",`translate(0, ${T/2-5})`),g.attr("data-et","participant"),g.attr("data-type","entity"),g.attr("data-id",t.name)),t.height},"drawActorTypeEntity"),NTt=o(function(e,t,r,i,n){let a=i?t.stopy:t.starty,s=t.x+t.width/2,l=a+t.height+2*r.boxTextMargin,{theme:u,themeVariables:h,look:d}=r,{bkgColorArray:f,borderColorArray:p,actorBorder:m}=h,g=e.append("g").lower(),y=g;i||(Wr++,Object.keys(t.links||{}).length&&!r.forceMenus&&y.attr("onclick",U6(`actor${Wr}_popup`)).attr("cursor","pointer"),y.append("line").attr("id","actor"+Wr).attr("x1",s).attr("y1",l).attr("x2",s).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name).attr("data-et","life-line").attr("data-id",t.name),y=g.append("g"),t.actorCnt=Wr,t.links!=null&&y.attr("id","root-"+Wr),d==="neo"&&y.attr("data-look","neo"));let v=fa(),x="actor";t.properties?.class?x=t.properties.class:v.fill="#eaeaea",i?x+=` ${Df}`:x+=` ${_f}`,v.x=t.x,v.y=a,v.width=t.width,v.height=t.height,v.class=x,v.name=t.name,v.x=t.x,v.y=a;let b=v.width/3,T=v.width/3,w=b/2,C=w/(2.5+b/50),k=y.append("g");k.attr("class",x);let E=` + M ${v.x},${v.y+C} + a ${w},${C} 0 0 0 ${b},0 + a ${w},${C} 0 0 0 -${b},0 + l 0,${T-2*C} + a ${w},${C} 0 0 0 ${b},0 + l 0,-${T-2*C} +`;k.append("path").attr("d",E),d==="neo"&&k.attr("filter","url(#drop-shadow)");let A=n.get(t.name)??0;Sh.has(u)?(k.style("stroke",p[A%p.length]),k.style("fill",f[A%p.length])):k.style("stroke",m),k.attr("transform",`translate(${b}, ${C})`),t.rectData=v,Eh(r,Bi(t.description))(t.description,y,v.x,v.y+35,v.width,v.height,{class:`actor ${q6}`},r);let N=k.select("path:last-child");if(N.node()){let P=N.node().getBBox();t.height=P.height+(r.sequence.labelBoxHeight??0)}return i||(y.attr("data-et","participant"),y.attr("data-type","database"),y.attr("data-id",t.name)),t.height},"drawActorTypeDatabase"),ITt=o(function(e,t,r,i,n){let a=i?t.stopy:t.starty,s=t.x+t.width/2,l=a+80,u=22,h=e.append("g").lower(),{look:d,theme:f,themeVariables:p}=r,{bkgColorArray:m,borderColorArray:g,actorBorder:y}=p;i||(Wr++,h.append("line").attr("id","actor"+Wr).attr("x1",s).attr("y1",l).attr("x2",s).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name).attr("data-et","life-line").attr("data-id",t.name),t.actorCnt=Wr);let v=e.append("g"),x=mm;i?x+=` ${Df}`:x+=` ${_f}`,v.attr("class",x),v.attr("name",t.name);let b=fa();b.x=t.x,b.y=a,b.fill="#eaeaea",b.width=t.width,b.height=t.height,b.class="actor",v.append("line").attr("id","actor-man-torso"+Wr).attr("x1",t.x+t.width/2-u*2.5).attr("y1",a+12).attr("x2",t.x+t.width/2-15).attr("y2",a+12),v.append("line").attr("id","actor-man-arms"+Wr).attr("x1",t.x+t.width/2-u*2.5).attr("y1",a+2).attr("x2",t.x+t.width/2-u*2.5).attr("y2",a+22),v.append("circle").attr("cx",t.x+t.width/2).attr("cy",a+12).attr("r",u),d==="neo"&&v.attr("filter","url(#drop-shadow)");let T=n.get(t.name)??0;Sh.has(f)?(v.style("stroke",g[T%g.length]),v.style("fill",m[T%g.length])):v.style("stroke",y);let w=v.node().getBBox();return t.height=w.height+(r.sequence.labelBoxHeight??0),Eh(r,Bi(t.description))(t.description,v,b.x,b.y+15,b.width,b.height,{class:`actor ${mm}`},r),v.attr("transform",`translate(0,${u/2+10})`),i||(v.attr("data-et","participant"),v.attr("data-type","boundary"),v.attr("data-id",t.name)),t.height},"drawActorTypeBoundary"),OTt=o(function(e,t,r,i,n){let a=i?t.stopy:t.starty,s=t.x+t.width/2,l=a+80,{look:u,theme:h,themeVariables:d}=r,{bkgColorArray:f,borderColorArray:p,actorBorder:m}=d,g=e.append("g").lower();i||(Wr++,g.append("line").attr("id","actor"+Wr).attr("x1",s).attr("y1",l).attr("x2",s).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name).attr("data-et","life-line").attr("data-id",t.name),t.actorCnt=Wr);let y=e.append("g"),v=mm;i?v+=` ${Df}`:v+=` ${_f}`,y.attr("class",v),y.attr("name",t.name),i||y.attr("data-et","participant").attr("data-type","actor").attr("data-id",t.name);let x=u==="neo"?.5:1,b=u==="neo"?a+(1-x)*30:a;y.append("line").attr("id","actor-man-torso"+Wr).attr("x1",s).attr("y1",b+25*x).attr("x2",s).attr("y2",b+45*x),y.append("line").attr("id","actor-man-arms"+Wr).attr("x1",s-Af/2*x).attr("y1",b+33*x).attr("x2",s+Af/2*x).attr("y2",b+33*x),y.append("line").attr("x1",s-Af/2*x).attr("y1",b+60*x).attr("x2",s).attr("y2",b+45*x),y.append("line").attr("x1",s).attr("y1",b+45*x).attr("x2",s+(Af/2-2)*x).attr("y2",b+60*x);let T=y.append("circle");T.attr("cx",t.x+t.width/2),T.attr("cy",b+10*x),T.attr("r",15*x),T.attr("width",t.width*x),T.attr("height",t.height*x);let w=y.node().getBBox();t.height=w.height;let C=fa();C.x=t.x,C.y=b,C.fill="#eaeaea",C.width=t.width,C.height=t.height/x,C.class="actor",C.rx=3,C.ry=3;let k=n.get(t.name)??0;return Sh.has(h)?(y.style("stroke",p[k%p.length]),y.style("fill",f[k%p.length])):y.style("stroke",m),Eh(r,Bi(t.description))(t.description,y,C.x,b+35*x-(u==="neo"?10:0),C.width,C.height,{class:`actor ${mm}`},r),t.height},"drawActorTypeActor"),PTt=o(async function(e,t,r,i,n,a,s){let l=s??new Map([...a.db.getActors().values()].map((u,h)=>[u.name,h]));switch(t.type){case"actor":return await OTt(e,t,r,i,l);case"participant":return await _Tt(e,t,r,i,l);case"boundary":return await ITt(e,t,r,i,l);case"control":return await LTt(e,t,r,i,n,l);case"entity":return await MTt(e,t,r,i,l);case"database":return await NTt(e,t,r,i,l);case"collections":return await DTt(e,t,r,i,l);case"queue":return await RTt(e,t,r,i,l)}},"drawActor"),BTt=o(function(e,t,r){let n=e.append("g");u6e(n,t),t.name&&Eh(r)(t.name,n,t.x,t.y+r.boxTextMargin+(t.textMaxHeight||0)/2,t.width,0,{class:"text"},r),n.lower()},"drawBox"),FTt=o(function(e){return e.append("g")},"anchorElement"),$Tt=o(function(e,t,r,i,n,a,s){let{theme:l,themeVariables:u}=i,{bkgColorArray:h,borderColorArray:d,mainBkg:f}=u,p=fa(),m=t.anchored,g=t.actor;p.x=t.startx,p.y=t.starty,p.class="activation"+n%3,p.width=t.stopx-t.startx,p.height=r-t.starty;let y=XT(m,p),x=(s??new Map([...a.db.getActors().values()].map((b,T)=>[b.name,T]))).get(g)??0;Sh.has(l)&&(y.style("stroke",d[x%d.length]),y.style("fill",h[x%d.length]??f))},"drawActivation"),zTt=o(async function(e,t,r,i,n){let{boxMargin:a,boxTextMargin:s,labelBoxHeight:l,labelBoxWidth:u,messageFontFamily:h,messageFontSize:d,messageFontWeight:f}=i,p=e.append("g").attr("data-et","control-structure").attr("data-id","i"+n.id),m=o(function(v,x,b,T){return p.append("line").attr("x1",v).attr("y1",x).attr("x2",b).attr("y2",T).attr("class","loopLine")},"drawLoopLine");m(t.startx,t.starty,t.stopx,t.starty),m(t.stopx,t.starty,t.stopx,t.stopy),m(t.startx,t.stopy,t.stopx,t.stopy),m(t.startx,t.starty,t.startx,t.stopy),t.sections!==void 0&&t.sections.forEach(function(v){m(t.startx,v.y,t.stopx,v.y).style("stroke-dasharray","3, 3")});let g=wx();g.text=r,g.x=t.startx,g.y=t.starty,g.fontFamily=h,g.fontSize=d,g.fontWeight=f,g.anchor="middle",g.valign="middle",g.tspan=!1,g.width=Math.max(u??0,50),g.height=l+(i.look==="neo"?15:0)||20,g.textMargin=s,g.class="labelText",c6e(p,g),g=h6e(),g.text=t.title,g.x=t.startx+u/2+(t.stopx-t.startx)/2,g.y=t.starty+a+s,g.anchor="middle",g.valign="middle",g.textMargin=s,g.class="loopText",g.fontFamily=h,g.fontSize=d,g.fontWeight=f,g.wrap=!0;let y=Bi(g.text)?await KT(p,g,t):gm(p,g);if(t.sectionTitles!==void 0){for(let[v,x]of Object.entries(t.sectionTitles))if(x.message){g.text=x.message,g.x=t.startx+(t.stopx-t.startx)/2,g.y=t.sections[v].y+a+s,g.class="sectionTitle",g.anchor="middle",g.valign="middle",g.tspan=!1,g.fontFamily=h,g.fontSize=d,g.fontWeight=f,g.wrap=t.wrap,Bi(g.text)?(t.starty=t.sections[v].y,await KT(p,g,t)):gm(p,g);let b=Math.round(y.map(T=>(T._groups||T)[0][0].getBBox().height).reduce((T,w)=>T+w));t.sections[v].height+=b-(a+s)}}return t.height=Math.round(t.stopy-t.starty),p},"drawLoop"),u6e=o(function(e,t){Bw(e,t)},"drawBackgroundRect"),GTt=o(function(e,t){e.append("defs").append("symbol").attr("id",t+"-database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),VTt=o(function(e,t){e.append("defs").append("symbol").attr("id",t+"-computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),WTt=o(function(e,t){e.append("defs").append("symbol").attr("id",t+"-clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),qTt=o(function(e,t){e.append("defs").append("marker").attr("id",t+"-arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),UTt=o(function(e,t){e.append("defs").append("marker").attr("id",t+"-filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),HTt=o(function(e,t){e.append("defs").append("marker").attr("id",t+"-sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),YTt=o(function(e,t){e.append("defs").append("marker").attr("id",t+"-crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),jTt=o(function(e,t){let{theme:r}=t;e.append("defs").append("filter").attr("id","drop-shadow").attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${r==="redux"||r==="redux-color"?"#000000":"#FFFFFF"}`)},"insertDropShadow"),h6e=o(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),XTt=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Eh=(function(){function e(a,s,l,u,h,d,f){let p=s.append("text").attr("x",l+h/2).attr("y",u+d/2+5).style("text-anchor","middle").text(a);n(p,f)}o(e,"byText");function t(a,s,l,u,h,d,f,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=Za(m),b=a.split(vt.lineBreakRegex);for(let T=0;T{let s=ym(We),l=a.actorKeys.reduce((f,p)=>f+=e.get(p).width+(e.get(p).margin||0),0),u=We.boxMargin*8;l+=u,l-=2*We.boxTextMargin,a.wrap&&(a.name=Zt.wrapLabel(a.name,l-2*We.wrapPadding,s));let h=Zt.calculateTextDimensions(a.name,s);n=vt.getMax(h.height,n);let d=vt.getMax(l,h.width+2*We.wrapPadding);if(a.margin=We.boxTextMargin,la.textMaxHeight=n),vt.getMax(i,We.height)}var We,bt,tCt,f6e,ym,Ty,cW,iCt,nCt,uW,m6e,g6e,H6,p6e,sCt,lCt,uCt,hCt,dCt,lW,fCt,y6e,pCt,mCt,gCt,v6e,x6e=z(()=>{"use strict";Rr();d6e();St();Ir();Ir();gp();Ut();Dm();Xt();Di();aW();We={},bt={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(e=>e.height||0))+(this.loops.length===0?0:this.loops.map(e=>e.height||0).reduce((e,t)=>e+t))+(this.messages.length===0?0:this.messages.map(e=>e.height||0).reduce((e,t)=>e+t))+(this.notes.length===0?0:this.notes.map(e=>e.height||0).reduce((e,t)=>e+t))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(e){this.boxes.push(e)},"addBox"),addActor:o(function(e){this.actors.push(e)},"addActor"),addLoop:o(function(e){this.loops.push(e)},"addLoop"),addMessage:o(function(e){this.messages.push(e)},"addMessage"),addNote:o(function(e){this.notes.push(e)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,g6e(ge())},"init"),updateVal:o(function(e,t,r,i){e[t]===void 0?e[t]=r:e[t]=i(r,e[t])},"updateVal"),updateBounds:o(function(e,t,r,i){let n=this,a=0;function s(l){return o(function(h){a++;let d=n.sequenceItems.length-a+1;n.updateVal(h,"starty",t-d*We.boxMargin,Math.min),n.updateVal(h,"stopy",i+d*We.boxMargin,Math.max),n.updateVal(bt.data,"startx",e-d*We.boxMargin,Math.min),n.updateVal(bt.data,"stopx",r+d*We.boxMargin,Math.max),l!=="activation"&&(n.updateVal(h,"startx",e-d*We.boxMargin,Math.min),n.updateVal(h,"stopx",r+d*We.boxMargin,Math.max),n.updateVal(bt.data,"starty",t-d*We.boxMargin,Math.min),n.updateVal(bt.data,"stopy",i+d*We.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(e,t,r,i){let n=vt.getMin(e,r),a=vt.getMax(e,r),s=vt.getMin(t,i),l=vt.getMax(t,i);this.updateVal(bt.data,"startx",n,Math.min),this.updateVal(bt.data,"starty",s,Math.min),this.updateVal(bt.data,"stopx",a,Math.max),this.updateVal(bt.data,"stopy",l,Math.max),this.updateBounds(n,s,a,l)},"insert"),newActivation:o(function(e,t,r){let i=r.get(e.from),n=H6(e.from).length||0,a=i.x+i.width/2+(n-1)*We.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+We.activationWidth,stopy:void 0,actor:e.from,anchored:Ei.anchorElement(t)})},"newActivation"),endActivation:o(function(e){let t=this.activations.map(function(r){return r.actor}).lastIndexOf(e.from);return this.activations.splice(t,1)[0]},"endActivation"),createLoop:o(function(e={message:void 0,wrap:!1,width:void 0},t){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:e.message,wrap:e.wrap,width:e.width,height:0,fill:t}},"createLoop"),newLoop:o(function(e={message:void 0,wrap:!1,width:void 0},t){this.sequenceItems.push(this.createLoop(e,t))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(e){let t=this.sequenceItems.pop();t.sections=t.sections||[],t.sectionTitles=t.sectionTitles||[],t.sections.push({y:bt.getVerticalPos(),height:0}),t.sectionTitles.push(e),this.sequenceItems.push(t)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(e){this.verticalPos=this.verticalPos+e,this.data.stopy=vt.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},tCt=o(async function(e,t,r){bt.bumpVerticalPos(We.boxMargin),t.height=We.boxMargin,t.starty=bt.getVerticalPos();let i=fa();i.x=t.startx,i.y=t.starty,i.width=t.width||We.width,i.class="note";let n=e.append("g");n.attr("data-et","note"),n.attr("data-id","i"+r);let a=Ei.drawRect(n,i),s=wx();s.x=t.startx,s.y=t.starty,s.width=i.width,s.dy="1em",s.text=t.message,s.class="noteText",s.fontFamily=We.noteFontFamily,s.fontSize=We.noteFontSize,s.fontWeight=We.noteFontWeight,s.anchor=We.noteAlign,s.textMargin=We.noteMargin,s.valign="center";let l=Bi(s.text)?await KT(n,s):gm(n,s),u=Math.round(l.map(h=>(h._groups||h)[0][0].getBBox().height).reduce((h,d)=>h+d));a.attr("height",u+2*We.noteMargin),t.height+=u+2*We.noteMargin,bt.bumpVerticalPos(u+2*We.noteMargin),t.stopy=t.starty+u+2*We.noteMargin,t.stopx=t.startx+i.width,bt.insert(t.startx,t.starty,t.stopx,t.stopy),bt.models.addNote(t)},"drawNote"),f6e=o(function(e,t,r,i,n,a,s){let l=i.db.getActors(),u=l.get(t.from),h=l.get(t.to),d=r.sequenceVisible,f=u.x+u.width/2,p=h.x+h.width/2,m=f<=p,g=y6e(t,i),y=e.append("g"),v=16.5,x=o((k,E)=>{let A=k?v:-v;return E?-A:A},"getCircleOffset"),b=o(k=>{y.append("circle").attr("cx",k).attr("cy",s).attr("r",5).attr("width",10).attr("height",10)},"drawCircle"),{CENTRAL_CONNECTION:T,CENTRAL_CONNECTION_REVERSE:w,CENTRAL_CONNECTION_DUAL:C}=i.db.LINETYPE;if(d)switch(t.centralConnection){case T:g&&(p+=x(m,!0));break;case w:g||(f+=x(m,!1));break;case C:g?p+=x(m,!0):f+=x(m,!1);break}switch(t.centralConnection){case T:b(p);break;case w:b(f);break;case C:b(f),b(p);break}},"drawCentralConnection"),ym=o(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont"),Ty=o(e=>({fontFamily:e.noteFontFamily,fontSize:e.noteFontSize,fontWeight:e.noteFontWeight}),"noteFont"),cW=o(e=>({fontFamily:e.actorFontFamily,fontSize:e.actorFontSize,fontWeight:e.actorFontWeight}),"actorFont");o(rCt,"boundMessage");iCt=o(async function(e,t,r,i,n,a){let{startx:s,stopx:l,starty:u,message:h,type:d,sequenceIndex:f,sequenceVisible:p}=t,m=Zt.calculateTextDimensions(h,ym(We)),g=wx();g.x=Math.min(s,l),g.y=u+10,g.width=Math.abs(l-s),g.class="messageText",g.dy="1em",g.text=h,g.fontFamily=We.messageFontFamily,g.fontSize=We.messageFontSize,g.fontWeight=We.messageFontWeight,g.anchor=We.messageAlign,g.valign="center",g.textMargin=We.wrapPadding,g.tspan=!1,Bi(g.text)?await KT(e,g,{startx:s,stopx:l,starty:r}):gm(e,g);let y=m.width,v;if(s===l){let b=p||We.showSequenceNumbers,T=y6e(n,i),w=pCt(n,i),C=s+(b&&(T||w)?10:0);We.rightAngles?v=e.append("path").attr("d",`M ${C},${r} H ${s+vt.getMax(We.width/2,y/2)} V ${r+25} H ${s}`):v=e.append("path").attr("d","M "+C+","+r+" C "+(C+60)+","+(r-10)+" "+(s+60)+","+(r+30)+" "+s+","+(r+20)),lW(n,i)&&f6e(e,n,t,i,s,l,r)}else v=e.append("line"),v.attr("x1",s),v.attr("y1",r),v.attr("x2",l),v.attr("y2",r),lW(n,i)&&f6e(e,n,t,i,s,l,r);d===i.db.LINETYPE.DOTTED||d===i.db.LINETYPE.DOTTED_CROSS||d===i.db.LINETYPE.DOTTED_POINT||d===i.db.LINETYPE.DOTTED_OPEN||d===i.db.LINETYPE.BIDIRECTIONAL_DOTTED||d===i.db.LINETYPE.SOLID_TOP_DOTTED||d===i.db.LINETYPE.SOLID_BOTTOM_DOTTED||d===i.db.LINETYPE.STICK_TOP_DOTTED||d===i.db.LINETYPE.STICK_BOTTOM_DOTTED||d===i.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||d===i.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||d===i.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||d===i.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED?(v.style("stroke-dasharray","3, 3"),v.attr("class","messageLine1")):v.attr("class","messageLine0"),v.attr("data-et","message"),v.attr("data-id","i"+t.id),v.attr("data-from",t.from),v.attr("data-to",t.to);let x="";if(We.arrowMarkerAbsolute&&(x=Hf(!0)),v.attr("stroke-width",2),v.attr("stroke","none"),v.style("fill","none"),(d===i.db.LINETYPE.SOLID_TOP||d===i.db.LINETYPE.SOLID_TOP_DOTTED)&&v.attr("marker-end","url("+x+"#"+a+"-solidTopArrowHead)"),(d===i.db.LINETYPE.SOLID_BOTTOM||d===i.db.LINETYPE.SOLID_BOTTOM_DOTTED)&&v.attr("marker-end","url("+x+"#"+a+"-solidBottomArrowHead)"),(d===i.db.LINETYPE.STICK_TOP||d===i.db.LINETYPE.STICK_TOP_DOTTED)&&v.attr("marker-end","url("+x+"#"+a+"-stickTopArrowHead)"),(d===i.db.LINETYPE.STICK_BOTTOM||d===i.db.LINETYPE.STICK_BOTTOM_DOTTED)&&v.attr("marker-end","url("+x+"#"+a+"-stickBottomArrowHead)"),(d===i.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||d===i.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED)&&v.attr("marker-start","url("+x+"#"+a+"-solidBottomArrowHead)"),(d===i.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||d===i.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED)&&v.attr("marker-start","url("+x+"#"+a+"-solidTopArrowHead)"),(d===i.db.LINETYPE.STICK_ARROW_TOP_REVERSE||d===i.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED)&&v.attr("marker-start","url("+x+"#"+a+"-stickBottomArrowHead)"),(d===i.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||d===i.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED)&&v.attr("marker-start","url("+x+"#"+a+"-stickTopArrowHead)"),(d===i.db.LINETYPE.SOLID||d===i.db.LINETYPE.DOTTED)&&v.attr("marker-end","url("+x+"#"+a+"-arrowhead)"),(d===i.db.LINETYPE.BIDIRECTIONAL_SOLID||d===i.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(v.attr("marker-start","url("+x+"#"+a+"-arrowhead)"),v.attr("marker-end","url("+x+"#"+a+"-arrowhead)")),(d===i.db.LINETYPE.SOLID_POINT||d===i.db.LINETYPE.DOTTED_POINT)&&v.attr("marker-end","url("+x+"#"+a+"-filled-head)"),(d===i.db.LINETYPE.SOLID_CROSS||d===i.db.LINETYPE.DOTTED_CROSS)&&v.attr("marker-end","url("+x+"#"+a+"-crosshead)"),p||We.showSequenceNumbers){let b=d===i.db.LINETYPE.BIDIRECTIONAL_SOLID||d===i.db.LINETYPE.BIDIRECTIONAL_DOTTED,T=d===i.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||d===i.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||d===i.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||d===i.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||d===i.db.LINETYPE.STICK_ARROW_TOP_REVERSE||d===i.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||d===i.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||d===i.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,w=6,C=lW(n,i),k=s,E=l;b?(ss?E=l-2*w:(E=l-w,k+=n?.centralConnection===i.db.LINETYPE.CENTRAL_CONNECTION_DUAL||n?.centralConnection===i.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),E+=C?15:0,v.attr("x2",E),v.attr("x1",k)):v.attr("x1",s+w);let A=0,N=s===l,P=s<=l;N?A=t.fromBounds+1:T?A=P?t.toBounds-1:t.fromBounds+1:A=P?t.fromBounds+1:t.toBounds-1;let I="12px",D=f.toString().length;D>5?I="7px":D>3&&(I="9px"),e.append("line").attr("x1",A).attr("y1",r).attr("x2",A).attr("y2",r).attr("stroke-width",0).attr("marker-start","url("+x+"#"+a+"-sequencenumber)"),e.append("text").attr("x",A).attr("y",r+4).attr("font-family","sans-serif").attr("font-size",I).attr("text-anchor","middle").attr("class","sequenceNumber").text(f)}},"drawMessage"),nCt=o(function(e,t,r,i,n,a,s){let l=0,u=0,h,d=0;for(let f of i){let p=t.get(f),m=p.box;h&&h!=m&&(s||bt.models.addBox(h),u+=We.boxMargin+h.margin),m&&m!=h&&(s||(m.x=l+u,m.y=n),u+=m.margin),p.width=vt.getMax(p.width||We.width,We.width),p.height=vt.getMax(p.height||We.height,We.height),p.margin=p.margin||We.actorMargin,d=vt.getMax(d,p.height),r.get(p.name)&&(u+=p.width/2),p.x=l+u,p.starty=bt.getVerticalPos(),bt.insert(p.x,n,p.x+p.width,p.height),l+=p.width+u,p.box&&(p.box.width=l+m.margin-p.box.x),u=p.margin,h=p.box,bt.models.addActor(p)}h&&!s&&bt.models.addBox(h),bt.bumpVerticalPos(d)},"addActorRenderingData"),uW=o(async function(e,t,r,i,n,a,s){if(i){let l=0;bt.bumpVerticalPos(We.boxMargin*2);for(let u of r){let h=t.get(u);h.stopy||(h.stopy=bt.getVerticalPos());let d=await Ei.drawActor(e,h,We,!0,n,a,s);l=vt.getMax(l,d)}bt.bumpVerticalPos(l+We.boxMargin)}else for(let l of r){let u=t.get(l);await Ei.drawActor(e,u,We,!1,n,a,s)}},"drawActors"),m6e=o(function(e,t,r,i){let n=0,a=0;for(let s of r){let l=t.get(s),u=lCt(l),h=Ei.drawPopup(e,l,u,We,We.forceMenus,i);h.height>n&&(n=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:n,maxWidth:a}},"drawActorsPopup"),g6e=o(function(e){Ai(We,e),e.fontFamily&&(We.actorFontFamily=We.noteFontFamily=We.messageFontFamily=e.fontFamily),e.fontSize&&(We.actorFontSize=We.noteFontSize=We.messageFontSize=e.fontSize),e.fontWeight&&(We.actorFontWeight=We.noteFontWeight=We.messageFontWeight=e.fontWeight)},"setConf"),H6=o(function(e){return bt.activations.filter(function(t){return t.actor===e})},"actorActivations"),p6e=o(function(e,t){let r=t.get(e),i=H6(e),n=i.reduce(function(s,l){return vt.getMin(s,l.startx)},r.x+r.width/2-1),a=i.reduce(function(s,l){return vt.getMax(s,l.stopx)},r.x+r.width/2+1);return[n,a]},"activationBounds");o(lu,"adjustLoopHeightForWrap");o(aCt,"adjustCreatedDestroyedData");sCt=o(async function(e,t,r,i){let{securityLevel:n,sequence:a,look:s}=ge();We=a;let l;n==="sandbox"&&(l=Je("#i"+t));let u=n==="sandbox"?Je(l.nodes()[0].contentDocument.body):Je("body"),h=n==="sandbox"?l.nodes()[0].contentDocument:document;bt.init(),Z.debug(i.db);let d=n==="sandbox"?u.select(`[id="${t}"]`):Je(`[id="${t}"]`),f=i.db.getActors(),p=i.db.getCreatedActors(),m=i.db.getDestroyedActors(),g=i.db.getBoxes(),y=i.db.getActorKeys(),v=i.db.getMessages(),x=i.db.getDiagramTitle(),b=i.db.hasAtLeastOneBox(),T=i.db.hasAtLeastOneBoxWithTitle(),w=await oCt(f,v,i);if(We.height=await cCt(f,w,g),Ei.insertComputerIcon(d,t),Ei.insertDatabaseIcon(d,t),Ei.insertClockIcon(d,t),b&&(bt.bumpVerticalPos(We.boxMargin),T&&bt.bumpVerticalPos(g[0].textMaxHeight)),We.hideUnusedParticipants===!0){let F=new Set;v.forEach(V=>{F.add(V.from),F.add(V.to)}),y=y.filter(V=>F.has(V))}let C=new Map(y.map((F,V)=>[f.get(F)?.name??F,V]));nCt(d,f,p,y,0,v,!1);let k=await gCt(v,f,w,i);Ei.insertArrowHead(d,t),Ei.insertArrowCrossHead(d,t),Ei.insertArrowFilledHead(d,t),Ei.insertSequenceNumber(d,t),Ei.insertSolidTopArrowHead(d,t),Ei.insertSolidBottomArrowHead(d,t),Ei.insertStickTopArrowHead(d,t),Ei.insertStickBottomArrowHead(d,t),s==="neo"&&Ei.insertDropShadow(d,We);function E(F,V){let H=bt.endActivation(F);H.starty+18>V&&(H.starty=V-6,V+=12),Ei.drawActivation(d,H,V,We,H6(F.from).length,i,C),bt.insert(H.startx,V-10,H.stopx,V)}o(E,"activeEnd");let A=1,N=1,P=[],I=[],D=0;for(let F of v){let V,H,j;switch(F.type){case i.db.LINETYPE.NOTE:bt.resetVerticalPos(),H=F.noteModel,await tCt(d,H,F.id);break;case i.db.LINETYPE.ACTIVE_START:bt.newActivation(F,d,f);break;case i.db.LINETYPE.CENTRAL_CONNECTION:bt.newActivation(F,d,f);break;case i.db.LINETYPE.CENTRAL_CONNECTION_REVERSE:bt.newActivation(F,d,f);break;case i.db.LINETYPE.ACTIVE_END:E(F,bt.getVerticalPos());break;case i.db.LINETYPE.LOOP_START:lu(k,F,We.boxMargin,We.boxMargin+We.boxTextMargin,U=>bt.newLoop(U));break;case i.db.LINETYPE.LOOP_END:V=bt.endLoop(),await Ei.drawLoop(d,V,"loop",We,F),bt.bumpVerticalPos(V.stopy-bt.getVerticalPos()),bt.models.addLoop(V);break;case i.db.LINETYPE.RECT_START:lu(k,F,We.boxMargin,We.boxMargin,U=>bt.newLoop(void 0,U.message));break;case i.db.LINETYPE.RECT_END:V=bt.endLoop(),I.push(V),bt.models.addLoop(V),bt.bumpVerticalPos(V.stopy-bt.getVerticalPos());break;case i.db.LINETYPE.OPT_START:lu(k,F,We.boxMargin,We.boxMargin+We.boxTextMargin,U=>bt.newLoop(U));break;case i.db.LINETYPE.OPT_END:V=bt.endLoop(),await Ei.drawLoop(d,V,"opt",We,F),bt.bumpVerticalPos(V.stopy-bt.getVerticalPos()),bt.models.addLoop(V);break;case i.db.LINETYPE.ALT_START:lu(k,F,We.boxMargin,We.boxMargin+We.boxTextMargin,U=>bt.newLoop(U));break;case i.db.LINETYPE.ALT_ELSE:lu(k,F,We.boxMargin+We.boxTextMargin,We.boxMargin,U=>bt.addSectionToLoop(U));break;case i.db.LINETYPE.ALT_END:V=bt.endLoop(),await Ei.drawLoop(d,V,"alt",We,F),bt.bumpVerticalPos(V.stopy-bt.getVerticalPos()),bt.models.addLoop(V);break;case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.PAR_OVER_START:lu(k,F,We.boxMargin,We.boxMargin+We.boxTextMargin,U=>bt.newLoop(U)),bt.saveVerticalPos();break;case i.db.LINETYPE.PAR_AND:lu(k,F,We.boxMargin+We.boxTextMargin,We.boxMargin,U=>bt.addSectionToLoop(U));break;case i.db.LINETYPE.PAR_END:V=bt.endLoop(),await Ei.drawLoop(d,V,"par",We,F),bt.bumpVerticalPos(V.stopy-bt.getVerticalPos()),bt.models.addLoop(V);break;case i.db.LINETYPE.AUTONUMBER:A=F.message.start||A,N=F.message.step||N,F.message.visible?i.db.enableSequenceNumbers():i.db.disableSequenceNumbers();break;case i.db.LINETYPE.CRITICAL_START:lu(k,F,We.boxMargin,We.boxMargin+We.boxTextMargin,U=>bt.newLoop(U));break;case i.db.LINETYPE.CRITICAL_OPTION:lu(k,F,We.boxMargin+We.boxTextMargin,We.boxMargin,U=>bt.addSectionToLoop(U));break;case i.db.LINETYPE.CRITICAL_END:V=bt.endLoop(),await Ei.drawLoop(d,V,"critical",We,F),bt.bumpVerticalPos(V.stopy-bt.getVerticalPos()),bt.models.addLoop(V);break;case i.db.LINETYPE.BREAK_START:lu(k,F,We.boxMargin,We.boxMargin+We.boxTextMargin,U=>bt.newLoop(U));break;case i.db.LINETYPE.BREAK_END:V=bt.endLoop(),await Ei.drawLoop(d,V,"break",We,F),bt.bumpVerticalPos(V.stopy-bt.getVerticalPos()),bt.models.addLoop(V);break;default:try{j=F.msgModel,j.starty=bt.getVerticalPos(),j.sequenceIndex=A,j.sequenceVisible=i.db.showSequenceNumbers(),j.id=F.id,j.from=F.from,j.to=F.to;let U=await rCt(d,j);aCt(F,j,U,D,f,p,m),P.push({messageModel:j,lineStartY:U,msg:F}),bt.models.addMessage(j)}catch(U){Z.error("error while drawing message",U)}}[i.db.LINETYPE.SOLID_OPEN,i.db.LINETYPE.DOTTED_OPEN,i.db.LINETYPE.SOLID,i.db.LINETYPE.SOLID_TOP,i.db.LINETYPE.SOLID_BOTTOM,i.db.LINETYPE.STICK_TOP,i.db.LINETYPE.STICK_BOTTOM,i.db.LINETYPE.SOLID_TOP_DOTTED,i.db.LINETYPE.SOLID_BOTTOM_DOTTED,i.db.LINETYPE.STICK_TOP_DOTTED,i.db.LINETYPE.STICK_BOTTOM_DOTTED,i.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,i.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,i.db.LINETYPE.STICK_ARROW_TOP_REVERSE,i.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,i.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,i.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,i.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,i.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,i.db.LINETYPE.DOTTED,i.db.LINETYPE.SOLID_CROSS,i.db.LINETYPE.DOTTED_CROSS,i.db.LINETYPE.SOLID_POINT,i.db.LINETYPE.DOTTED_POINT,i.db.LINETYPE.BIDIRECTIONAL_SOLID,i.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(F.type)&&(A=Math.round((A+N)*100)/100),D++}Z.debug("createdActors",p),Z.debug("destroyedActors",m),await uW(d,f,y,!1,t,i,C);for(let F of P)await iCt(d,F.messageModel,F.lineStartY,i,F.msg,t);We.mirrorActors&&await uW(d,f,y,!0,t,i,C),I.forEach(F=>Ei.drawBackgroundRect(d,F)),oW(d,f,y,We);for(let F of bt.models.boxes){F.height=bt.getVerticalPos()-F.y,bt.insert(F.x,F.y,F.x+F.width,F.height);let V=We.boxMargin*2;F.startx=F.x-V,F.starty=F.y-V*.25,F.stopx=F.startx+F.width+2*V,F.stopy=F.starty+F.height+V*.75,F.stroke="rgb(0,0,0, 0.5)",Ei.drawBox(d,F,We)}b&&bt.bumpVerticalPos(We.boxMargin);let _=m6e(d,f,y,h),{bounds:R}=bt.getBounds();R.startx===void 0&&(R.startx=0),R.starty===void 0&&(R.starty=0),R.stopx===void 0&&(R.stopx=0),R.stopy===void 0&&(R.stopy=0);let M=R.stopy-R.starty;M<_.maxHeight&&(M=_.maxHeight);let L=M+2*We.diagramMarginY;We.mirrorActors&&(L=L-We.boxMargin+We.bottomMarginAdj);let B=R.stopx-R.startx;B<_.maxWidth&&(B=_.maxWidth);let O=B+2*We.diagramMarginX;x&&d.append("text").text(x).attr("x",(R.stopx-R.startx)/2-2*We.diagramMarginX).attr("y",-25),Br(d,L,O,We.useMaxWidth);let $=x?40:0,G=f.size&&s==="neo"?30:0;d.attr("viewBox",R.startx-We.diagramMarginX+" -"+(We.diagramMarginY+$)+" "+O+" "+(L+$+G)),Z.debug("models:",bt.models)},"draw");o(oCt,"getMaxMessageWidthPerActor");lCt=o(function(e){let t=0,r=cW(We);for(let i in e.links){let a=Zt.calculateTextDimensions(i,r).width+2*We.wrapPadding+2*We.boxMargin;t2,p=o(v=>u?-v:v,"adjustValue");e.from===e.to?d=h:(e.activate&&!f&&(d+=p(We.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.STICK_TOP,r.db.LINETYPE.STICK_BOTTOM,r.db.LINETYPE.STICK_TOP_DOTTED,r.db.LINETYPE.STICK_BOTTOM_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(e.type)||(d+=p(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(e.type)&&(h-=p(3)));let m=[n,a,s,l],g=Math.abs(h-d);e.wrap&&e.message&&(e.message=Zt.wrapLabel(e.message,vt.getMax(g+2*We.wrapPadding,We.width),ym(We)));let y=Zt.calculateTextDimensions(e.message,ym(We));return{width:vt.getMax(e.wrap?0:y.width+2*We.wrapPadding,g+2*We.wrapPadding,We.width),height:0,startx:h,stopx:d,starty:0,stopy:0,message:e.message,type:e.type,wrap:e.wrap,fromBounds:Math.min.apply(null,m),toBounds:Math.max.apply(null,m)}},"buildMessageModel"),gCt=o(async function(e,t,r,i){let n={},a=[],s,l,u;for(let h of e){switch(h.type){case i.db.LINETYPE.LOOP_START:case i.db.LINETYPE.ALT_START:case i.db.LINETYPE.OPT_START:case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.PAR_OVER_START:case i.db.LINETYPE.CRITICAL_START:case i.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case i.db.LINETYPE.ALT_ELSE:case i.db.LINETYPE.PAR_AND:case i.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),n[s.id]=s,n[h.id]=s,a.push(s));break;case i.db.LINETYPE.LOOP_END:case i.db.LINETYPE.ALT_END:case i.db.LINETYPE.OPT_END:case i.db.LINETYPE.PAR_END:case i.db.LINETYPE.CRITICAL_END:case i.db.LINETYPE.BREAK_END:s=a.pop(),n[s.id]=s;break;case i.db.LINETYPE.ACTIVE_START:{let f=t.get(h.from?h.from:h.to.actor),p=H6(h.from?h.from:h.to.actor).length,m=f.x+f.width/2+(p-1)*We.activationWidth/2,g={startx:m,stopx:m+We.activationWidth,actor:h.from,enabled:!0};bt.activations.push(g)}break;case i.db.LINETYPE.ACTIVE_END:{let f=bt.activations.map(p=>p.actor).lastIndexOf(h.from);bt.activations.splice(f,1).splice(0,1)}break}h.placement!==void 0?(l=await uCt(h,t,i),h.noteModel=l,a.forEach(f=>{s=f,s.from=vt.getMin(s.from,l.startx),s.to=vt.getMax(s.to,l.startx+l.width),s.width=vt.getMax(s.width,Math.abs(s.from-s.to))-We.labelBoxWidth})):(u=mCt(h,t,i),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(f=>{if(s=f,u.startx===u.stopx){let p=t.get(h.from),m=t.get(h.to);s.from=vt.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=vt.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=vt.getMax(s.width,Math.abs(s.to-s.from))-We.labelBoxWidth}else s.from=vt.getMin(u.startx,s.from),s.to=vt.getMax(u.stopx,s.to),s.width=vt.getMax(s.width,u.width)-We.labelBoxWidth}))}return bt.activations=[],Z.debug("Loop type widths:",n),n},"calculateLoopBounds"),v6e={bounds:bt,drawActors:uW,drawActorsPopup:m6e,setConf:g6e,draw:sCt}});var b6e={};xr(b6e,{diagram:()=>yCt});var yCt,T6e=z(()=>{"use strict";s6e();aW();l6e();Ut();x6e();yCt={parser:a6e,get db(){return new W6},renderer:v6e,styles:o6e,init:o(e=>{e.sequence||(e.sequence={}),e.wrap&&(e.sequence.wrap=e.wrap,Sv({sequence:{wrap:e.wrap}}))},"init")}});var hW,Y6,dW=z(()=>{"use strict";hW=(function(){var e=o(function(qe,Ue,ye,ve){for(ye=ye||{},ve=qe.length;ve--;ye[qe[ve]]=Ue);return ye},"o"),t=[1,18],r=[1,19],i=[1,20],n=[1,41],a=[1,26],s=[1,42],l=[1,24],u=[1,25],h=[1,32],d=[1,33],f=[1,34],p=[1,45],m=[1,35],g=[1,36],y=[1,37],v=[1,38],x=[1,27],b=[1,28],T=[1,29],w=[1,30],C=[1,31],k=[1,44],E=[1,46],A=[1,43],N=[1,47],P=[1,9],I=[1,8,9],D=[1,58],_=[1,59],R=[1,60],M=[1,61],L=[1,62],B=[1,63],O=[1,64],$=[1,8,9,41],G=[1,77],F=[1,8,9,12,13,22,39,41,44,46,68,69,70,71,72,73,74,79,81],V=[1,8,9,12,13,18,20,22,39,41,44,46,47,60,68,69,70,71,72,73,74,79,81,86,100,102,103],H=[13,60,86,100,102,103],j=[13,60,73,74,86,100,102,103],U=[13,60,68,69,70,71,72,86,100,102,103],Q=[1,103],Y=[1,121],ae=[1,117],J=[1,113],te=[1,119],re=[1,114],ee=[1,115],Te=[1,116],ue=[1,118],De=[1,120],Ie=[22,50,60,61,82,86,87,88,89,90],Ee=[1,128],we=[12,39],Me=[1,8,9,39,41,44,46],$e=[1,8,9,22],de=[1,153],rt=[1,8,9,61],ke=[1,8,9,22,50,60,61,82,86,87,88,89,90],Fe={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,classLiteralName:17,DOT:18,className:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,ANNOTATION_START:46,ANNOTATION_END:47,CLASS:48,emptyBody:49,SPACE:50,MEMBER:51,SEPARATOR:52,relation:53,NOTE_FOR:54,noteText:55,NOTE:56,CLASSDEF:57,classList:58,stylesOpt:59,ALPHA:60,COMMA:61,direction_tb:62,direction_bt:63,direction_rl:64,direction_lr:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,STYLE:82,CSSCLASS:83,style:84,styleComponent:85,NUM:86,COLON:87,UNIT:88,BRKT:89,PCT:90,commentToken:91,textToken:92,graphCodeTokens:93,textNoTagsToken:94,TAGSTART:95,TAGEND:96,"==":97,"--":98,DEFAULT:99,MINUS:100,keywords:101,UNICODE_TEXT:102,BQUOTE_STR:103,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",18:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"ANNOTATION_START",47:"ANNOTATION_END",48:"CLASS",50:"SPACE",51:"MEMBER",52:"SEPARATOR",54:"NOTE_FOR",56:"NOTE",57:"CLASSDEF",60:"ALPHA",61:"COMMA",62:"direction_tb",63:"direction_bt",64:"direction_rl",65:"direction_lr",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"STYLE",83:"CSSCLASS",86:"NUM",87:"COLON",88:"UNIT",89:"BRKT",90:"PCT",93:"graphCodeTokens",95:"TAGSTART",96:"TAGEND",97:"==",98:"--",99:"DEFAULT",100:"MINUS",101:"keywords",102:"UNICODE_TEXT",103:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,1],[15,3],[15,2],[19,1],[19,3],[19,1],[19,2],[19,2],[19,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[38,3],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,3],[24,6],[24,4],[24,7],[24,6],[43,2],[43,3],[49,0],[49,2],[49,2],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[58,1],[58,3],[32,1],[32,1],[32,1],[32,1],[53,3],[53,2],[53,2],[53,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[59,1],[59,3],[84,1],[84,2],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[91,1],[91,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[94,1],[94,1],[94,1],[94,1],[16,1],[16,1],[16,1],[16,1],[17,1],[55,1]],performAction:o(function(Ue,ye,ve,ie,fe,W,ce){var K=W.length-1;switch(fe){case 8:this.$=W[K-1];break;case 9:case 10:case 13:case 15:this.$=W[K];break;case 11:case 14:this.$=W[K-2]+"."+W[K];break;case 12:case 16:this.$=W[K-1]+W[K];break;case 17:case 18:this.$=W[K-1]+"~"+W[K]+"~";break;case 19:ie.addRelation(W[K]);break;case 20:W[K-1].title=ie.cleanupLabel(W[K]),ie.addRelation(W[K-1]);break;case 31:this.$=W[K].trim(),ie.setAccTitle(this.$);break;case 32:case 33:this.$=W[K].trim(),ie.setAccDescription(this.$);break;case 34:ie.addClassesToNamespace(W[K-3],W[K-1][0],W[K-1][1]),ie.popNamespace();break;case 35:ie.addClassesToNamespace(W[K-4],W[K-1][0],W[K-1][1]),ie.popNamespace();break;case 36:this.$=ie.addNamespace(W[K]);break;case 37:this.$=ie.addNamespace(W[K-1],W[K]);break;case 38:this.$=[[W[K]],[]];break;case 39:this.$=[[W[K-1]],[]];break;case 40:W[K][0].unshift(W[K-2]),this.$=W[K];break;case 41:this.$=[[],[W[K]]];break;case 42:this.$=[[],[W[K-1]]];break;case 43:W[K][1].unshift(W[K-2]),this.$=W[K];break;case 44:case 45:this.$=[[],[]];break;case 46:this.$=W[K];break;case 48:ie.setCssClass(W[K-2],W[K]);break;case 49:ie.addMembers(W[K-3],W[K-1]);break;case 51:ie.setCssClass(W[K-5],W[K-3]),ie.addMembers(W[K-5],W[K-1]);break;case 52:ie.addAnnotation(W[K-3],W[K-1]);break;case 53:ie.addAnnotation(W[K-6],W[K-4]),ie.addMembers(W[K-6],W[K-1]);break;case 54:ie.addAnnotation(W[K-5],W[K-3]);break;case 55:this.$=W[K],ie.addClass(W[K]);break;case 56:this.$=W[K-1],ie.addClass(W[K-1]),ie.setClassLabel(W[K-1],W[K]);break;case 60:ie.addAnnotation(W[K],W[K-2]);break;case 61:case 74:this.$=[W[K]];break;case 62:W[K].push(W[K-1]),this.$=W[K];break;case 63:break;case 64:ie.addMember(W[K-1],ie.cleanupLabel(W[K]));break;case 65:break;case 66:break;case 67:this.$={id1:W[K-2],id2:W[K],relation:W[K-1],relationTitle1:"none",relationTitle2:"none"};break;case 68:this.$={id1:W[K-3],id2:W[K],relation:W[K-1],relationTitle1:W[K-2],relationTitle2:"none"};break;case 69:this.$={id1:W[K-3],id2:W[K],relation:W[K-2],relationTitle1:"none",relationTitle2:W[K-1]};break;case 70:this.$={id1:W[K-4],id2:W[K],relation:W[K-2],relationTitle1:W[K-3],relationTitle2:W[K-1]};break;case 71:this.$=ie.addNote(W[K],W[K-1]);break;case 72:this.$=ie.addNote(W[K]);break;case 73:this.$=W[K-2],ie.defineClass(W[K-1],W[K]);break;case 75:this.$=W[K-2].concat([W[K]]);break;case 76:ie.setDirection("TB");break;case 77:ie.setDirection("BT");break;case 78:ie.setDirection("RL");break;case 79:ie.setDirection("LR");break;case 80:this.$={type1:W[K-2],type2:W[K],lineType:W[K-1]};break;case 81:this.$={type1:"none",type2:W[K],lineType:W[K-1]};break;case 82:this.$={type1:W[K-1],type2:"none",lineType:W[K]};break;case 83:this.$={type1:"none",type2:"none",lineType:W[K]};break;case 84:this.$=ie.relationType.AGGREGATION;break;case 85:this.$=ie.relationType.EXTENSION;break;case 86:this.$=ie.relationType.COMPOSITION;break;case 87:this.$=ie.relationType.DEPENDENCY;break;case 88:this.$=ie.relationType.LOLLIPOP;break;case 89:this.$=ie.lineType.LINE;break;case 90:this.$=ie.lineType.DOTTED_LINE;break;case 91:case 97:this.$=W[K-2],ie.setClickEvent(W[K-1],W[K]);break;case 92:case 98:this.$=W[K-3],ie.setClickEvent(W[K-2],W[K-1]),ie.setTooltip(W[K-2],W[K]);break;case 93:this.$=W[K-2],ie.setLink(W[K-1],W[K]);break;case 94:this.$=W[K-3],ie.setLink(W[K-2],W[K-1],W[K]);break;case 95:this.$=W[K-3],ie.setLink(W[K-2],W[K-1]),ie.setTooltip(W[K-2],W[K]);break;case 96:this.$=W[K-4],ie.setLink(W[K-3],W[K-2],W[K]),ie.setTooltip(W[K-3],W[K-1]);break;case 99:this.$=W[K-3],ie.setClickEvent(W[K-2],W[K-1],W[K]);break;case 100:this.$=W[K-4],ie.setClickEvent(W[K-3],W[K-2],W[K-1]),ie.setTooltip(W[K-3],W[K]);break;case 101:this.$=W[K-3],ie.setLink(W[K-2],W[K]);break;case 102:this.$=W[K-4],ie.setLink(W[K-3],W[K-1],W[K]);break;case 103:this.$=W[K-4],ie.setLink(W[K-3],W[K-1]),ie.setTooltip(W[K-3],W[K]);break;case 104:this.$=W[K-5],ie.setLink(W[K-4],W[K-2],W[K]),ie.setTooltip(W[K-4],W[K-1]);break;case 105:this.$=W[K-2],ie.setCssStyle(W[K-1],W[K]);break;case 106:ie.setCssClass(W[K-1],W[K]);break;case 107:this.$=[W[K]];break;case 108:W[K-2].push(W[K]),this.$=W[K-2];break;case 110:this.$=W[K-1]+W[K];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:t,35:r,37:i,38:22,42:n,43:23,46:a,48:s,51:l,52:u,54:h,56:d,57:f,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:w,83:C,86:k,100:E,102:A,103:N},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(P,[2,5],{8:[1,48]}),{8:[1,49]},e(I,[2,19],{22:[1,50]}),e(I,[2,21]),e(I,[2,22]),e(I,[2,23]),e(I,[2,24]),e(I,[2,25]),e(I,[2,26]),e(I,[2,27]),e(I,[2,28]),e(I,[2,29]),e(I,[2,30]),{34:[1,51]},{36:[1,52]},e(I,[2,33]),e(I,[2,63],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:D,69:_,70:R,71:M,72:L,73:B,74:O}),{39:[1,65]},e($,[2,47],{39:[1,67],44:[1,66],46:[1,68]}),e(I,[2,65]),e(I,[2,66]),{16:69,60:p,86:k,100:E,102:A},{16:39,17:40,19:70,60:p,86:k,100:E,102:A,103:N},{16:39,17:40,19:71,60:p,86:k,100:E,102:A,103:N},{16:39,17:40,19:72,60:p,86:k,100:E,102:A,103:N},{60:[1,73]},{13:[1,74]},{16:39,17:40,19:75,60:p,86:k,100:E,102:A,103:N},{13:G,55:76},{58:78,60:[1,79]},e(I,[2,76]),e(I,[2,77]),e(I,[2,78]),e(I,[2,79]),e(F,[2,13],{16:39,17:40,19:81,18:[1,80],20:[1,82],60:p,86:k,100:E,102:A,103:N}),e(F,[2,15],{20:[1,83]}),{15:84,16:85,17:86,60:p,86:k,100:E,102:A,103:N},{16:39,17:40,19:87,60:p,86:k,100:E,102:A,103:N},e(V,[2,133]),e(V,[2,134]),e(V,[2,135]),e(V,[2,136]),e([1,8,9,12,13,20,22,39,41,44,46,68,69,70,71,72,73,74,79,81],[2,137]),e(P,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,19:21,38:22,43:23,16:39,17:40,5:88,33:t,35:r,37:i,42:n,46:a,48:s,51:l,52:u,54:h,56:d,57:f,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:w,83:C,86:k,100:E,102:A,103:N}),{5:89,10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:t,35:r,37:i,38:22,42:n,43:23,46:a,48:s,51:l,52:u,54:h,56:d,57:f,60:p,62:m,63:g,64:y,65:v,75:x,76:b,78:T,82:w,83:C,86:k,100:E,102:A,103:N},e(I,[2,20]),e(I,[2,31]),e(I,[2,32]),{13:[1,91],16:39,17:40,19:90,60:p,86:k,100:E,102:A,103:N},{53:92,66:56,67:57,68:D,69:_,70:R,71:M,72:L,73:B,74:O},e(I,[2,64]),{67:93,73:B,74:O},e(H,[2,83],{66:94,68:D,69:_,70:R,71:M,72:L}),e(j,[2,84]),e(j,[2,85]),e(j,[2,86]),e(j,[2,87]),e(j,[2,88]),e(U,[2,89]),e(U,[2,90]),{8:[1,96],23:99,24:97,30:98,38:22,40:95,42:n,43:23,48:s,54:h,56:d},{16:100,60:p,86:k,100:E,102:A},{41:[1,102],45:101,51:Q},{16:104,60:p,86:k,100:E,102:A},{47:[1,105]},{13:[1,106]},{13:[1,107]},{79:[1,108],81:[1,109]},{22:Y,50:ae,59:110,60:J,82:te,84:111,85:112,86:re,87:ee,88:Te,89:ue,90:De},{60:[1,122]},{13:G,55:123},e($,[2,72]),e($,[2,138]),{22:Y,50:ae,59:124,60:J,61:[1,125],82:te,84:111,85:112,86:re,87:ee,88:Te,89:ue,90:De},e(Ie,[2,74]),{16:39,17:40,19:126,60:p,86:k,100:E,102:A,103:N},e(F,[2,16]),e(F,[2,17]),e(F,[2,18]),{11:127,12:Ee,39:[2,36]},e(we,[2,9],{16:85,17:86,15:130,18:[1,129],60:p,86:k,100:E,102:A,103:N}),e(we,[2,10]),e(Me,[2,55],{11:131,12:Ee}),e(P,[2,7]),{9:[1,132]},e($e,[2,67]),{16:39,17:40,19:133,60:p,86:k,100:E,102:A,103:N},{13:[1,135],16:39,17:40,19:134,60:p,86:k,100:E,102:A,103:N},e(H,[2,82],{66:136,68:D,69:_,70:R,71:M,72:L}),e(H,[2,81]),{41:[1,137]},{23:99,24:97,30:98,38:22,40:138,42:n,43:23,48:s,54:h,56:d},{8:[1,139],41:[2,38]},{8:[1,140],41:[2,41]},{8:[1,141],41:[2,44]},e($,[2,48],{39:[1,142]}),{41:[1,143]},e($,[2,50]),{41:[2,61],45:144,51:Q},{47:[1,145]},{16:39,17:40,19:146,60:p,86:k,100:E,102:A,103:N},e(I,[2,91],{13:[1,147]}),e(I,[2,93],{13:[1,149],77:[1,148]}),e(I,[2,97],{13:[1,150],80:[1,151]}),{13:[1,152]},e(I,[2,105],{61:de}),e(rt,[2,107],{85:154,22:Y,50:ae,60:J,82:te,86:re,87:ee,88:Te,89:ue,90:De}),e(ke,[2,109]),e(ke,[2,111]),e(ke,[2,112]),e(ke,[2,113]),e(ke,[2,114]),e(ke,[2,115]),e(ke,[2,116]),e(ke,[2,117]),e(ke,[2,118]),e(ke,[2,119]),e(I,[2,106]),e($,[2,71]),e(I,[2,73],{61:de}),{60:[1,155]},e(F,[2,14]),{39:[2,37]},{13:[1,156]},{15:157,16:85,17:86,60:p,86:k,100:E,102:A,103:N},e(we,[2,12]),e(Me,[2,56]),{1:[2,4]},e($e,[2,69]),e($e,[2,68]),{16:39,17:40,19:158,60:p,86:k,100:E,102:A,103:N},e(H,[2,80]),e($,[2,34]),{41:[1,159]},{23:99,24:97,30:98,38:22,40:160,41:[2,39],42:n,43:23,48:s,54:h,56:d},{23:99,24:97,30:98,38:22,40:161,41:[2,42],42:n,43:23,48:s,54:h,56:d},{23:99,24:97,30:98,38:22,40:162,41:[2,45],42:n,43:23,48:s,54:h,56:d},{45:163,51:Q},e($,[2,49]),{41:[2,62]},e($,[2,52],{39:[1,164]}),e(I,[2,60]),e(I,[2,92]),e(I,[2,94]),e(I,[2,95],{77:[1,165]}),e(I,[2,98]),e(I,[2,99],{13:[1,166]}),e(I,[2,101],{13:[1,168],77:[1,167]}),{22:Y,50:ae,60:J,82:te,84:169,85:112,86:re,87:ee,88:Te,89:ue,90:De},e(ke,[2,110]),e(Ie,[2,75]),{14:[1,170]},e(we,[2,11]),e($e,[2,70]),e($,[2,35]),{41:[2,40]},{41:[2,43]},{41:[2,46]},{41:[1,171]},{41:[1,173],45:172,51:Q},e(I,[2,96]),e(I,[2,100]),e(I,[2,102]),e(I,[2,103],{77:[1,174]}),e(rt,[2,108],{85:154,22:Y,50:ae,60:J,82:te,86:re,87:ee,88:Te,89:ue,90:De}),e(Me,[2,8]),e($,[2,51]),{41:[1,175]},e($,[2,54]),e(I,[2,104]),e($,[2,53])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],127:[2,37],132:[2,4],144:[2,62],160:[2,40],161:[2,43],162:[2,46]},parseError:o(function(Ue,ye){if(ye.recoverable)this.trace(Ue);else{var ve=new Error(Ue);throw ve.hash=ye,ve}},"parseError"),parse:o(function(Ue){var ye=this,ve=[0],ie=[],fe=[null],W=[],ce=this.table,K="",Re=0,xe=0,Oe=0,be=2,Be=1,Ae=W.slice.call(arguments,1),Ve=Object.create(this.lexer),Pe={yy:{}};for(var Ye in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ye)&&(Pe.yy[Ye]=this.yy[Ye]);Ve.setInput(Ue,Pe.yy),Pe.yy.lexer=Ve,Pe.yy.parser=this,typeof Ve.yylloc>"u"&&(Ve.yylloc={});var le=Ve.yylloc;W.push(le);var st=Ve.options&&Ve.options.ranges;typeof Pe.yy.parseError=="function"?this.parseError=Pe.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(dt){ve.length=ve.length-2*dt,fe.length=fe.length-dt,W.length=W.length-dt}o(me,"popStack");function ot(){var dt;return dt=ie.pop()||Ve.lex()||Be,typeof dt!="number"&&(dt instanceof Array&&(ie=dt,dt=ie.pop()),dt=ye.symbols_[dt]||dt),dt}o(ot,"lex");for(var kt,Gt,Tt,Et,yt,oe,ht={},gt,et,pe,Qe;;){if(Tt=ve[ve.length-1],this.defaultActions[Tt]?Et=this.defaultActions[Tt]:((kt===null||typeof kt>"u")&&(kt=ot()),Et=ce[Tt]&&ce[Tt][kt]),typeof Et>"u"||!Et.length||!Et[0]){var nt="";Qe=[];for(gt in ce[Tt])this.terminals_[gt]&>>be&&Qe.push("'"+this.terminals_[gt]+"'");Ve.showPosition?nt="Parse error on line "+(Re+1)+`: +`+Ve.showPosition()+` +Expecting `+Qe.join(", ")+", got '"+(this.terminals_[kt]||kt)+"'":nt="Parse error on line "+(Re+1)+": Unexpected "+(kt==Be?"end of input":"'"+(this.terminals_[kt]||kt)+"'"),this.parseError(nt,{text:Ve.match,token:this.terminals_[kt]||kt,line:Ve.yylineno,loc:le,expected:Qe})}if(Et[0]instanceof Array&&Et.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Tt+", token: "+kt);switch(Et[0]){case 1:ve.push(kt),fe.push(Ve.yytext),W.push(Ve.yylloc),ve.push(Et[1]),kt=null,Gt?(kt=Gt,Gt=null):(xe=Ve.yyleng,K=Ve.yytext,Re=Ve.yylineno,le=Ve.yylloc,Oe>0&&Oe--);break;case 2:if(et=this.productions_[Et[1]][1],ht.$=fe[fe.length-et],ht._$={first_line:W[W.length-(et||1)].first_line,last_line:W[W.length-1].last_line,first_column:W[W.length-(et||1)].first_column,last_column:W[W.length-1].last_column},st&&(ht._$.range=[W[W.length-(et||1)].range[0],W[W.length-1].range[1]]),oe=this.performAction.apply(ht,[K,xe,Re,Pe.yy,Et[1],fe,W].concat(Ae)),typeof oe<"u")return oe;et&&(ve=ve.slice(0,-1*et*2),fe=fe.slice(0,-1*et),W=W.slice(0,-1*et)),ve.push(this.productions_[Et[1]][0]),fe.push(ht.$),W.push(ht._$),pe=ce[ve[ve.length-2]][ve[ve.length-1]],ve.push(pe);break;case 3:return!0}}return!0},"parse")},He=(function(){var qe={EOF:1,parseError:o(function(ye,ve){if(this.yy.parser)this.yy.parser.parseError(ye,ve);else throw new Error(ye)},"parseError"),setInput:o(function(Ue,ye){return this.yy=ye||this.yy||{},this._input=Ue,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Ue=this._input[0];this.yytext+=Ue,this.yyleng++,this.offset++,this.match+=Ue,this.matched+=Ue;var ye=Ue.match(/(?:\r\n?|\n).*/g);return ye?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ue},"input"),unput:o(function(Ue){var ye=Ue.length,ve=Ue.split(/(?:\r\n?|\n)/g);this._input=Ue+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ye),this.offset-=ye;var ie=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ve.length-1&&(this.yylineno-=ve.length-1);var fe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ve?(ve.length===ie.length?this.yylloc.first_column:0)+ie[ie.length-ve.length].length-ve[0].length:this.yylloc.first_column-ye},this.options.ranges&&(this.yylloc.range=[fe[0],fe[0]+this.yyleng-ye]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Ue){this.unput(this.match.slice(Ue))},"less"),pastInput:o(function(){var Ue=this.matched.substr(0,this.matched.length-this.match.length);return(Ue.length>20?"...":"")+Ue.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Ue=this.match;return Ue.length<20&&(Ue+=this._input.substr(0,20-Ue.length)),(Ue.substr(0,20)+(Ue.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Ue=this.pastInput(),ye=new Array(Ue.length+1).join("-");return Ue+this.upcomingInput()+` +`+ye+"^"},"showPosition"),test_match:o(function(Ue,ye){var ve,ie,fe;if(this.options.backtrack_lexer&&(fe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(fe.yylloc.range=this.yylloc.range.slice(0))),ie=Ue[0].match(/(?:\r\n?|\n).*/g),ie&&(this.yylineno+=ie.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ie?ie[ie.length-1].length-ie[ie.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Ue[0].length},this.yytext+=Ue[0],this.match+=Ue[0],this.matches=Ue,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ue[0].length),this.matched+=Ue[0],ve=this.performAction.call(this,this.yy,this,ye,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ve)return ve;if(this._backtrack){for(var W in fe)this[W]=fe[W];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ue,ye,ve,ie;this._more||(this.yytext="",this.match="");for(var fe=this._currentRules(),W=0;Wye[0].length)){if(ye=ve,ie=W,this.options.backtrack_lexer){if(Ue=this.test_match(ve,fe[W]),Ue!==!1)return Ue;if(this._backtrack){ye=!1;continue}else return!1}else if(!this.options.flex)break}return ye?(Ue=this.test_match(ye,fe[ie]),Ue!==!1?Ue:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ye=this.next();return ye||this.lex()},"lex"),begin:o(function(ye){this.conditionStack.push(ye)},"begin"),popState:o(function(){var ye=this.conditionStack.length-1;return ye>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ye){return ye=this.conditionStack.length-1-Math.abs(ye||0),ye>=0?this.conditionStack[ye]:"INITIAL"},"topState"),pushState:o(function(ye){this.begin(ye)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(ye,ve,ie,fe){var W=fe;switch(ie){case 0:return 62;case 1:return 63;case 2:return 64;case 3:return 65;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),35;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 79;case 22:this.popState();break;case 23:return 80;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 82;case 28:return 57;case 29:return this.begin("namespace"),42;break;case 30:return this.popState(),8;break;case 31:break;case 32:return this.begin("namespace-body"),39;break;case 33:this.popState(),this.less(0);break;case 34:return this.popState(),41;break;case 35:return"EOF_IN_STRUCT";case 36:return 8;case 37:break;case 38:return"EDGE_STATE";case 39:return this.begin("class"),48;break;case 40:return this.popState(),8;break;case 41:break;case 42:return this.popState(),this.popState(),41;break;case 43:return this.begin("class-body"),39;break;case 44:return this.popState(),41;break;case 45:return"EOF_IN_STRUCT";case 46:return"EDGE_STATE";case 47:return"OPEN_IN_STRUCT";case 48:break;case 49:return"MEMBER";case 50:return 83;case 51:return 75;case 52:return 76;case 53:return 78;case 54:return 54;case 55:return 56;case 56:return 46;case 57:return 47;case 58:return 81;case 59:this.popState();break;case 60:return"GENERICTYPE";case 61:this.begin("generic");break;case 62:this.popState();break;case 63:return"BQUOTE_STR";case 64:this.begin("bqstring");break;case 65:return 77;case 66:return 77;case 67:return 77;case 68:return 77;case 69:return 69;case 70:return 69;case 71:return 71;case 72:return 71;case 73:return 70;case 74:return 68;case 75:return 72;case 76:return 73;case 77:return 74;case 78:return 22;case 79:return 44;case 80:return 100;case 81:return 18;case 82:return"PLUS";case 83:return 87;case 84:return 61;case 85:return 89;case 86:return 89;case 87:return 90;case 88:return"EQUALS";case 89:return"EQUALS";case 90:return 60;case 91:return 12;case 92:return 14;case 93:return"PUNCTUATION";case 94:return 86;case 95:return 102;case 96:return 50;case 97:return 50;case 98:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,29,34,35,36,37,38,39,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},namespace:{rules:[26,29,30,31,32,33,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},"class-body":{rules:[26,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},class:{rules:[26,40,41,42,43,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},acc_descr:{rules:[9,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},acc_title:{rules:[7,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},callback_args:{rules:[22,23,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},callback_name:{rules:[19,20,21,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},href:{rules:[26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},struct:{rules:[26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},generic:{rules:[26,50,51,52,53,54,55,56,57,58,59,60,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},bqstring:{rules:[26,50,51,52,53,54,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},string:{rules:[24,25,26,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,87,88,89,90,91,92,93,94,95,96,98],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,39,50,51,52,53,54,55,56,57,58,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],inclusive:!0}}};return qe})();Fe.lexer=He;function at(){this.yy={}}return o(at,"Parser"),at.prototype=Fe,Fe.Parser=at,new at})();hW.parser=hW;Y6=hW});var w6e,ZT,S6e=z(()=>{"use strict";Ut();Ir();w6e=["#","+","~","-",""],ZT=class{static{o(this,"ClassMember")}constructor(t,r){this.memberType=r,this.visibility="",this.classifier="",this.text="";let i=fr(t,ge());this.parseMember(i)}getDisplayDetails(){let t=this.visibility+cc(this.id);this.memberType==="method"&&(t+=`(${cc(this.parameters.trim())})`,this.returnType&&(t+=" : "+cc(this.returnType))),t=t.trim();let r=this.parseClassifier();return{displayText:t,cssStyle:r}}parseMember(t){let r="";if(this.memberType==="method"){let a=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(t);if(a){let s=a[1]?a[1].trim():"";if(w6e.includes(s)&&(this.visibility=s),this.id=a[2],this.parameters=a[3]?a[3].trim():"",r=a[4]?a[4].trim():"",this.returnType=a[5]?a[5].trim():"",r===""){let l=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(l)&&(r=l,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let n=t.length,a=t.substring(0,1),s=t.substring(n-1);w6e.includes(a)&&(this.visibility=a),/[$*]/.exec(s)&&(r=s),this.id=t.substring(this.visibility===""?0:1,r===""?n:n-1)}this.classifier=r,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();let i=`${this.visibility?"\\"+this.visibility:""}${cc(this.id)}${this.memberType==="method"?`(${cc(this.parameters)})${this.returnType?" : "+cc(this.returnType):""}`:""}`;this.text=i.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});var j6,E6e,vm,Cy,fW=z(()=>{"use strict";Rr();St();Ut();Ir();Xt();Ci();gp();S6e();uv();j6="classId-",E6e=0,vm=o(e=>vt.sanitizeText(e,ge()),"sanitizeText"),Cy=class e{constructor(){this.relations=[];this.classes=new Map;this.styleClasses=new Map;this.notes=new Map;this.interfaces=[];this.namespaces=new Map;this.namespaceCounter=0;this.namespaceStack=[];this.diagramId="";this.functions=[];this.lineType={LINE:0,DOTTED_LINE:1};this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4};this.setupToolTips=o(t=>{let r=zw();Je(t).select("svg").selectAll("g").filter(function(){return Je(this).attr("title")!==null}).on("mouseover",a=>{let s=Je(a.currentTarget),l=s.attr("title");if(!l)return;let u=a.currentTarget.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.html(Ro.sanitize(l)).style("left",`${window.scrollX+u.left+u.width/2}px`).style("top",`${window.scrollY+u.bottom+4}px`),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),Je(a.currentTarget).classed("hover",!1)})},"setupToolTips");this.direction="TB";this.setAccTitle=Cr;this.getAccTitle=kr;this.setAccDescription=wr;this.getAccDescription=Sr;this.setDiagramTitle=Ar;this.getDiagramTitle=Er;this.getConfig=o(()=>ge().class,"getConfig");this.functions.push(this.setupToolTips.bind(this)),this.clear(),this.addRelation=this.addRelation.bind(this),this.addClassesToNamespace=this.addClassesToNamespace.bind(this),this.addNamespace=this.addNamespace.bind(this),this.popNamespace=this.popNamespace.bind(this),this.setCssClass=this.setCssClass.bind(this),this.addMembers=this.addMembers.bind(this),this.addClass=this.addClass.bind(this),this.setClassLabel=this.setClassLabel.bind(this),this.addAnnotation=this.addAnnotation.bind(this),this.addMember=this.addMember.bind(this),this.cleanupLabel=this.cleanupLabel.bind(this),this.addNote=this.addNote.bind(this),this.defineClass=this.defineClass.bind(this),this.setDirection=this.setDirection.bind(this),this.setLink=this.setLink.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.clear=this.clear.bind(this),this.setTooltip=this.setTooltip.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setCssStyle=this.setCssStyle.bind(this)}static{o(this,"ClassDB")}splitClassNameAndType(t){let r=vt.sanitizeText(t,ge()),i="",n=r;if(r.indexOf("~")>0){let a=r.split("~");n=vm(a[0]),i=vm(a[1])}return{className:n,type:i}}setClassLabel(t,r){let i=vt.sanitizeText(t,ge());r&&(r=vm(r));let{className:n}=this.splitClassNameAndType(i);this.classes.get(n).label=r,this.classes.get(n).text=`${r}${this.classes.get(n).type?`<${this.classes.get(n).type}>`:""}`}addClass(t){let r=vt.sanitizeText(t,ge()),{className:i,type:n}=this.splitClassNameAndType(r);if(this.classes.has(i))return;let a=vt.sanitizeText(i,ge());this.classes.set(a,{id:a,type:n,label:a,text:`${a}${n?`<${n}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:j6+a+"-"+E6e}),E6e++}addInterface(t,r){let i={id:`interface${this.interfaces.length}`,label:t,classId:r};this.interfaces.push(i)}setDiagramId(t){this.diagramId=t}lookUpDomId(t){let r=vt.sanitizeText(t,ge());if(this.classes.has(r)){let i=this.classes.get(r).domId;return this.diagramId?`${this.diagramId}-${i}`:i}throw new Error("Class not found: "+r)}clear(){this.relations=[],this.classes=new Map,this.notes=new Map,this.interfaces=[],this.functions=[],this.functions.push(this.setupToolTips.bind(this)),this.namespaces=new Map,this.namespaceCounter=0,this.namespaceStack=[],this.diagramId="",this.direction="TB",gr()}getClass(t){return this.classes.get(t)}getClasses(){return this.classes}getRelations(){return this.relations}getNote(t){let r=typeof t=="number"?`note${t}`:t;return this.notes.get(r)}getNotes(){return this.notes}addRelation(t){Z.debug("Adding relation: "+JSON.stringify(t));let r=[this.relationType.LOLLIPOP,this.relationType.AGGREGATION,this.relationType.COMPOSITION,this.relationType.DEPENDENCY,this.relationType.EXTENSION];t.relation.type1===this.relationType.LOLLIPOP&&!r.includes(t.relation.type2)?(this.addClass(t.id2),this.addInterface(t.id1,t.id2),t.id1=`interface${this.interfaces.length-1}`):t.relation.type2===this.relationType.LOLLIPOP&&!r.includes(t.relation.type1)?(this.addClass(t.id1),this.addInterface(t.id2,t.id1),t.id2=`interface${this.interfaces.length-1}`):(this.addClass(t.id1),this.addClass(t.id2)),t.id1=this.splitClassNameAndType(t.id1).className,t.id2=this.splitClassNameAndType(t.id2).className,t.relationTitle1=vt.sanitizeText(t.relationTitle1.trim(),ge()),t.relationTitle2=vt.sanitizeText(t.relationTitle2.trim(),ge()),this.relations.push(t)}addAnnotation(t,r){let i=this.splitClassNameAndType(t).className;this.classes.get(i).annotations.push(r)}addMember(t,r){this.addClass(t);let i=this.splitClassNameAndType(t).className,n=this.classes.get(i);if(typeof r=="string"){let a=r.trim();a.startsWith("<<")&&a.endsWith(">>")?n.annotations.push(vm(a.substring(2,a.length-2))):a.indexOf(")")>0?n.methods.push(new ZT(a,"method")):a&&n.members.push(new ZT(a,"attribute"))}}addMembers(t,r){Array.isArray(r)&&(r.reverse(),r.forEach(i=>this.addMember(t,i)))}addNote(t,r){let i=this.notes.size,n={id:`note${i}`,class:r,text:t,index:i};return this.notes.set(n.id,n),n.id}cleanupLabel(t){return t.startsWith(":")&&(t=t.substring(1)),vm(t.trim())}setCssClass(t,r){t.split(",").forEach(i=>{let n=i;/\d/.exec(i[0])&&(n=j6+n);let a=this.classes.get(n);a&&(a.cssClasses+=" "+r)})}defineClass(t,r){for(let i of t){let n=this.styleClasses.get(i);n===void 0&&(n={id:i,styles:[],textStyles:[]},this.styleClasses.set(i,n)),r&&r.forEach(a=>{if(/color/.exec(a)){let s=a.replace("fill","bgFill");n.textStyles.push(s)}n.styles.push(a)}),this.classes.forEach(a=>{a.cssClasses.includes(i)&&a.styles.push(...r.flatMap(s=>s.split(",")))})}}setTooltip(t,r){t.split(",").forEach(i=>{r!==void 0&&(this.classes.get(i).tooltip=vm(r))})}getTooltip(t,r){return r&&this.namespaces.has(r)?this.namespaces.get(r).classes.get(t).tooltip:this.classes.get(t).tooltip}setLink(t,r,i){let n=ge();t.split(",").forEach(a=>{let s=a;/\d/.exec(a[0])&&(s=j6+s);let l=this.classes.get(s);l&&(l.link=Zt.formatUrl(r,n),n.securityLevel==="sandbox"?l.linkTarget="_top":typeof i=="string"?l.linkTarget=vm(i):l.linkTarget="_blank")}),this.setCssClass(t,"clickable")}setClickEvent(t,r,i){t.split(",").forEach(n=>{this.setClickFunc(n,r,i),this.classes.get(n).haveCallback=!0}),this.setCssClass(t,"clickable")}setClickFunc(t,r,i){let n=vt.sanitizeText(t,ge());if(ge().securityLevel!=="loose"||r===void 0)return;let s=n;if(this.classes.has(s)){let l=[];if(typeof i=="string"){l=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let u=0;u{let u=this.lookUpDomId(s),h=document.querySelector(`[id="${u}"]`);h!==null&&h.addEventListener("click",()=>{Zt.runFunc(r,...l)},!1)})}}bindFunctions(t){this.functions.forEach(r=>{r(t)})}escapeHtml(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}getDirection(){return this.direction}setDirection(t){this.direction=t}static resolveQualifiedId(t,r){let i=r.at(-1);return i?`${i}.${t}`:t}static getAncestorIds(t){let r=t.split("."),i=new Array(r.length);i[0]=r[0];for(let n=1;n0?a[s-1]:void 0,h=s===a.length-1,d=h&&r?r:n[s];this.namespaces.has(l)?h&&(this.namespaces.get(l).explicit=!0):this.namespaces.set(l,this.createNamespaceNode(l,d,u,h)),u&&this.linkParentChild(u,l)}return i}popNamespace(){this.namespaceStack.pop()}getNamespace(t){return this.namespaces.get(t)}getNamespaces(){return this.namespaces}addClassesToNamespace(t,r,i){if(this.namespaces.has(t)){for(let n of r){let{className:a}=this.splitClassNameAndType(n),s=this.getClass(a);s.parent=t,this.namespaces.get(t).classes.set(a,s)}for(let n of i){let a=this.getNote(n);a.parent=t,this.namespaces.get(t).notes.set(n,a)}}}setCssStyle(t,r){let i=this.classes.get(t);if(!(!r||!i))for(let n of r)n.includes(",")?i.styles.push(...n.split(",")):i.styles.push(n)}getArrowMarker(t){let r;switch(t){case 0:r="aggregation";break;case 1:r="extension";break;case 2:r="composition";break;case 3:r="dependency";break;case 4:r="lollipop";break;default:r="none"}return r}resolveExplicitAncestor(t){let r=t;for(;r;){let i=this.namespaces.get(r);if(!i)return;if(i.explicit)return r;r=i.parent}}getData(){let t=[],r=[],i=ge(),n=i.class?.hierarchicalNamespaces??!0;for(let s of this.namespaces.values()){if(!n&&!s.explicit)continue;let l={id:s.id,label:n?s.label:s.id,isGroup:!0,padding:i.class.padding??16,shape:"rect",cssStyles:[],look:i.look,parentId:n?s.parent:void 0};t.push(l)}for(let s of this.classes.values()){let l=n?s.parent:this.resolveExplicitAncestor(s.parent),u={...s,type:void 0,isGroup:!1,parentId:l,look:i.look};t.push(u)}for(let s of this.notes.values()){let l=n?s.parent:this.resolveExplicitAncestor(s.parent),u={id:s.id,label:s.text,isGroup:!1,shape:"note",padding:i.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${i.themeVariables.noteBkgColor}`,`stroke: ${i.themeVariables.noteBorderColor}`],look:i.look,parentId:l,labelType:"markdown"};t.push(u);let h=this.classes.get(s.class)?.id;if(h){let d={id:`edgeNote${s.index}`,start:s.id,end:h,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:i.look};r.push(d)}}for(let s of this.interfaces){let l={id:s.id,label:s.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:i.look};t.push(l)}let a=0;for(let s of this.relations){a++;let l={id:bc(s.id1,s.id2,{prefix:"id",counter:a}),start:s.id1,end:s.id2,type:"normal",label:s.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:this.getArrowMarker(s.relation.type1),arrowTypeEnd:this.getArrowMarker(s.relation.type2),startLabelRight:s.relationTitle1==="none"?"":s.relationTitle1,endLabelLeft:s.relationTitle2==="none"?"":s.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:s.style||"",pattern:s.relation.lineType==1?"dashed":"solid",look:i.look,labelType:"markdown"};r.push(l)}return{nodes:t,edges:r,other:{},config:i,direction:this.getDirection()}}}});var TCt,X6,pW=z(()=>{"use strict";k1();TCt=o(e=>`g.classGroup text { + fill: ${e.nodeBorder||e.classText}; + stroke: none; + font-family: ${e.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span { + color: ${e.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .cluster rect { + fill: ${e.clusterBkg}; + stroke: ${e.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span { + color: ${e.titleColor}; + } + +.nodeLabel, .edgeLabel { + color: ${e.classText}; +} + +.noteLabel .nodeLabel, .noteLabel .edgeLabel { + color: ${e.noteTextColor}; +} +.edgeLabel .label rect { + fill: ${e.mainBkg}; +} +.label text { + fill: ${e.classText}; +} + +.labelBkg { + background: ${e.mainBkg}; +} +.edgeLabel .label span { + background: ${e.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: ${e.strokeWidth}; + } + + +.divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.classGroup line { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${e.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${e.lineColor}; + stroke-width: ${e.strokeWidth}; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +[id$="-compositionStart"], .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-compositionEnd"], .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-dependencyStart"], .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-dependencyEnd"], .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-extensionStart"], .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-extensionEnd"], .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-aggregationStart"], .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-aggregationEnd"], .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-lollipopStart"], .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +[id$="-lollipopEnd"], .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} + +.edgeLabel[data-look="neo"] { + background-color: ${e.edgeLabelBackground}; + p { + background-color: ${e.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; +} + ${Vc()} +`,"getStyles"),X6=TCt});var CCt,kCt,wCt,K6,mW=z(()=>{"use strict";Ut();St();Lp();tf();rf();Xt();CCt=o((e,t="TB")=>{if(!e.doc)return t;let r=t;for(let i of e.doc)i.stmt==="dir"&&(r=i.value);return r},"getDir"),kCt=o(function(e,t){return t.db.getClasses()},"getClasses"),wCt=o(async function(e,t,r,i){Z.info("REF0:"),Z.info("Drawing class diagram (v3)",t);let{securityLevel:n,state:a,layout:s}=ge();i.db.setDiagramId(t);let l=i.db.getData(),u=Fo(t,n);l.type=i.type,l.layoutAlgorithm=Gc(s),l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["aggregation","extension","composition","dependency","lollipop"],l.diagramId=t,await Zo(l,u);let h=8;Zt.insertTitle(u,"classDiagramTitleText",a?.titleTopMargin??25,i.db.getDiagramTitle()),$s(u,h,"classDiagram",a?.useMaxWidth??!0)},"draw"),K6={getClasses:kCt,draw:wCt,getDir:CCt}});var A6e={};xr(A6e,{diagram:()=>SCt});var SCt,_6e=z(()=>{"use strict";dW();fW();pW();mW();SCt={parser:Y6,get db(){return new Cy},renderer:K6,styles:X6,init:o(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}});var L6e={};xr(L6e,{diagram:()=>DCt});var DCt,M6e=z(()=>{"use strict";dW();fW();pW();mW();DCt={parser:Y6,get db(){return new Cy},renderer:K6,styles:X6,init:o(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}});var gW,Z6,yW=z(()=>{"use strict";gW=(function(){var e=o(function($,G,F,V){for(F=F||{},V=$.length;V--;F[$[V]]=G);return F},"o"),t=[1,2],r=[1,3],i=[1,4],n=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],d=[1,19],f=[1,33],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],T=[1,28],w=[1,29],C=[1,30],k=[1,31],E=[1,32],A=[1,35],N=[1,36],P=[1,37],I=[1,38],D=[1,34],_=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],R=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,39,40,41,45,48,51,52,53,54,57],M=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],L={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,CLICK:38,STRING:39,HREF:40,classDef:41,CLASSDEF_ID:42,CLASSDEF_STYLEOPTS:43,DEFAULT:44,style:45,STYLE_IDS:46,STYLEDEF_STYLEOPTS:47,class:48,CLASSENTITY_IDS:49,STYLECLASS:50,direction_tb:51,direction_bt:52,direction_rl:53,direction_lr:54,eol:55,";":56,EDGE_STATE:57,STYLE_SEPARATOR:58,left_of:59,right_of:60,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"CLICK",39:"STRING",40:"HREF",41:"classDef",42:"CLASSDEF_ID",43:"CLASSDEF_STYLEOPTS",44:"DEFAULT",45:"style",46:"STYLE_IDS",47:"STYLEDEF_STYLEOPTS",48:"class",49:"CLASSENTITY_IDS",50:"STYLECLASS",51:"direction_tb",52:"direction_bt",53:"direction_rl",54:"direction_lr",56:";",57:"EDGE_STATE",58:"STYLE_SEPARATOR",59:"left_of",60:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[9,5],[9,5],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[55,1],[55,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(G,F,V,H,j,U,Q){var Y=U.length-1;switch(j){case 3:return H.setRootDoc(U[Y]),U[Y];break;case 4:this.$=[];break;case 5:U[Y]!="nl"&&(U[Y-1].push(U[Y]),this.$=U[Y-1]);break;case 6:case 7:this.$=U[Y];break;case 8:this.$="nl";break;case 12:this.$=U[Y];break;case 13:let re=U[Y-1];re.description=H.trimColon(U[Y]),this.$=re;break;case 14:this.$={stmt:"relation",state1:U[Y-2],state2:U[Y]};break;case 15:let ee=H.trimColon(U[Y]);this.$={stmt:"relation",state1:U[Y-3],state2:U[Y-1],description:ee};break;case 19:this.$={stmt:"state",id:U[Y-3],type:"default",description:"",doc:U[Y-1]};break;case 20:var ae=U[Y],J=U[Y-2].trim();if(U[Y].match(":")){var te=U[Y].split(":");ae=te[0],J=[J,te[1]]}this.$={stmt:"state",id:ae,type:"default",description:J};break;case 21:this.$={stmt:"state",id:U[Y-3],type:"default",description:U[Y-5],doc:U[Y-1]};break;case 22:this.$={stmt:"state",id:U[Y],type:"fork"};break;case 23:this.$={stmt:"state",id:U[Y],type:"join"};break;case 24:this.$={stmt:"state",id:U[Y],type:"choice"};break;case 25:this.$={stmt:"state",id:H.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:U[Y-1].trim(),note:{position:U[Y-2].trim(),text:U[Y].trim()}};break;case 29:this.$=U[Y].trim(),H.setAccTitle(this.$);break;case 30:case 31:this.$=U[Y].trim(),H.setAccDescription(this.$);break;case 32:this.$={stmt:"click",id:U[Y-3],url:U[Y-2],tooltip:U[Y-1]};break;case 33:this.$={stmt:"click",id:U[Y-3],url:U[Y-1],tooltip:""};break;case 34:case 35:this.$={stmt:"classDef",id:U[Y-1].trim(),classes:U[Y].trim()};break;case 36:this.$={stmt:"style",id:U[Y-1].trim(),styleClass:U[Y].trim()};break;case 37:this.$={stmt:"applyClass",id:U[Y-1].trim(),styleClass:U[Y].trim()};break;case 38:H.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:H.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:H.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:H.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:U[Y].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:U[Y-2].trim(),classes:[U[Y].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:U[Y-2].trim(),classes:[U[Y].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:t,5:r,6:i},{1:[3]},{3:5,4:t,5:r,6:i},{3:6,4:t,5:r,6:i},e([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],n,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:d,24:f,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:w,41:C,45:k,48:E,51:A,52:N,53:P,54:I,57:D},e(_,[2,5]),{9:39,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:d,24:f,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:w,41:C,45:k,48:E,51:A,52:N,53:P,54:I,57:D},e(_,[2,7]),e(_,[2,8]),e(_,[2,9]),e(_,[2,10]),e(_,[2,11]),e(_,[2,12],{14:[1,40],15:[1,41]}),e(_,[2,16]),{18:[1,42]},e(_,[2,18],{20:[1,43]}),{23:[1,44]},e(_,[2,22]),e(_,[2,23]),e(_,[2,24]),e(_,[2,25]),{30:45,31:[1,46],59:[1,47],60:[1,48]},e(_,[2,28]),{34:[1,49]},{36:[1,50]},e(_,[2,31]),{13:51,24:f,57:D},{42:[1,52],44:[1,53]},{46:[1,54]},{49:[1,55]},e(R,[2,44],{58:[1,56]}),e(R,[2,45],{58:[1,57]}),e(_,[2,38]),e(_,[2,39]),e(_,[2,40]),e(_,[2,41]),e(_,[2,6]),e(_,[2,13]),{13:58,24:f,57:D},e(_,[2,17]),e(M,n,{7:59}),{24:[1,60]},{24:[1,61]},{23:[1,62]},{24:[2,48]},{24:[2,49]},e(_,[2,29]),e(_,[2,30]),{39:[1,63],40:[1,64]},{43:[1,65]},{43:[1,66]},{47:[1,67]},{50:[1,68]},{24:[1,69]},{24:[1,70]},e(_,[2,14],{14:[1,71]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,72],22:d,24:f,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:w,41:C,45:k,48:E,51:A,52:N,53:P,54:I,57:D},e(_,[2,20],{20:[1,73]}),{31:[1,74]},{24:[1,75]},{39:[1,76]},{39:[1,77]},e(_,[2,34]),e(_,[2,35]),e(_,[2,36]),e(_,[2,37]),e(R,[2,46]),e(R,[2,47]),e(_,[2,15]),e(_,[2,19]),e(M,n,{7:78}),e(_,[2,26]),e(_,[2,27]),{5:[1,79]},{5:[1,80]},{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,81],22:d,24:f,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:T,38:w,41:C,45:k,48:E,51:A,52:N,53:P,54:I,57:D},e(_,[2,32]),e(_,[2,33]),e(_,[2,21])],defaultActions:{5:[2,1],6:[2,2],47:[2,48],48:[2,49]},parseError:o(function(G,F){if(F.recoverable)this.trace(G);else{var V=new Error(G);throw V.hash=F,V}},"parseError"),parse:o(function(G){var F=this,V=[0],H=[],j=[null],U=[],Q=this.table,Y="",ae=0,J=0,te=0,re=2,ee=1,Te=U.slice.call(arguments,1),ue=Object.create(this.lexer),De={yy:{}};for(var Ie in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ie)&&(De.yy[Ie]=this.yy[Ie]);ue.setInput(G,De.yy),De.yy.lexer=ue,De.yy.parser=this,typeof ue.yylloc>"u"&&(ue.yylloc={});var Ee=ue.yylloc;U.push(Ee);var we=ue.options&&ue.options.ranges;typeof De.yy.parseError=="function"?this.parseError=De.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Me(W){V.length=V.length-2*W,j.length=j.length-W,U.length=U.length-W}o(Me,"popStack");function $e(){var W;return W=H.pop()||ue.lex()||ee,typeof W!="number"&&(W instanceof Array&&(H=W,W=H.pop()),W=F.symbols_[W]||W),W}o($e,"lex");for(var de,rt,ke,Fe,He,at,qe={},Ue,ye,ve,ie;;){if(ke=V[V.length-1],this.defaultActions[ke]?Fe=this.defaultActions[ke]:((de===null||typeof de>"u")&&(de=$e()),Fe=Q[ke]&&Q[ke][de]),typeof Fe>"u"||!Fe.length||!Fe[0]){var fe="";ie=[];for(Ue in Q[ke])this.terminals_[Ue]&&Ue>re&&ie.push("'"+this.terminals_[Ue]+"'");ue.showPosition?fe="Parse error on line "+(ae+1)+`: +`+ue.showPosition()+` +Expecting `+ie.join(", ")+", got '"+(this.terminals_[de]||de)+"'":fe="Parse error on line "+(ae+1)+": Unexpected "+(de==ee?"end of input":"'"+(this.terminals_[de]||de)+"'"),this.parseError(fe,{text:ue.match,token:this.terminals_[de]||de,line:ue.yylineno,loc:Ee,expected:ie})}if(Fe[0]instanceof Array&&Fe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ke+", token: "+de);switch(Fe[0]){case 1:V.push(de),j.push(ue.yytext),U.push(ue.yylloc),V.push(Fe[1]),de=null,rt?(de=rt,rt=null):(J=ue.yyleng,Y=ue.yytext,ae=ue.yylineno,Ee=ue.yylloc,te>0&&te--);break;case 2:if(ye=this.productions_[Fe[1]][1],qe.$=j[j.length-ye],qe._$={first_line:U[U.length-(ye||1)].first_line,last_line:U[U.length-1].last_line,first_column:U[U.length-(ye||1)].first_column,last_column:U[U.length-1].last_column},we&&(qe._$.range=[U[U.length-(ye||1)].range[0],U[U.length-1].range[1]]),at=this.performAction.apply(qe,[Y,J,ae,De.yy,Fe[1],j,U].concat(Te)),typeof at<"u")return at;ye&&(V=V.slice(0,-1*ye*2),j=j.slice(0,-1*ye),U=U.slice(0,-1*ye)),V.push(this.productions_[Fe[1]][0]),j.push(qe.$),U.push(qe._$),ve=Q[V[V.length-2]][V[V.length-1]],V.push(ve);break;case 3:return!0}}return!0},"parse")},B=(function(){var $={EOF:1,parseError:o(function(F,V){if(this.yy.parser)this.yy.parser.parseError(F,V);else throw new Error(F)},"parseError"),setInput:o(function(G,F){return this.yy=F||this.yy||{},this._input=G,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var G=this._input[0];this.yytext+=G,this.yyleng++,this.offset++,this.match+=G,this.matched+=G;var F=G.match(/(?:\r\n?|\n).*/g);return F?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),G},"input"),unput:o(function(G){var F=G.length,V=G.split(/(?:\r\n?|\n)/g);this._input=G+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-F),this.offset-=F;var H=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),V.length-1&&(this.yylineno-=V.length-1);var j=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:V?(V.length===H.length?this.yylloc.first_column:0)+H[H.length-V.length].length-V[0].length:this.yylloc.first_column-F},this.options.ranges&&(this.yylloc.range=[j[0],j[0]+this.yyleng-F]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(G){this.unput(this.match.slice(G))},"less"),pastInput:o(function(){var G=this.matched.substr(0,this.matched.length-this.match.length);return(G.length>20?"...":"")+G.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var G=this.match;return G.length<20&&(G+=this._input.substr(0,20-G.length)),(G.substr(0,20)+(G.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var G=this.pastInput(),F=new Array(G.length+1).join("-");return G+this.upcomingInput()+` +`+F+"^"},"showPosition"),test_match:o(function(G,F){var V,H,j;if(this.options.backtrack_lexer&&(j={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(j.yylloc.range=this.yylloc.range.slice(0))),H=G[0].match(/(?:\r\n?|\n).*/g),H&&(this.yylineno+=H.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:H?H[H.length-1].length-H[H.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+G[0].length},this.yytext+=G[0],this.match+=G[0],this.matches=G,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(G[0].length),this.matched+=G[0],V=this.performAction.call(this,this.yy,this,F,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),V)return V;if(this._backtrack){for(var U in j)this[U]=j[U];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var G,F,V,H;this._more||(this.yytext="",this.match="");for(var j=this._currentRules(),U=0;UF[0].length)){if(F=V,H=U,this.options.backtrack_lexer){if(G=this.test_match(V,j[U]),G!==!1)return G;if(this._backtrack){F=!1;continue}else return!1}else if(!this.options.flex)break}return F?(G=this.test_match(F,j[H]),G!==!1?G:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var F=this.next();return F||this.lex()},"lex"),begin:o(function(F){this.conditionStack.push(F)},"begin"),popState:o(function(){var F=this.conditionStack.length-1;return F>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(F){return F=this.conditionStack.length-1-Math.abs(F||0),F>=0?this.conditionStack[F]:"INITIAL"},"topState"),pushState:o(function(F){this.begin(F)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(F,V,H,j){function U(){let Y=V.yytext.indexOf("%%");if(Y===0)return!1;if(Y>0){let ae=V.yytext.slice(0,Y),J=V.yytext.slice(Y);J&&F.lexer.unput(J),V.yytext=ae}return!0}o(U,"processId");var Q=j;switch(H){case 0:return 38;case 1:return 40;case 2:return 39;case 3:return 44;case 4:return 51;case 5:return 52;case 6:return 53;case 7:return 54;case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:break;case 13:return this.pushState("SCALE"),17;break;case 14:return 18;case 15:this.popState();break;case 16:return this.begin("acc_title"),33;break;case 17:return this.popState(),"acc_title_value";break;case 18:return this.begin("acc_descr"),35;break;case 19:return this.popState(),"acc_descr_value";break;case 20:this.begin("acc_descr_multiline");break;case 21:this.popState();break;case 22:return"acc_descr_multiline_value";case 23:return this.pushState("CLASSDEF"),41;break;case 24:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 25:return this.popState(),this.pushState("CLASSDEFID"),42;break;case 26:return this.popState(),43;break;case 27:return this.pushState("CLASS"),48;break;case 28:return this.popState(),this.pushState("CLASS_STYLE"),49;break;case 29:return this.popState(),50;break;case 30:return this.pushState("STYLE"),45;break;case 31:return this.popState(),this.pushState("STYLEDEF_STYLES"),46;break;case 32:return this.popState(),47;break;case 33:return this.pushState("SCALE"),17;break;case 34:return 18;case 35:this.popState();break;case 36:this.pushState("STATE");break;case 37:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),25;break;case 38:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),26;break;case 39:return this.popState(),V.yytext=V.yytext.slice(0,-10).trim(),27;break;case 40:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),25;break;case 41:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),26;break;case 42:return this.popState(),V.yytext=V.yytext.slice(0,-10).trim(),27;break;case 43:return 51;case 44:return 52;case 45:return 53;case 46:return 54;case 47:this.pushState("STATE_STRING");break;case 48:return this.pushState("STATE_ID"),"AS";break;case 49:if(!U())return;return this.popState(),"ID";break;case 50:this.popState();break;case 51:return"STATE_DESCR";case 52:return 19;case 53:this.popState();break;case 54:return this.popState(),this.pushState("struct"),20;break;case 55:return this.popState(),21;break;case 56:break;case 57:return this.begin("NOTE"),29;break;case 58:return this.popState(),this.pushState("NOTE_ID"),59;break;case 59:return this.popState(),this.pushState("NOTE_ID"),60;break;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 62:break;case 63:return"NOTE_TEXT";case 64:if(!U())return;return this.popState(),"ID";break;case 65:if(!U())return;return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 66:return this.popState(),V.yytext=V.yytext.substr(2).trim(),31;break;case 67:return this.popState(),V.yytext=V.yytext.slice(0,-8).trim(),31;break;case 68:return 6;case 69:return 6;case 70:return 16;case 71:return 57;case 72:return U()?24:void 0;case 73:return V.yytext=V.yytext.trim(),14;break;case 74:return 15;case 75:return 28;case 76:return 58;case 77:return 5;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:click\b)/i,/^(?:href\b)/i,/^(?:"[^"]*")/i,/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?\n\s*end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:(?:[^:\n;]|:[^:\n;])+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[10,11,12],inclusive:!1},struct:{rules:[10,11,12,23,27,30,36,43,44,45,46,55,56,57,71,72,73,74,75,76],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[32],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[31],inclusive:!1},CLASS_STYLE:{rules:[29],inclusive:!1},CLASS:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[26],inclusive:!1},CLASSDEF:{rules:[24,25],inclusive:!1},acc_descr_multiline:{rules:[21,22],inclusive:!1},acc_descr:{rules:[19],inclusive:!1},acc_title:{rules:[17],inclusive:!1},SCALE:{rules:[14,15,34,35],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[49],inclusive:!1},STATE_STRING:{rules:[50,51],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[10,11,12,37,38,39,40,41,42,47,48,52,53,54],inclusive:!1},ID:{rules:[10,11,12],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,11,12,13,16,18,20,23,27,30,33,36,54,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};return $})();L.lexer=B;function O(){this.yy={}}return o(O,"Parser"),O.prototype=L,L.Parser=O,new O})();gW.parser=gW;Z6=gW});var Rf,xm,QT,O6e,P6e,B6e,bm,Q6,vW,xW,bW,TW,J6,e_,F6e,$6e,CW,kW,z6e,G6e,ky,NCt,V6e,wW,ICt,OCt,W6e,q6e,PCt,U6e,BCt,H6e,SW,EW,Y6e,t_,j6e,AW,r_=z(()=>{"use strict";Rf="state",xm="root",QT="relation",O6e="classDef",P6e="style",B6e="applyClass",bm="default",Q6="divider",vW="fill:none",xW="fill: #333",bW="markdown",TW="normal",J6="rect",e_="rectWithTitle",F6e="stateStart",$6e="stateEnd",CW="divider",kW="roundedWithTitle",z6e="note",G6e="noteGroup",ky="statediagram",NCt="state",V6e=`${ky}-${NCt}`,wW="transition",ICt="note",OCt="note-edge",W6e=`${wW} ${OCt}`,q6e=`${ky}-${ICt}`,PCt="cluster",U6e=`${ky}-${PCt}`,BCt="cluster-alt",H6e=`${ky}-${BCt}`,SW="parent",EW="note",Y6e="state",t_="----",j6e=`${t_}${EW}`,AW=`${t_}${SW}`});function _W(e="",t=0,r="",i=t_){let n=r!==null&&r.length>0?`${i}${r}`:"";return`${Y6e}-${e}${n}-${t}`}function i_(e,t,r){if(!t.id||t.id===""||t.id==="")return;t.cssClasses&&(Array.isArray(t.cssCompiledStyles)||(t.cssCompiledStyles=[]),t.cssClasses.split(" ").forEach(n=>{let a=r.get(n);a&&(t.cssCompiledStyles=[...t.cssCompiledStyles??[],...a.styles])}));let i=e.find(n=>n.id===t.id);i?Object.assign(i,t):e.push(t)}function $Ct(e){return e?.classes?.join(" ")??""}function zCt(e){return e?.styles??[]}var n_,Lf,FCt,X6e,wy,Z6e,Q6e=z(()=>{"use strict";Ut();St();Ir();r_();n_=new Map,Lf=0;o(_W,"stateDomId");FCt=o((e,t,r,i,n,a,s,l)=>{Z.trace("items",t),t.forEach(u=>{switch(u.stmt){case Rf:wy(e,u,r,i,n,a,s,l);break;case bm:wy(e,u,r,i,n,a,s,l);break;case QT:{wy(e,u.state1,r,i,n,a,s,l),wy(e,u.state2,r,i,n,a,s,l);let h=s==="neo",d={id:"edge"+Lf,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:h?"arrow_barb_neo":"arrow_barb",style:vW,labelStyle:"",label:vt.sanitizeText(u.description??"",ge()),arrowheadStyle:xW,labelpos:"c",labelType:bW,thickness:TW,classes:wW,look:s};n.push(d),Lf++}break}})},"setupDoc"),X6e=o((e,t="TB")=>{let r=t;if(e.doc)for(let i of e.doc)i.stmt==="dir"&&(r=i.value);return r},"getDir");o(i_,"insertOrUpdateNode");o($Ct,"getClassesFromDbInfo");o(zCt,"getStylesFromDbInfo");wy=o((e,t,r,i,n,a,s,l)=>{let u=t.id,h=r.get(u),d=$Ct(h),f=zCt(h),p=ge();if(Z.info("dataFetcher parsedItem",t,h,f),u!=="root"){let m=J6;t.start===!0?m=F6e:t.start===!1&&(m=$6e),t.type!==bm&&(m=t.type),n_.get(u)||n_.set(u,{id:u,shape:m,description:vt.sanitizeText(u,p),cssClasses:`${d} ${V6e}`,cssStyles:f});let g=n_.get(u);t.description&&(Array.isArray(g.description)?(g.shape=e_,g.description.push(t.description)):g.description?.length&&g.description.length>0?(g.shape=e_,g.description===u?g.description=[t.description]:g.description=[g.description,t.description]):(g.shape=J6,g.description=t.description),g.description=vt.sanitizeTextOrArray(g.description,p)),g.description?.length===1&&g.shape===e_&&(g.type==="group"?g.shape=kW:g.shape=J6),!g.type&&t.doc&&(Z.info("Setting cluster for XCX",u,X6e(t)),g.type="group",g.isGroup=!0,g.dir=X6e(t),g.shape=t.type===Q6?CW:kW,g.cssClasses=`${g.cssClasses} ${U6e} ${a?H6e:""}`);let y={labelStyle:"",shape:g.shape,label:g.description,cssClasses:g.cssClasses,cssCompiledStyles:[],cssStyles:g.cssStyles,id:u,dir:g.dir,domId:_W(u,Lf),type:g.type,isGroup:g.type==="group",padding:8,rx:10,ry:10,look:s,labelType:"markdown"};if(y.shape===CW&&(y.label=""),e&&e.id!=="root"&&(Z.trace("Setting node ",u," to be child of its parent ",e.id),y.parentId=e.id),y.centerLabel=!0,t.note){let v={labelStyle:"",shape:z6e,label:t.note.text,labelType:"markdown",cssClasses:q6e,cssStyles:[],cssCompiledStyles:[],id:u+j6e+"-"+Lf,domId:_W(u,Lf,EW),type:g.type,isGroup:g.type==="group",padding:p.flowchart?.padding,look:s,position:t.note.position},x=u+AW,b={labelStyle:"",shape:G6e,label:t.note.text,cssClasses:g.cssClasses,cssStyles:[],id:u+AW,domId:_W(u,Lf,SW),type:"group",isGroup:!0,padding:16,look:s,position:t.note.position};Lf++,b.id=x,v.parentId=x,i_(i,b,l),i_(i,v,l),i_(i,y,l);let T=u,w=v.id;t.note.position==="left of"&&(T=v.id,w=u),n.push({id:T+"-"+w,start:T,end:w,arrowhead:"none",arrowTypeEnd:"",style:vW,labelStyle:"",classes:W6e,arrowheadStyle:xW,labelpos:"c",labelType:bW,thickness:TW,look:s})}else i_(i,y,l)}t.doc&&(Z.trace("Adding nodes children "),FCt(t,t.doc,r,i,n,!a,s,l))},"dataFetcher"),Z6e=o(()=>{n_.clear(),Lf=0},"reset")});var RW,GCt,VCt,J6e,LW=z(()=>{"use strict";Ut();St();Lp();tf();rf();Xt();r_();RW=o((e,t="TB")=>{if(!e.doc)return t;let r=t;for(let i of e.doc)i.stmt==="dir"&&(r=i.value);return r},"getDir"),GCt=o(function(e,t){return t.db.getClasses()},"getClasses"),VCt=o(async function(e,t,r,i){Z.info("REF0:"),Z.info("Drawing state diagram (v2)",t);let{securityLevel:n,state:a,layout:s}=ge();i.db.extract(i.db.getRootDocV2());let l=i.db.getData(),u=Fo(t,n);l.type=i.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,ge().look==="neo"?l.markers=["barbNeo"]:l.markers=["barb"],l.diagramId=t,await Zo(l,u);let d=8;try{(typeof i.db.getLinks=="function"?i.db.getLinks():new Map).forEach((p,m)=>{let g=typeof m=="string"?m:typeof m?.id=="string"?m.id:"";if(!g){Z.warn("\u26A0\uFE0F Invalid or missing stateId from key:",JSON.stringify(m));return}let y=u.node()?.querySelectorAll("g"),v;if(y?.forEach(w=>{w.textContent?.trim()===g&&(v=w)}),!v){Z.warn("\u26A0\uFE0F Could not find node matching text:",g);return}let x=v.parentNode;if(!x){Z.warn("\u26A0\uFE0F Node has no parent, cannot wrap:",g);return}let b=document.createElementNS("http://www.w3.org/2000/svg","a"),T=p.url.replace(/^"+|"+$/g,"");if(b.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",T),b.setAttribute("target","_blank"),p.tooltip){let w=p.tooltip.replace(/^"+|"+$/g,"");b.setAttribute("title",w)}x.replaceChild(b,v),b.appendChild(v),Z.info("\u{1F517} Wrapped node in
    tag for:",g,p.url)})}catch(f){Z.error("\u274C Error injecting clickable links:",f)}Zt.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,i.db.getDiagramTitle()),$s(u,d,ky,a?.useMaxWidth??!0)},"draw"),J6e={getClasses:GCt,draw:VCt,getDir:RW}});var gs,t_e,r_e,a_,ol,s_=z(()=>{"use strict";Ut();St();Xt();Ir();Ci();Q6e();LW();r_();gs={START_NODE:"[*]",START_TYPE:"start",END_NODE:"[*]",END_TYPE:"end",COLOR_KEYWORD:"color",FILL_KEYWORD:"fill",BG_FILL:"bgFill",STYLECLASS_SEP:","},t_e=o(()=>new Map,"newClassesList"),r_e=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),a_=o(e=>JSON.parse(JSON.stringify(e)),"clone"),ol=class{constructor(t){this.version=t;this.nodes=[];this.edges=[];this.rootDoc=[];this.classes=t_e();this.documents={root:r_e()};this.currentDocument=this.documents.root;this.startEndCount=0;this.dividerCnt=0;this.links=new Map;this.getAccTitle=kr;this.setAccTitle=Cr;this.getAccDescription=Sr;this.setAccDescription=wr;this.setDiagramTitle=Ar;this.getDiagramTitle=Er;this.clear(),this.setRootDoc=this.setRootDoc.bind(this),this.getDividerId=this.getDividerId.bind(this),this.setDirection=this.setDirection.bind(this),this.trimColon=this.trimColon.bind(this)}static{o(this,"StateDB")}static{this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3}}extract(t){this.clear(!0);for(let n of Array.isArray(t)?t:t.doc)switch(n.stmt){case Rf:this.addState(n.id.trim(),n.type,n.doc,n.description,n.note);break;case QT:this.addRelation(n.state1,n.state2,n.description);break;case O6e:this.addStyleClass(n.id.trim(),n.classes);break;case P6e:this.handleStyleDef(n);break;case B6e:this.setCssClass(n.id.trim(),n.styleClass);break;case"click":this.addLink(n.id,n.url,n.tooltip);break}let r=this.getStates(),i=ge();Z6e(),wy(void 0,this.getRootDocV2(),r,this.nodes,this.edges,!0,i.look,this.classes);for(let n of this.nodes)if(Array.isArray(n.label)){if(n.description=n.label.slice(1),n.isGroup&&n.description.length>0)throw new Error(`Group nodes can only have label. Remove the additional description for node [${n.id}]`);n.label=n.label[0]}}handleStyleDef(t){let r=t.id.trim().split(","),i=t.styleClass.split(",");for(let n of r){let a=this.getState(n);if(!a){let s=n.trim();this.addState(s),a=this.getState(s)}a&&(a.styles=i.map(s=>s.replace(/;/g,"")?.trim()))}}setRootDoc(t){Z.info("Setting root doc",t),this.rootDoc=t,this.version===1?this.extract(t):this.extract(this.getRootDocV2())}docTranslator(t,r,i){if(r.stmt===QT){this.docTranslator(t,r.state1,!0),this.docTranslator(t,r.state2,!1);return}if(r.stmt===Rf&&(r.id===gs.START_NODE?(r.id=t.id+(i?"_start":"_end"),r.start=i):r.id=r.id.trim()),r.stmt!==xm&&r.stmt!==Rf||!r.doc)return;let n=[],a=[];for(let s of r.doc)if(s.type===Q6){let l=a_(s);l.doc=a_(a),n.push(l),a=[]}else a.push(s);if(n.length>0&&a.length>0){let s={stmt:Rf,id:DM(),type:"divider",doc:a_(a)};n.push(a_(s)),r.doc=n}r.doc.forEach(s=>this.docTranslator(r,s,!0))}getRootDocV2(){return this.docTranslator({id:xm,stmt:xm},{id:xm,stmt:xm,doc:this.rootDoc},!0),{id:xm,doc:this.rootDoc}}addState(t,r=bm,i=void 0,n=void 0,a=void 0,s=void 0,l=void 0,u=void 0){let h=t?.trim();if(!this.currentDocument.states.has(h))Z.info("Adding state ",h,n),this.currentDocument.states.set(h,{stmt:Rf,id:h,descriptions:[],type:r,doc:i,note:a,classes:[],styles:[],textStyles:[]});else{let d=this.currentDocument.states.get(h);if(!d)throw new Error(`State not found: ${h}`);d.doc||(d.doc=i),d.type||(d.type=r)}if(n&&(Z.info("Setting state description",h,n),(Array.isArray(n)?n:[n]).forEach(f=>this.addDescription(h,f.trim()))),a){let d=this.currentDocument.states.get(h);if(!d)throw new Error(`State not found: ${h}`);d.note=a,d.note.text=vt.sanitizeText(d.note.text,ge())}s&&(Z.info("Setting state classes",h,s),(Array.isArray(s)?s:[s]).forEach(f=>this.setCssClass(h,f.trim()))),l&&(Z.info("Setting state styles",h,l),(Array.isArray(l)?l:[l]).forEach(f=>this.setStyle(h,f.trim()))),u&&(Z.info("Setting state styles",h,l),(Array.isArray(u)?u:[u]).forEach(f=>this.setTextStyle(h,f.trim())))}clear(t){this.nodes=[],this.edges=[],this.documents={root:r_e()},this.currentDocument=this.documents.root,this.startEndCount=0,this.classes=t_e(),t||(this.links=new Map,gr())}getState(t){return this.currentDocument.states.get(t)}getStates(){return this.currentDocument.states}logDocuments(){Z.info("Documents = ",this.documents)}getRelations(){return this.currentDocument.relations}addLink(t,r,i){this.links.set(t,{url:r,tooltip:i}),Z.warn("Adding link",t,r,i)}getLinks(){return this.links}startIdIfNeeded(t=""){return t===gs.START_NODE?(this.startEndCount++,`${gs.START_TYPE}${this.startEndCount}`):t}startTypeIfNeeded(t="",r=bm){return t===gs.START_NODE?gs.START_TYPE:r}endIdIfNeeded(t=""){return t===gs.END_NODE?(this.startEndCount++,`${gs.END_TYPE}${this.startEndCount}`):t}endTypeIfNeeded(t="",r=bm){return t===gs.END_NODE?gs.END_TYPE:r}addRelationObjs(t,r,i=""){let n=this.startIdIfNeeded(t.id.trim()),a=this.startTypeIfNeeded(t.id.trim(),t.type),s=this.startIdIfNeeded(r.id.trim()),l=this.startTypeIfNeeded(r.id.trim(),r.type);this.addState(n,a,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),this.addState(s,l,r.doc,r.description,r.note,r.classes,r.styles,r.textStyles),this.currentDocument.relations.push({id1:n,id2:s,relationTitle:vt.sanitizeText(i,ge())})}addRelation(t,r,i){if(typeof t=="object"&&typeof r=="object")this.addRelationObjs(t,r,i);else if(typeof t=="string"&&typeof r=="string"){let n=this.startIdIfNeeded(t.trim()),a=this.startTypeIfNeeded(t),s=this.endIdIfNeeded(r.trim()),l=this.endTypeIfNeeded(r);this.addState(n,a),this.addState(s,l),this.currentDocument.relations.push({id1:n,id2:s,relationTitle:i?vt.sanitizeText(i,ge()):void 0})}}addDescription(t,r){let i=this.currentDocument.states.get(t),n=r.startsWith(":")?r.replace(":","").trim():r;i?.descriptions?.push(vt.sanitizeText(n,ge()))}cleanupLabel(t){return t.startsWith(":")?t.slice(2).trim():t.trim()}getDividerId(){return this.dividerCnt++,`divider-id-${this.dividerCnt}`}addStyleClass(t,r=""){this.classes.has(t)||this.classes.set(t,{id:t,styles:[],textStyles:[]});let i=this.classes.get(t);r&&i&&r.split(gs.STYLECLASS_SEP).forEach(n=>{let a=n.replace(/([^;]*);/,"$1").trim();if(RegExp(gs.COLOR_KEYWORD).exec(n)){let l=a.replace(gs.FILL_KEYWORD,gs.BG_FILL).replace(gs.COLOR_KEYWORD,gs.FILL_KEYWORD);i.textStyles.push(l)}i.styles.push(a)})}getClasses(){return this.classes}setCssClass(t,r){t.split(",").forEach(i=>{let n=this.getState(i);if(!n){let a=i.trim();this.addState(a),n=this.getState(a)}n?.classes?.push(r)})}setStyle(t,r){this.getState(t)?.styles?.push(r)}setTextStyle(t,r){this.getState(t)?.textStyles?.push(r)}getDirectionStatement(){return this.rootDoc.find(t=>t.stmt==="dir")}getDirection(){return this.getDirectionStatement()?.value??"TB"}setDirection(t){let r=this.getDirectionStatement();r?r.value=t:this.rootDoc.unshift({stmt:"dir",value:t})}trimColon(t){return t.startsWith(":")?t.slice(1).trim():t.trim()}getData(){let t=ge();return{nodes:this.nodes,edges:this.edges,other:{},config:t,direction:RW(this.getRootDocV2())}}getConfig(){return ge().state}}});var qCt,o_,MW=z(()=>{"use strict";qCt=o(e=>` +defs [id$="-barbEnd"] { + fill: ${e.transitionColor}; + stroke: ${e.transitionColor}; + } +g.stateGroup text { + fill: ${e.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${e.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${e.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.stateGroup line { + stroke: ${e.lineColor}; + stroke-width: ${e.strokeWidth||1}; +} + +.transition { + stroke: ${e.transitionColor}; + stroke-width: ${e.strokeWidth||1}; + fill: none; +} + +.stateGroup .composit { + fill: ${e.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${e.noteBorderColor}; + fill: ${e.noteBkgColor}; + + text { + fill: ${e.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${e.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${e.edgeLabelBackground}; + p { + background-color: ${e.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${e.transitionLabelColor||e.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${e.transitionLabelColor||e.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${e.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${e.specialStateColor}; + stroke: ${e.specialStateColor}; +} + +.node .fork-join { + fill: ${e.specialStateColor}; + stroke: ${e.specialStateColor}; +} + +.node circle.state-end { + fill: ${e.innerEndBackground}; + stroke: ${e.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${e.compositeBackground||e.background}; + // stroke: ${e.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${e.stateBkg||e.mainBkg}; + stroke: ${e.stateBorder||e.nodeBorder}; + stroke-width: ${e.strokeWidth||1}px; +} +.node polygon { + fill: ${e.mainBkg}; + stroke: ${e.stateBorder||e.nodeBorder};; + stroke-width: ${e.strokeWidth||1}px; +} +[id$="-barbEnd"] { + fill: ${e.lineColor}; +} + +.statediagram-cluster rect { + fill: ${e.compositeTitleBackground}; + stroke: ${e.stateBorder||e.nodeBorder}; + stroke-width: ${e.strokeWidth||1}px; +} + +.cluster-label, .nodeLabel { + color: ${e.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${e.stateBorder||e.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${e.compositeBackground||e.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${e.altBackground?e.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${e.altBackground?e.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${e.noteBkgColor}; + stroke: ${e.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${e.noteBkgColor}; + stroke: ${e.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${e.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${e.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${e.noteTextColor}; +} + +[id$="-dependencyStart"], [id$="-dependencyEnd"] { + fill: ${e.lineColor}; + stroke: ${e.lineColor}; + stroke-width: ${e.strokeWidth||1}; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} + +[data-look="neo"].statediagram-cluster rect { + fill: ${e.mainBkg}; + stroke: ${e.useGradient?"url("+e.svgId+"-gradient)":e.stateBorder||e.nodeBorder}; + stroke-width: ${e.strokeWidth??1}; +} +[data-look="neo"].statediagram-cluster rect.outer { + rx: ${e.radius}px; + ry: ${e.radius}px; + filter: ${e.dropShadow?e.dropShadow.replace("url(#drop-shadow)",`url(${e.svgId}-drop-shadow)`):"none"} +} +`,"getStyles"),o_=qCt});var UCt,HCt,YCt,jCt,n_e,XCt,KCt,ZCt,QCt,NW,i_e,a_e,s_e=z(()=>{"use strict";Rr();s_();Xt();Ir();Ut();St();UCt=o(e=>e.append("circle").attr("class","start-state").attr("r",ge().state.sizeUnit).attr("cx",ge().state.padding+ge().state.sizeUnit).attr("cy",ge().state.padding+ge().state.sizeUnit),"drawStartState"),HCt=o(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",ge().state.textHeight).attr("class","divider").attr("x2",ge().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),YCt=o((e,t)=>{let r=e.append("text").attr("x",2*ge().state.padding).attr("y",ge().state.textHeight+2*ge().state.padding).attr("font-size",ge().state.fontSize).attr("class","state-title").text(t.id),i=r.node().getBBox();return e.insert("rect",":first-child").attr("x",ge().state.padding).attr("y",ge().state.padding).attr("width",i.width+2*ge().state.padding).attr("height",i.height+2*ge().state.padding).attr("rx",ge().state.radius),r},"drawSimpleState"),jCt=o((e,t)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*ge().state.padding).text(m);g||y.attr("dy",ge().state.textHeight)},"addTspan"),n=e.append("text").attr("x",2*ge().state.padding).attr("y",ge().state.textHeight+1.3*ge().state.padding).attr("font-size",ge().state.fontSize).attr("class","state-title").text(t.descriptions[0]).node().getBBox(),a=n.height,s=e.append("text").attr("x",ge().state.padding).attr("y",a+ge().state.padding*.4+ge().state.dividerMargin+ge().state.textHeight).attr("class","state-description"),l=!0,u=!0;t.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=e.append("line").attr("x1",ge().state.padding).attr("y1",ge().state.padding+a+ge().state.dividerMargin/2).attr("y2",ge().state.padding+a+ge().state.dividerMargin/2).attr("class","descr-divider"),d=s.node().getBBox(),f=Math.max(d.width,n.width);return h.attr("x2",f+3*ge().state.padding),e.insert("rect",":first-child").attr("x",ge().state.padding).attr("y",ge().state.padding).attr("width",f+2*ge().state.padding).attr("height",d.height+a+2*ge().state.padding).attr("rx",ge().state.radius),e},"drawDescrState"),n_e=o((e,t,r)=>{let i=ge().state.padding,n=2*ge().state.padding,a=e.node().getBBox(),s=a.width,l=a.x,u=e.append("text").attr("x",0).attr("y",ge().state.titleShift).attr("font-size",ge().state.fontSize).attr("class","state-title").text(t.id),d=u.node().getBBox().width+n,f=Math.max(d,s);f===s&&(f=f+n);let p,m=e.node().getBBox();t.doc,p=l-i,d>s&&(p=(s-f)/2+i),Math.abs(l-m.x)s&&(p=l-(d-s)/2);let g=1-ge().state.textHeight;return e.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",f).attr("height",m.height+ge().state.textHeight+ge().state.titleShift+1).attr("rx","0"),u.attr("x",p+i),d<=s&&u.attr("x",l+(f-n)/2-d/2+i),e.insert("rect",":first-child").attr("x",p).attr("y",ge().state.titleShift-ge().state.textHeight-ge().state.padding).attr("width",f).attr("height",ge().state.textHeight*3).attr("rx",ge().state.radius),e.insert("rect",":first-child").attr("x",p).attr("y",ge().state.titleShift-ge().state.textHeight-ge().state.padding).attr("width",f).attr("height",m.height+3+2*ge().state.textHeight).attr("rx",ge().state.radius),e},"addTitleAndBox"),XCt=o(e=>(e.append("circle").attr("class","end-state-outer").attr("r",ge().state.sizeUnit+ge().state.miniPadding).attr("cx",ge().state.padding+ge().state.sizeUnit+ge().state.miniPadding).attr("cy",ge().state.padding+ge().state.sizeUnit+ge().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",ge().state.sizeUnit).attr("cx",ge().state.padding+ge().state.sizeUnit+2).attr("cy",ge().state.padding+ge().state.sizeUnit+2)),"drawEndState"),KCt=o((e,t)=>{let r=ge().state.forkWidth,i=ge().state.forkHeight;if(t.parentId){let n=r;r=i,i=n}return e.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",i).attr("x",ge().state.padding).attr("y",ge().state.padding)},"drawForkJoinState"),ZCt=o((e,t,r,i)=>{let n=0,a=i.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=e.replace(/\r\n/g,"
    ");s=s.replace(/\n/g,"
    ");let l=s.split(vt.lineBreakRegex),u=1.25*ge().state.noteMargin;for(let h of l){let d=h.trim();if(d.length>0){let f=a.append("tspan");if(f.text(d),u===0){let p=f.node().getBBox();u+=p.height}n+=u,f.attr("x",t+ge().state.noteMargin),f.attr("y",r+n+1.25*ge().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:n}},"_drawLongText"),QCt=o((e,t)=>{t.attr("class","state-note");let r=t.append("rect").attr("x",0).attr("y",ge().state.padding),i=t.append("g"),{textWidth:n,textHeight:a}=ZCt(e,0,0,i);return r.attr("height",a+2*ge().state.noteMargin),r.attr("width",n+ge().state.noteMargin*2),r},"drawNote"),NW=o(function(e,t){let r=t.id,i={id:r,label:t.id,width:0,height:0},n=e.append("g").attr("id",r).attr("class","stateGroup");t.type==="start"&&UCt(n),t.type==="end"&&XCt(n),(t.type==="fork"||t.type==="join")&&KCt(n,t),t.type==="note"&&QCt(t.note.text,n),t.type==="divider"&&HCt(n),t.type==="default"&&t.descriptions.length===0&&YCt(n,t),t.type==="default"&&t.descriptions.length>0&&jCt(n,t);let a=n.node().getBBox();return i.width=a.width+2*ge().state.padding,i.height=a.height+2*ge().state.padding,i},"drawState"),i_e=0,a_e=o(function(e,t,r){let i=o(function(u){switch(u){case ol.relationType.AGGREGATION:return"aggregation";case ol.relationType.EXTENSION:return"extension";case ol.relationType.COMPOSITION:return"composition";case ol.relationType.DEPENDENCY:return"dependency"}},"getRelationType");t.points=t.points.filter(u=>!Number.isNaN(u.y));let n=t.points,a=_l().x(function(u){return u.x}).y(function(u){return u.y}).curve(Dl),s=e.append("path").attr("d",a(n)).attr("id","edge"+i_e).attr("class","transition"),l="";if(ge().state.arrowMarkerAbsolute&&(l=Hf(!0)),s.attr("marker-end","url("+l+"#"+i(ol.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=e.append("g").attr("class","stateLabel"),{x:h,y:d}=Zt.calcLabelPosition(t.points),f=vt.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=f.length;b++){let T=u.append("text").attr("text-anchor","middle").text(f[b]).attr("x",h).attr("y",d+p),w=T.node().getBBox();g=Math.max(g,w.width),y=Math.min(y,w.x),Z.info(w.x,h,d+p),p===0&&(p=T.node().getBBox().height,Z.info("Title height",p,d)),m.push(T)}let v=p*f.length;if(f.length>1){let b=(f.length-1)*p*.5;m.forEach((T,w)=>T.attr("y",d+w*p-b)),v=p*f.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-ge().state.padding/2).attr("y",d-v/2-ge().state.padding/2-3.5).attr("width",g+ge().state.padding).attr("height",v+ge().state.padding),Z.info(x)}i_e++},"drawEdge")});var Co,IW,JCt,ekt,tkt,rkt,o_e,l_e,c_e=z(()=>{"use strict";Rr();d9();Uo();St();Ir();s_e();Ut();Di();IW={},JCt=o(function(){},"setConf"),ekt=o(function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),tkt=o(function(e,t,r,i){Co=ge().state;let n=ge().securityLevel,a;n==="sandbox"&&(a=Je("#i"+t));let s=n==="sandbox"?Je(a.nodes()[0].contentDocument.body):Je("body"),l=n==="sandbox"?a.nodes()[0].contentDocument:document;Z.debug("Rendering diagram "+e);let u=s.select(`[id='${t}']`);ekt(u);let h=i.db.getRootDoc(),d=u.append("g").attr("id",t+"-root");o_e(h,d,void 0,!1,s,l,i);let f=Co.padding,p=u.node().getBBox(),m=p.width+f*2,g=p.height+f*2,y=m*1.75;Br(u,g,y,Co.useMaxWidth),u.attr("viewBox",`${p.x-Co.padding} ${p.y-Co.padding} `+m+" "+g)},"draw"),rkt=o(e=>e?e.length*Co.fontSizeFactor:1,"getLabelWidth"),o_e=o((e,t,r,i,n,a,s)=>{let l=new ui({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u{let C=w.parentElement,k=0,E=0;C&&(C.parentElement&&(k=C.parentElement.getBBox().width),E=parseInt(C.getAttribute("data-x-shift"),10),Number.isNaN(E)&&(E=0)),w.setAttribute("x1",0-E+8),w.setAttribute("x2",k-E-8)})):Z.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(Z.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),a_e(t,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*Co.padding,x.height=v.height+2*Co.padding,Z.debug("Doc rendered",x,l),x},"renderDoc"),l_e={setConf:JCt,draw:tkt}});var u_e={};xr(u_e,{diagram:()=>ikt});var ikt,h_e=z(()=>{"use strict";yW();s_();MW();c_e();ikt={parser:Z6,get db(){return new ol(1)},renderer:l_e,styles:o_,init:o(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}});var p_e={};xr(p_e,{diagram:()=>okt});var okt,m_e=z(()=>{"use strict";yW();s_();MW();LW();okt={parser:Z6,get db(){return new ol(2)},renderer:J6e,styles:o_,init:o(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}});var OW,v_e,x_e=z(()=>{"use strict";OW=(function(){var e=o(function(f,p,m,g){for(m=m||{},g=f.length;g--;m[f[g]]=p);return m},"o"),t=[6,8,10,11,12,14,16,17,18],r=[1,9],i=[1,10],n=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:o(function(p,m,g,y,v,x,b){var T=x.length-1;switch(v){case 1:return x[T-1];case 2:this.$=[];break;case 3:x[T-1].push(x[T]),this.$=x[T-1];break;case 4:case 5:this.$=x[T];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[T].substr(6)),this.$=x[T].substr(6);break;case 9:this.$=x[T].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[T].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[T].substr(8)),this.$=x[T].substr(8);break;case 13:y.addTask(x[T-1],x[T]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:i,14:n,16:a,17:s,18:l},e(t,[2,7],{1:[2,1]}),e(t,[2,3]),{9:15,11:r,12:i,14:n,16:a,17:s,18:l},e(t,[2,5]),e(t,[2,6]),e(t,[2,8]),{13:[1,16]},{15:[1,17]},e(t,[2,11]),e(t,[2,12]),{19:[1,18]},e(t,[2,4]),e(t,[2,9]),e(t,[2,10]),e(t,[2,13])],defaultActions:{},parseError:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,T="",w=0,C=0,k=0,E=2,A=1,N=x.slice.call(arguments,1),P=Object.create(this.lexer),I={yy:{}};for(var D in this.yy)Object.prototype.hasOwnProperty.call(this.yy,D)&&(I.yy[D]=this.yy[D]);P.setInput(p,I.yy),I.yy.lexer=P,I.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var _=P.yylloc;x.push(_);var R=P.options&&P.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function M(J){g.length=g.length-2*J,v.length=v.length-J,x.length=x.length-J}o(M,"popStack");function L(){var J;return J=y.pop()||P.lex()||A,typeof J!="number"&&(J instanceof Array&&(y=J,J=y.pop()),J=m.symbols_[J]||J),J}o(L,"lex");for(var B,O,$,G,F,V,H={},j,U,Q,Y;;){if($=g[g.length-1],this.defaultActions[$]?G=this.defaultActions[$]:((B===null||typeof B>"u")&&(B=L()),G=b[$]&&b[$][B]),typeof G>"u"||!G.length||!G[0]){var ae="";Y=[];for(j in b[$])this.terminals_[j]&&j>E&&Y.push("'"+this.terminals_[j]+"'");P.showPosition?ae="Parse error on line "+(w+1)+`: +`+P.showPosition()+` +Expecting `+Y.join(", ")+", got '"+(this.terminals_[B]||B)+"'":ae="Parse error on line "+(w+1)+": Unexpected "+(B==A?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(ae,{text:P.match,token:this.terminals_[B]||B,line:P.yylineno,loc:_,expected:Y})}if(G[0]instanceof Array&&G.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+B);switch(G[0]){case 1:g.push(B),v.push(P.yytext),x.push(P.yylloc),g.push(G[1]),B=null,O?(B=O,O=null):(C=P.yyleng,T=P.yytext,w=P.yylineno,_=P.yylloc,k>0&&k--);break;case 2:if(U=this.productions_[G[1]][1],H.$=v[v.length-U],H._$={first_line:x[x.length-(U||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(U||1)].first_column,last_column:x[x.length-1].last_column},R&&(H._$.range=[x[x.length-(U||1)].range[0],x[x.length-1].range[1]]),V=this.performAction.apply(H,[T,C,w,I.yy,G[1],v,x].concat(N)),typeof V<"u")return V;U&&(g=g.slice(0,-1*U*2),v=v.slice(0,-1*U),x=x.slice(0,-1*U)),g.push(this.productions_[G[1]][0]),v.push(H.$),x.push(H._$),Q=b[g[g.length-2]][g[g.length-1]],g.push(Q);break;case 3:return!0}}return!0},"parse")},h=(function(){var f={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;xm[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return f})();u.lexer=h;function d(){this.yy={}}return o(d,"Parser"),d.prototype=u,u.Parser=d,new d})();OW.parser=OW;v_e=OW});var Sy,PW,JT,eC,hkt,dkt,fkt,pkt,mkt,gkt,ykt,b_e,vkt,BW,T_e=z(()=>{"use strict";Ut();Ci();Sy="",PW=[],JT=[],eC=[],hkt=o(function(){PW.length=0,JT.length=0,Sy="",eC.length=0,gr()},"clear"),dkt=o(function(e){Sy=e,PW.push(e)},"addSection"),fkt=o(function(){return PW},"getSections"),pkt=o(function(){let e=b_e(),t=100,r=0;for(;!e&&r{r.people&&e.push(...r.people)}),[...new Set(e)].sort()},"updateActors"),gkt=o(function(e,t){let r=t.substr(1).split(":"),i=0,n=[];r.length===1?(i=Number(r[0]),n=[]):(i=Number(r[0]),n=r[1].split(","));let a=n.map(l=>l.trim()),s={section:Sy,type:Sy,people:a,task:e,score:i};eC.push(s)},"addTask"),ykt=o(function(e){let t={section:Sy,type:Sy,description:e,task:e,classes:[]};JT.push(t)},"addTaskOrg"),b_e=o(function(){let e=o(function(r){return eC[r].processed},"compileTask"),t=!0;for(let[r,i]of eC.entries())e(r),t=t&&i.processed;return t},"compileTasks"),vkt=o(function(){return mkt()},"getActors"),BW={getConfig:o(()=>ge().journey,"getConfig"),clear:hkt,setDiagramTitle:Ar,getDiagramTitle:Er,setAccTitle:Cr,getAccTitle:kr,setAccDescription:wr,getAccDescription:Sr,addSection:dkt,getSections:fkt,getTasks:pkt,addTask:gkt,addTaskOrg:ykt,getActors:vkt}});var xkt,C_e,k_e=z(()=>{"use strict";k1();xkt=o(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${e.textColor} + } + + .legend { + fill: ${e.textColor}; + font-family: ${e.fontFamily}; + } + + .label text { + fill: #333; + } + .label { + color: ${e.textColor} + } + + .face { + ${e.faceColor?`fill: ${e.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${e.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${e.fillType0?`fill: ${e.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${e.fillType0?`fill: ${e.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${e.fillType0?`fill: ${e.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${e.fillType0?`fill: ${e.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${e.fillType0?`fill: ${e.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${e.fillType0?`fill: ${e.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${e.fillType0?`fill: ${e.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${e.fillType0?`fill: ${e.fillType7}`:""}; + } + + .actor-0 { + ${e.actor0?`fill: ${e.actor0}`:""}; + } + .actor-1 { + ${e.actor1?`fill: ${e.actor1}`:""}; + } + .actor-2 { + ${e.actor2?`fill: ${e.actor2}`:""}; + } + .actor-3 { + ${e.actor3?`fill: ${e.actor3}`:""}; + } + .actor-4 { + ${e.actor4?`fill: ${e.actor4}`:""}; + } + .actor-5 { + ${e.actor5?`fill: ${e.actor5}`:""}; + } + ${Vc()} +`,"getStyles"),C_e=xkt});var $W,bkt,w_e,S_e,Tkt,Ckt,FW,kkt,wkt,E_e,Skt,Ey,A_e=z(()=>{"use strict";Rr();gp();$W=o(function(e,t){return mp(e,t)},"drawRect"),bkt=o(function(e,t){let i=e.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),n=e.append("g");n.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),n.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=Al().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}o(a,"smile");function s(u){let h=Al().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),t.score>3?a(n):t.score<3?s(n):l(n),i},"drawFace"),w_e=o(function(e,t){let r=e.append("circle");return r.attr("cx",t.cx),r.attr("cy",t.cy),r.attr("class","actor-"+t.pos),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("r",t.r),r.class!==void 0&&r.attr("class",r.class),t.title!==void 0&&r.append("title").text(t.title),r},"drawCircle"),S_e=o(function(e,t){return yee(e,t)},"drawText"),Tkt=o(function(e,t){function r(n,a,s,l,u){return n+","+a+" "+(n+s)+","+a+" "+(n+s)+","+(a+l-u)+" "+(n+s-u*1.2)+","+(a+l)+" "+n+","+(a+l)}o(r,"genPoints");let i=e.append("polygon");i.attr("points",r(t.x,t.y,50,20,7)),i.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,S_e(e,t)},"drawLabel"),Ckt=o(function(e,t,r){let i=e.append("g"),n=fa();n.x=t.x,n.y=t.y,n.fill=t.fill,n.width=r.width*t.taskCount+r.diagramMarginX*(t.taskCount-1),n.height=r.height,n.class="journey-section section-type-"+t.num,n.rx=3,n.ry=3,$W(i,n),E_e(r)(t.text,i,n.x,n.y,n.width,n.height,{class:"journey-section section-type-"+t.num},r,t.colour)},"drawSection"),FW=-1,kkt=o(function(e,t,r,i){let n=t.x+r.width/2,a=e.append("g");FW++,a.append("line").attr("id",i+"-task"+FW).attr("x1",n).attr("y1",t.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),bkt(a,{cx:n,cy:300+(5-t.score)*30,score:t.score});let l=fa();l.x=t.x,l.y=t.y,l.fill=t.fill,l.width=r.width,l.height=r.height,l.class="task task-type-"+t.num,l.rx=3,l.ry=3,$W(a,l);let u=t.x+14;t.people.forEach(h=>{let d=t.actors[h].color,f={cx:u,cy:t.y,r:7,fill:d,stroke:"#000",title:h,pos:t.actors[h].position};w_e(a,f),u+=10}),E_e(r)(t.task,a,l.x,l.y,l.width,l.height,{class:"task"},r,t.colour)},"drawTask"),wkt=o(function(e,t){Bw(e,t)},"drawBackgroundRect"),E_e=(function(){function e(n,a,s,l,u,h,d,f){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",f).style("text-anchor","middle").text(n);i(p,d)}o(e,"byText");function t(n,a,s,l,u,h,d,f,p){let{taskFontSize:m,taskFontFamily:g}=f,y=n.split(//gi);for(let v=0;v{let a=Ah[n].color,s={cx:20,cy:i,r:7,fill:a,stroke:"#000",pos:Ah[n].position};Ey.drawCircle(e,s);let l=e.append("text").attr("visibility","hidden").text(n),u=l.node().getBoundingClientRect().width;l.remove();let h=[];if(u<=r)h=[n];else{let d=n.split(" "),f="";l=e.append("text").attr("visibility","hidden"),d.forEach(p=>{let m=f?`${f} ${p}`:p;if(l.text(m),l.node().getBoundingClientRect().width>r){if(f&&h.push(f),f=p,l.text(p),l.node().getBoundingClientRect().width>r){let y="";for(let v of p)y+=v,l.text(y+"-"),l.node().getBoundingClientRect().width>r&&(h.push(y.slice(0,-1)+"-"),y=v);f=y}}else f=m}),f&&h.push(f),l.remove()}h.forEach((d,f)=>{let p={x:40,y:i+7+f*20,fill:"#666",text:d,textMargin:t.boxTextMargin??5},g=Ey.drawText(e,p).node().getBoundingClientRect().width;g>l_&&g>t.leftMargin-g&&(l_=g)}),i+=Math.max(20,h.length*20)})}var Ekt,Ah,l_,Zl,Mf,_kt,ll,zW,__e,Dkt,GW,D_e=z(()=>{"use strict";Rr();A_e();Ut();Di();Ekt=o(function(e){Object.keys(e).forEach(function(r){Zl[r]=e[r]})},"setConf"),Ah={},l_=0;o(Akt,"drawActorLegend");Zl=ge().journey,Mf=0,_kt=o(function(e,t,r,i){let n=ge(),a=n.journey.titleColor,s=n.journey.titleFontSize,l=n.journey.titleFontFamily,u=n.securityLevel,h;u==="sandbox"&&(h=Je("#i"+t));let d=u==="sandbox"?Je(h.nodes()[0].contentDocument.body):Je("body");ll.init();let f=d.select("#"+t);Ey.initGraphics(f,t);let p=i.db.getTasks(),m=i.db.getDiagramTitle(),g=i.db.getActors();for(let w in Ah)delete Ah[w];let y=0;g.forEach(w=>{Ah[w]={color:Zl.actorColours[y%Zl.actorColours.length],position:y},y++}),Akt(f),Mf=Zl.leftMargin+l_,ll.insert(0,0,Mf,Object.keys(Ah).length*50),Dkt(f,p,0,t);let v=ll.getBounds();m&&f.append("text").text(m).attr("x",Mf).attr("font-size",s).attr("font-weight","bold").attr("y",25).attr("fill",a).attr("font-family",l);let x=v.stopy-v.starty+2*Zl.diagramMarginY,b=Mf+v.stopx+2*Zl.diagramMarginX;Br(f,x,b,Zl.useMaxWidth),f.append("line").attr("x1",Mf).attr("y1",Zl.height*4).attr("x2",b-Mf-4).attr("y2",Zl.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#"+t+"-arrowhead)");let T=m?70:0;f.attr("viewBox",`${v.startx} -25 ${b} ${x+T}`),f.attr("preserveAspectRatio","xMinYMin meet"),f.attr("height",x+T+25)},"draw"),ll={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(e,t,r,i){e[t]===void 0?e[t]=r:e[t]=i(r,e[t])},"updateVal"),updateBounds:o(function(e,t,r,i){let n=ge().journey,a=this,s=0;function l(u){return o(function(d){s++;let f=a.sequenceItems.length-s+1;a.updateVal(d,"starty",t-f*n.boxMargin,Math.min),a.updateVal(d,"stopy",i+f*n.boxMargin,Math.max),a.updateVal(ll.data,"startx",e-f*n.boxMargin,Math.min),a.updateVal(ll.data,"stopx",r+f*n.boxMargin,Math.max),u!=="activation"&&(a.updateVal(d,"startx",e-f*n.boxMargin,Math.min),a.updateVal(d,"stopx",r+f*n.boxMargin,Math.max),a.updateVal(ll.data,"starty",t-f*n.boxMargin,Math.min),a.updateVal(ll.data,"stopy",i+f*n.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(e,t,r,i){let n=Math.min(e,r),a=Math.max(e,r),s=Math.min(t,i),l=Math.max(t,i);this.updateVal(ll.data,"startx",n,Math.min),this.updateVal(ll.data,"starty",s,Math.min),this.updateVal(ll.data,"stopx",a,Math.max),this.updateVal(ll.data,"stopy",l,Math.max),this.updateBounds(n,s,a,l)},"insert"),bumpVerticalPos:o(function(e){this.verticalPos=this.verticalPos+e,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},zW=Zl.sectionFills,__e=Zl.sectionColours,Dkt=o(function(e,t,r,i){let n=ge().journey,a="",s=n.height*2+n.diagramMarginY,l=r+s,u=0,h="#CCC",d="black",f=0;for(let[p,m]of t.entries()){if(a!==m.section){h=zW[u%zW.length],f=u%zW.length,d=__e[u%__e.length];let y=0,v=m.section;for(let b=p;b(Ah[v]&&(y[v]=Ah[v]),y),{});m.x=p*n.taskMargin+p*n.width+Mf,m.y=l,m.width=n.diagramMarginX,m.height=n.diagramMarginY,m.colour=d,m.fill=h,m.num=f,m.actors=g,Ey.drawTask(e,m,n,i),ll.insert(m.x,m.y,m.x+m.width+n.taskMargin,450)}},"drawTasks"),GW={setConf:Ekt,draw:_kt}});var R_e={};xr(R_e,{diagram:()=>Rkt});var Rkt,L_e=z(()=>{"use strict";x_e();T_e();k_e();D_e();Rkt={parser:v_e,db:BW,renderer:GW,styles:C_e,init:o(e=>{GW.setConf(e.journey),BW.clear()},"init")}});var WW,F_e,$_e=z(()=>{"use strict";WW=(function(){var e=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),t=[6,11,13,14,15,17,19,20,23,24],r=[1,12],i=[1,13],n=[1,14],a=[1,15],s=[1,16],l=[1,19],u=[1,20],h={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",7:"timeline",8:"timeline_lr",9:"timeline_td",11:"SPACE",13:"NEWLINE",14:"title",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",23:"period",24:"event"},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:o(function(m,g,y,v,x,b,T){var w=b.length-1;switch(x){case 1:return b[w-1];case 3:v.setDirection("LR");break;case 4:v.setDirection("TD");break;case 5:this.$=[];break;case 6:b[w-1].push(b[w]),this.$=b[w-1];break;case 7:case 8:this.$=b[w];break;case 9:case 10:this.$=[];break;case 11:v.getCommonDb().setDiagramTitle(b[w].substr(6)),this.$=b[w].substr(6);break;case 12:this.$=b[w].trim(),v.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=b[w].trim(),v.getCommonDb().setAccDescription(this.$);break;case 15:v.addSection(b[w].substr(8)),this.$=b[w].substr(8);break;case 18:v.addTask(b[w],0,""),this.$=b[w];break;case 19:v.addEvent(b[w].substr(2)),this.$=b[w];break}},"anonymous"),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},e(t,[2,5],{5:6}),e(t,[2,2]),e(t,[2,3]),e(t,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:r,15:i,17:n,19:a,20:s,21:17,22:18,23:l,24:u},e(t,[2,10],{1:[2,1]}),e(t,[2,6]),{12:21,14:r,15:i,17:n,19:a,20:s,21:17,22:18,23:l,24:u},e(t,[2,8]),e(t,[2,9]),e(t,[2,11]),{16:[1,22]},{18:[1,23]},e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),e(t,[2,17]),e(t,[2,18]),e(t,[2,19]),e(t,[2,7]),e(t,[2,12]),e(t,[2,13])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],T=this.table,w="",C=0,k=0,E=0,A=2,N=1,P=b.slice.call(arguments,1),I=Object.create(this.lexer),D={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(D.yy[_]=this.yy[_]);I.setInput(m,D.yy),D.yy.lexer=I,D.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var R=I.yylloc;b.push(R);var M=I.options&&I.options.ranges;typeof D.yy.parseError=="function"?this.parseError=D.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function L(te){y.length=y.length-2*te,x.length=x.length-te,b.length=b.length-te}o(L,"popStack");function B(){var te;return te=v.pop()||I.lex()||N,typeof te!="number"&&(te instanceof Array&&(v=te,te=v.pop()),te=g.symbols_[te]||te),te}o(B,"lex");for(var O,$,G,F,V,H,j={},U,Q,Y,ae;;){if(G=y[y.length-1],this.defaultActions[G]?F=this.defaultActions[G]:((O===null||typeof O>"u")&&(O=B()),F=T[G]&&T[G][O]),typeof F>"u"||!F.length||!F[0]){var J="";ae=[];for(U in T[G])this.terminals_[U]&&U>A&&ae.push("'"+this.terminals_[U]+"'");I.showPosition?J="Parse error on line "+(C+1)+`: +`+I.showPosition()+` +Expecting `+ae.join(", ")+", got '"+(this.terminals_[O]||O)+"'":J="Parse error on line "+(C+1)+": Unexpected "+(O==N?"end of input":"'"+(this.terminals_[O]||O)+"'"),this.parseError(J,{text:I.match,token:this.terminals_[O]||O,line:I.yylineno,loc:R,expected:ae})}if(F[0]instanceof Array&&F.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+O);switch(F[0]){case 1:y.push(O),x.push(I.yytext),b.push(I.yylloc),y.push(F[1]),O=null,$?(O=$,$=null):(k=I.yyleng,w=I.yytext,C=I.yylineno,R=I.yylloc,E>0&&E--);break;case 2:if(Q=this.productions_[F[1]][1],j.$=x[x.length-Q],j._$={first_line:b[b.length-(Q||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(Q||1)].first_column,last_column:b[b.length-1].last_column},M&&(j._$.range=[b[b.length-(Q||1)].range[0],b[b.length-1].range[1]]),H=this.performAction.apply(j,[w,k,C,D.yy,F[1],x,b].concat(P)),typeof H<"u")return H;Q&&(y=y.slice(0,-1*Q*2),x=x.slice(0,-1*Q),b=b.slice(0,-1*Q)),y.push(this.productions_[F[1]][0]),x.push(j.$),b.push(j._$),Y=T[y[y.length-2]][y[y.length-1]],y.push(Y);break;case 3:return!0}}return!0},"parse")},d=(function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;bg[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){case 0:break;case 1:break;case 2:return 13;case 3:break;case 4:break;case 5:return 8;case 6:return 9;case 7:return 7;case 8:return 14;case 9:return this.begin("acc_title"),15;break;case 10:return this.popState(),"acc_title_value";break;case 11:return this.begin("acc_descr"),17;break;case 12:return this.popState(),"acc_descr_value";break;case 13:this.begin("acc_descr_multiline");break;case 14:this.popState();break;case 15:return"acc_descr_multiline_value";case 16:return 20;case 17:return 24;case 18:return 23;case 19:return 6;case 20:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline[ \t]+LR\b)/i,/^(?:timeline[ \t]+TD\b)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[14,15],inclusive:!1},acc_descr:{rules:[12],inclusive:!1},acc_title:{rules:[10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,11,13,16,17,18,19,20],inclusive:!0}}};return p})();h.lexer=d;function f(){this.yy={}}return o(f,"Parser"),f.prototype=h,h.Parser=f,new f})();WW.parser=WW;F_e=WW});var HW={};xr(HW,{addEvent:()=>K_e,addSection:()=>H_e,addTask:()=>X_e,addTaskOrg:()=>Z_e,clear:()=>W_e,default:()=>$kt,getCommonDb:()=>V_e,getDirection:()=>U_e,getSections:()=>Y_e,getTasks:()=>j_e,setDirection:()=>q_e});var Ay,G_e,qW,UW,c_,_y,V_e,W_e,q_e,U_e,H_e,Y_e,j_e,X_e,K_e,Z_e,z_e,$kt,Q_e=z(()=>{"use strict";Ci();Ay="",G_e=0,qW="LR",UW=[],c_=[],_y=[],V_e=o(()=>wv,"getCommonDb"),W_e=o(function(){UW.length=0,c_.length=0,Ay="",_y.length=0,qW="LR",gr()},"clear"),q_e=o(function(e){qW=e},"setDirection"),U_e=o(function(){return qW},"getDirection"),H_e=o(function(e){Ay=e,UW.push(e)},"addSection"),Y_e=o(function(){return UW},"getSections"),j_e=o(function(){let e=z_e(),t=100,r=0;for(;!e&&rr.id===G_e-1).events.push(e)},"addEvent"),Z_e=o(function(e){let t={section:Ay,type:Ay,description:e,task:e,classes:[]};c_.push(t)},"addTaskOrg"),z_e=o(function(){let e=o(function(r){return _y[r].processed},"compileTask"),t=!0;for(let[r,i]of _y.entries())e(r),t=t&&i.processed;return t},"compileTasks"),$kt={clear:W_e,getCommonDb:V_e,getDirection:U_e,setDirection:q_e,addSection:H_e,getSections:Y_e,getTasks:j_e,addTask:X_e,addTaskOrg:Z_e,addEvent:K_e}});function r7e(e,t){e.each(function(){var r=Je(this),i=r.text().split(/(\s+|
    )/).reverse(),n,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let d=0;dt||n==="
    ")&&(a.pop(),h.text(a.join(" ").trim()),n==="
    "?a=[""]:a=[n],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(n))})}var J_e,u_,zkt,Gkt,e7e,Vkt,Wkt,YW,qkt,Ukt,Hkt,jW,t7e,Ykt,jkt,Xkt,Kkt,Fa,XW=z(()=>{"use strict";Rr();J_e=0,u_=o(function(e,t){let r=e.append("rect");return r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),r.attr("rx",t.rx),r.attr("ry",t.ry),t.class!==void 0&&r.attr("class",t.class),r},"drawRect"),zkt=o(function(e,t){let i=e.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),n=e.append("g");n.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),n.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=Al().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}o(a,"smile");function s(u){let h=Al().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),t.score>3?a(n):t.score<3?s(n):l(n),i},"drawFace"),Gkt=o(function(e,t){let r=e.append("circle");return r.attr("cx",t.cx),r.attr("cy",t.cy),r.attr("class","actor-"+t.pos),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("r",t.r),r.class!==void 0&&r.attr("class",r.class),t.title!==void 0&&r.append("title").text(t.title),r},"drawCircle"),e7e=o(function(e,t){let r=t.text.replace(//gi," "),i=e.append("text");i.attr("x",t.x),i.attr("y",t.y),i.attr("class","legend"),i.style("text-anchor",t.anchor),t.class!==void 0&&i.attr("class",t.class);let n=i.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(r),i},"drawText"),Vkt=o(function(e,t){function r(n,a,s,l,u){return n+","+a+" "+(n+s)+","+a+" "+(n+s)+","+(a+l-u)+" "+(n+s-u*1.2)+","+(a+l)+" "+n+","+(a+l)}o(r,"genPoints");let i=e.append("polygon");i.attr("points",r(t.x,t.y,50,20,7)),i.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,e7e(e,t)},"drawLabel"),Wkt=o(function(e,t,r){let i=e.append("g"),n=jW();n.x=t.x,n.y=t.y,n.fill=t.fill,n.width=r.width,n.height=r.height,n.class="journey-section section-type-"+t.num,n.rx=3,n.ry=3,u_(i,n),t7e(r)(t.text,i,n.x,n.y,n.width,n.height,{class:"journey-section section-type-"+t.num},r,t.colour)},"drawSection"),YW=-1,qkt=o(function(e,t,r,i){let n=t.x+r.width/2,a=e.append("g");YW++,a.append("line").attr("id",i+"-task"+YW).attr("x1",n).attr("y1",t.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),zkt(a,{cx:n,cy:300+(5-t.score)*30,score:t.score});let l=jW();l.x=t.x,l.y=t.y,l.fill=t.fill,l.width=r.width,l.height=r.height,l.class="task task-type-"+t.num,l.rx=3,l.ry=3,u_(a,l),t7e(r)(t.task,a,l.x,l.y,l.width,l.height,{class:"task"},r,t.colour)},"drawTask"),Ukt=o(function(e,t){u_(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),Hkt=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),jW=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),t7e=(function(){function e(n,a,s,l,u,h,d,f){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",f).style("text-anchor","middle").text(n);i(p,d)}o(e,"byText");function t(n,a,s,l,u,h,d,f,p){let{taskFontSize:m,taskFontFamily:g}=f,y=n.split(//gi);for(let v=0;v0?`M0 ${t.height-l} v${-t.height+2*l} q0,-${s},${s},-${s} h${t.width-2*l} q${s},0,${s},${s} v${t.height-l} H0 Z`:`M0 ${t.height-l} v${-(t.height-l)} h${t.width} v${t.height} H0 Z`;e.append("path").attr("id",i+"-node-"+J_e++).attr("class","node-bkg node-"+t.type).attr("d",u),a?.includes("redux")||e.append("line").attr("class","node-line-"+r).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},"defaultBkg"),Fa={drawRect:u_,drawCircle:Gkt,drawSection:Wkt,drawText:e7e,drawLabel:Vkt,drawTask:qkt,drawBackgroundRect:Ukt,getTextObj:Hkt,getNoteRect:jW,initGraphics:Ykt,drawNode:jkt,getVirtualNodeHeight:Xkt}});var Zkt,i7e,Qkt,n7e,a7e=z(()=>{"use strict";Rr();XW();St();Ut();Di();Zkt=o(function(e,t,r,i){let n=ge(),{look:a,theme:s,themeVariables:l}=n,{useGradient:u,gradientStart:h,gradientStop:d}=l,f=n.timeline?.leftMargin??50;Z.debug("timeline",i.db);let p=n.securityLevel,m;p==="sandbox"&&(m=Je("#i"+t));let y=(p==="sandbox"?Je(m.nodes()[0].contentDocument.body):Je("body")).select("#"+t);y.append("g");let v=i.db.getTasks(),x=i.db.getCommonDb().getDiagramTitle();Z.debug("task",v),Fa.initGraphics(y,t);let b=i.db.getSections();Z.debug("sections",b);let T=0,w=0,C=0,k=0,E=50+f,A=50;k=50;let N=0,P=!0;b.forEach(function(M){let L={number:N,descr:M,section:N,width:150,padding:20,maxHeight:T},B=Fa.getVirtualNodeHeight(y,L,n);Z.debug("sectionHeight before draw",B),T=Math.max(T,B+20)});let I=0,D=0;Z.debug("tasks.length",v.length);for(let[M,L]of v.entries()){let B={number:M,descr:L,section:L.section,width:150,padding:20,maxHeight:w},O=Fa.getVirtualNodeHeight(y,B,n);Z.debug("taskHeight before draw",O),w=Math.max(w,O+20),I=Math.max(I,L.events.length);let $=0;for(let G of L.events){let F={descr:G,section:L.section,number:L.section,width:150,padding:20,maxHeight:50};$+=Fa.getVirtualNodeHeight(y,F,n)}L.events.length>0&&($+=(L.events.length-1)*10),D=Math.max(D,$)}Z.debug("maxSectionHeight before draw",T),Z.debug("maxTaskHeight before draw",w),b&&b.length>0?b.forEach(M=>{let L=v.filter(G=>G.section===M),B={number:N,descr:M,section:N,width:200*Math.max(L.length,1)-50,padding:20,maxHeight:T};Z.debug("sectionNode",B);let O=y.append("g"),$=Fa.drawNode(O,B,N,n,t);Z.debug("sectionNode output",$),O.attr("transform",`translate(${E}, ${k})`),A+=T+50,L.length>0&&i7e(y,L,N,E,A,w,n,I,D,T,!1,t),E+=200*Math.max(L.length,1),A=k,N++}):(P=!1,i7e(y,v,N,E,A,w,n,I,D,T,!0,t));let _=y.node().getBBox();if(Z.debug("bounds",_),x&&y.append("text").text(x).attr("x",a==="neo"?_.x*2+f:_.width/2-f).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),C=P?T+w+150:w+100,y.append("g").attr("class","lineWrapper").append("line").attr("x1",f).attr("y1",C).attr("x2",_.width+3*f).attr("y2",C).attr("stroke-width",4).attr("stroke","black").attr("marker-end",`url(#${t}-arrowhead)`),a==="neo"&&u&&s!=="neutral"){let M=y.select("defs"),B=(M.empty()?y.append("defs"):M).append("linearGradient").attr("id",y.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");B.append("stop").attr("offset","0%").attr("stop-color",h).attr("stop-opacity",1),B.append("stop").attr("offset","100%").attr("stop-color",d).attr("stop-opacity",1)}Io(void 0,y,n.timeline?.padding??50,n.timeline?.useMaxWidth??!1)},"draw"),i7e=o(function(e,t,r,i,n,a,s,l,u,h,d,f){for(let p of t){let m={descr:p.task,section:r,number:r,width:150,padding:20,maxHeight:a};Z.debug("taskNode",m);let g=e.append("g").attr("class","taskWrapper"),v=Fa.drawNode(g,m,r,s,f).height;if(Z.debug("taskHeight after draw",v),g.attr("transform",`translate(${i}, ${n})`),a=Math.max(a,v),p.events){let x=e.append("g").attr("class","lineWrapper"),b=a;n+=100,b=b+Qkt(e,p.events,r,i,n,s,f),n-=100,x.append("line").attr("x1",i+190/2).attr("y1",n+a).attr("x2",i+190/2).attr("y2",n+a+100+u+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end",`url(#${f}-arrowhead)`).attr("stroke-dasharray","5,5")}i=i+200,d&&!s.timeline?.disableMulticolor&&r++}n=n-10},"drawTasks"),Qkt=o(function(e,t,r,i,n,a,s){let l=0,u=n;n=n+100;for(let h of t){let d={descr:h,section:r,number:r,width:150,padding:20,maxHeight:50};Z.debug("eventNode",d);let f=e.append("g").attr("class","eventWrapper"),m=Fa.drawNode(f,d,r,a,s,!0).height;l=l+m,f.attr("transform",`translate(${i}, ${n})`),n=n+10+m}return n=u,l},"drawEvents"),n7e={setConf:o(()=>{},"setConf"),draw:Zkt}});var h_,_h,Jkt,KW,ewt,c7e,twt,s7e,u7e,o7e,h7e,rwt,l7e,iwt,d7e,f7e=z(()=>{"use strict";XW();St();Ut();Di();ps();Xt();h_=200,_h=5,Jkt=h_+_h*2,KW=h_+100,ewt=KW+_h*2,c7e=10,twt=0,s7e=20,u7e=20,o7e=30,h7e=50,rwt=o(function(e,t,r,i){let n=ge(),a=n.timeline?.leftMargin??50;Z.debug("timeline",i.db);let s=bi(t);s.append("g");let l=i.db.getTasks(),u=i.db.getCommonDb().getDiagramTitle();Z.debug("task",l),Fa.initGraphics(s);let h=i.db.getSections();Z.debug("sections",h);let d=0,f=0,p=50+a,m=50,g=m,y=p,v=Jkt+u7e,x=ewt+h7e,b=y+v,T=0,w=h&&h.length>0,C=w?b:p+v,k=Math.max(50,v+x-_h*2);h.forEach(function(M){let L={number:T,descr:M,section:T,width:k,padding:_h,maxHeight:d},B=Fa.getVirtualNodeHeight(s,L,n);Z.debug("sectionHeight before draw",B),d=Math.max(d,B)});let E=0;Z.debug("tasks.length",l.length);for(let[M,L]of l.entries()){let B={number:M,descr:L,section:L.section,width:h_,padding:_h,maxHeight:f},O=Fa.getVirtualNodeHeight(s,B,n);Z.debug("taskHeight before draw",O),f=Math.max(f,O);let $=0;for(let G of L.events){let F={descr:G,section:L.section,number:L.section,width:KW,padding:_h,maxHeight:50};$+=Fa.getVirtualNodeHeight(s,F,n)}L.events.length>0&&($+=(L.events.length-1)*c7e),E=Math.max(E,$)+twt}Z.debug("maxSectionHeight before draw",d),Z.debug("maxTaskHeight before draw",f);let N=Math.max(f,E)+o7e;w?h.forEach(M=>{let L=l.filter(j=>j.section===M),B={number:T,descr:M,section:T,width:k,padding:_h,maxHeight:d};Z.debug("sectionNode",B);let O=s.append("g"),$=Fa.drawNode(O,B,T,n);Z.debug("sectionNode output",$);let G=C-v;O.attr("transform",`translate(${G}, ${m})`);let F=m+$.height+s7e;L.length>0&&l7e(s,L,T,C,F,f,n,N,!1);let V=L.length,H=$.height+s7e+N*Math.max(V,1)-(V>0?o7e*2:0);m+=H,T++}):l7e(s,l,T,C,m,f,n,N,!0);let P=s.node()?.getBBox();if(!P)throw new Error("bbox not found");if(Z.debug("bounds",P),u){if(s.append("text").text(u).attr("x",P.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),P=s.node()?.getBBox(),!P)throw new Error("bbox not found");Z.debug("bounds after title",P)}let[I]=Za(n.fontSize),D=(I??16)*2,_=(I??16)*.5+20,R=s.append("g").attr("class","lineWrapper");R.append("line").attr("x1",C).attr("y1",g-D).attr("x2",C).attr("y2",P.y+P.height+_).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),R.lower(),Io(void 0,s,n.timeline?.padding??50,n.timeline?.useMaxWidth??!1)},"draw"),l7e=o(function(e,t,r,i,n,a,s,l,u){for(let h of t){let d={descr:h.task,section:r,number:r,width:h_,padding:_h,maxHeight:a};Z.debug("taskNode",d);let f=e.append("g").attr("class","taskWrapper"),p=Fa.drawNode(f,d,r,s),m=p.height;Z.debug("taskHeight after draw",m);let g=i-u7e-p.width;if(f.attr("transform",`translate(${g}, ${n})`),a=Math.max(a,m),h.events&&h.events.length>0){let y=n,v=i+h7e;iwt(e,h.events,r,i,v,y,s)}n=n+l,u&&!s.timeline?.disableMulticolor&&r++}},"drawTasks"),iwt=o(function(e,t,r,i,n,a,s){let l=a;for(let u of t){let h={descr:u,section:r,number:r,width:KW,padding:_h,maxHeight:0};Z.debug("eventNode",h);let d=e.append("g").attr("class","eventWrapper"),p=Fa.drawNode(d,h,r,s).height;d.attr("transform",`translate(${n}, ${l})`);let m=e.append("g").attr("class","lineWrapper"),g=l+p/2;m.append("line").attr("x1",i).attr("y1",g).attr("x2",n).attr("y2",g).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5"),l=l+p+c7e}return l-a},"drawEvents"),d7e={setConf:o(()=>{},"setConf"),draw:rwt}});var nwt,awt,swt,p7e,m7e=z(()=>{"use strict";Cn();br();nwt=o(e=>{let{theme:t}=Nt(),r=t?.includes("dark"),i=t?.includes("color"),n=e.svgId?.replace(/^#/,"")??"",a=n?`url(#${n}-drop-shadow)`:e.dropShadow??"none",s="";for(let l=0;l{let t="";for(let r=0;r{let{theme:t}=Nt(),r=t?.includes("redux"),i=t==="neutral",n=e.svgId?.replace(/^#/,"")??"",a="";if(e.useGradient&&n&&e.THEME_COLOR_LIMIT&&!i)for(let s=0;slwt});var owt,lwt,y7e=z(()=>{"use strict";$_e();Q_e();a7e();f7e();m7e();owt={setConf:o(()=>{},"setConf"),draw:o((e,t,r,i)=>(i?.db?.getDirection?.()??"LR")==="TD"?d7e.draw(e,t,r,i):n7e.draw(e,t,r,i),"draw")},lwt={db:HW,renderer:owt,parser:F_e,styles:p7e}});var ZW,b7e,T7e=z(()=>{"use strict";ZW=(function(){var e=o(function(w,C,k,E){for(k=k||{},E=w.length;E--;k[w[E]]=C);return k},"o"),t=[1,4],r=[1,13],i=[1,12],n=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],d=[1,24],f=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:o(function(C,k,E,A,N,P,I){var D=P.length-1;switch(N){case 6:case 7:return A;case 8:A.getLogger().trace("Stop NL ");break;case 9:A.getLogger().trace("Stop EOF ");break;case 11:A.getLogger().trace("Stop NL2 ");break;case 12:A.getLogger().trace("Stop EOF2 ");break;case 15:A.getLogger().info("Node: ",P[D].id),A.addNode(P[D-1].length,P[D].id,P[D].descr,P[D].type);break;case 16:A.getLogger().trace("Icon: ",P[D]),A.decorateNode({icon:P[D]});break;case 17:case 21:A.decorateNode({class:P[D]});break;case 18:A.getLogger().trace("SPACELIST");break;case 19:A.getLogger().trace("Node: ",P[D].id),A.addNode(0,P[D].id,P[D].descr,P[D].type);break;case 20:A.decorateNode({icon:P[D]});break;case 25:A.getLogger().trace("node found ..",P[D-2]),this.$={id:P[D-1],descr:P[D-1],type:A.getType(P[D-2],P[D])};break;case 26:this.$={id:P[D],descr:P[D],type:A.nodeType.DEFAULT};break;case 27:A.getLogger().trace("node found ..",P[D-3]),this.$={id:P[D-3],descr:P[D-1],type:A.getType(P[D-2],P[D])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:r,7:[1,10],9:9,12:11,13:i,14:14,15:n,16:a,17:17,18:18,19:s,22:l},e(u,[2,3]),{1:[2,2]},e(u,[2,4]),e(u,[2,5]),{1:[2,6],6:r,12:21,13:i,14:14,15:n,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:i,14:14,15:n,16:a,17:17,18:18,19:s,22:l},{6:h,7:d,10:23,11:f},e(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),e(p,[2,18]),e(p,[2,19]),e(p,[2,20]),e(p,[2,21]),e(p,[2,23]),e(p,[2,24]),e(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:d,10:32,11:f},{1:[2,7],6:r,12:21,13:i,14:14,15:n,16:a,17:17,18:18,19:s,22:l},e(m,[2,14],{7:g,11:y}),e(v,[2,8]),e(v,[2,9]),e(v,[2,10]),e(p,[2,15]),e(p,[2,16]),e(p,[2,17]),{20:[1,35]},{21:[1,36]},e(m,[2,13],{7:g,11:y}),e(v,[2,11]),e(v,[2,12]),{21:[1,37]},e(p,[2,25]),e(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(C,k){if(k.recoverable)this.trace(C);else{var E=new Error(C);throw E.hash=k,E}},"parseError"),parse:o(function(C){var k=this,E=[0],A=[],N=[null],P=[],I=this.table,D="",_=0,R=0,M=0,L=2,B=1,O=P.slice.call(arguments,1),$=Object.create(this.lexer),G={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(G.yy[F]=this.yy[F]);$.setInput(C,G.yy),G.yy.lexer=$,G.yy.parser=this,typeof $.yylloc>"u"&&($.yylloc={});var V=$.yylloc;P.push(V);var H=$.options&&$.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(we){E.length=E.length-2*we,N.length=N.length-we,P.length=P.length-we}o(j,"popStack");function U(){var we;return we=A.pop()||$.lex()||B,typeof we!="number"&&(we instanceof Array&&(A=we,we=A.pop()),we=k.symbols_[we]||we),we}o(U,"lex");for(var Q,Y,ae,J,te,re,ee={},Te,ue,De,Ie;;){if(ae=E[E.length-1],this.defaultActions[ae]?J=this.defaultActions[ae]:((Q===null||typeof Q>"u")&&(Q=U()),J=I[ae]&&I[ae][Q]),typeof J>"u"||!J.length||!J[0]){var Ee="";Ie=[];for(Te in I[ae])this.terminals_[Te]&&Te>L&&Ie.push("'"+this.terminals_[Te]+"'");$.showPosition?Ee="Parse error on line "+(_+1)+`: +`+$.showPosition()+` +Expecting `+Ie.join(", ")+", got '"+(this.terminals_[Q]||Q)+"'":Ee="Parse error on line "+(_+1)+": Unexpected "+(Q==B?"end of input":"'"+(this.terminals_[Q]||Q)+"'"),this.parseError(Ee,{text:$.match,token:this.terminals_[Q]||Q,line:$.yylineno,loc:V,expected:Ie})}if(J[0]instanceof Array&&J.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ae+", token: "+Q);switch(J[0]){case 1:E.push(Q),N.push($.yytext),P.push($.yylloc),E.push(J[1]),Q=null,Y?(Q=Y,Y=null):(R=$.yyleng,D=$.yytext,_=$.yylineno,V=$.yylloc,M>0&&M--);break;case 2:if(ue=this.productions_[J[1]][1],ee.$=N[N.length-ue],ee._$={first_line:P[P.length-(ue||1)].first_line,last_line:P[P.length-1].last_line,first_column:P[P.length-(ue||1)].first_column,last_column:P[P.length-1].last_column},H&&(ee._$.range=[P[P.length-(ue||1)].range[0],P[P.length-1].range[1]]),re=this.performAction.apply(ee,[D,R,_,G.yy,J[1],N,P].concat(O)),typeof re<"u")return re;ue&&(E=E.slice(0,-1*ue*2),N=N.slice(0,-1*ue),P=P.slice(0,-1*ue)),E.push(this.productions_[J[1]][0]),N.push(ee.$),P.push(ee._$),De=I[E[E.length-2]][E[E.length-1]],E.push(De);break;case 3:return!0}}return!0},"parse")},b=(function(){var w={EOF:1,parseError:o(function(k,E){if(this.yy.parser)this.yy.parser.parseError(k,E);else throw new Error(k)},"parseError"),setInput:o(function(C,k){return this.yy=k||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var k=C.match(/(?:\r\n?|\n).*/g);return k?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},"input"),unput:o(function(C){var k=C.length,E=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;var A=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var N=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===A.length?this.yylloc.first_column:0)+A[A.length-E.length].length-E[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[N[0],N[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(C){this.unput(this.match.slice(C))},"less"),pastInput:o(function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var C=this.pastInput(),k=new Array(C.length+1).join("-");return C+this.upcomingInput()+` +`+k+"^"},"showPosition"),test_match:o(function(C,k){var E,A,N;if(this.options.backtrack_lexer&&(N={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(N.yylloc.range=this.yylloc.range.slice(0))),A=C[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],E=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var P in N)this[P]=N[P];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,k,E,A;this._more||(this.yytext="",this.match="");for(var N=this._currentRules(),P=0;Pk[0].length)){if(k=E,A=P,this.options.backtrack_lexer){if(C=this.test_match(E,N[P]),C!==!1)return C;if(this._backtrack){k=!1;continue}else return!1}else if(!this.options.flex)break}return k?(C=this.test_match(k,N[A]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var k=this.next();return k||this.lex()},"lex"),begin:o(function(k){this.conditionStack.push(k)},"begin"),popState:o(function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:"INITIAL"},"topState"),pushState:o(function(k){this.begin(k)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(k,E,A,N){var P=N;switch(A){case 0:return k.getLogger().trace("Found comment",E.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:k.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return k.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:k.getLogger().trace("end icon"),this.popState();break;case 10:return k.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return k.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return k.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return k.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:k.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return k.getLogger().trace("description:",E.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),k.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),k.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),k.getLogger().trace("node end ...",E.yytext),"NODE_DEND";break;case 30:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return k.getLogger().trace("Long description:",E.yytext),20;break;case 36:return k.getLogger().trace("Long description:",E.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return w})();x.lexer=b;function T(){this.yy={}}return o(T,"Parser"),T.prototype=x,x.Parser=T,new T})();ZW.parser=ZW;b7e=ZW});function C7e(e,t=0){return(Sa[e[t+0]]+Sa[e[t+1]]+Sa[e[t+2]]+Sa[e[t+3]]+"-"+Sa[e[t+4]]+Sa[e[t+5]]+"-"+Sa[e[t+6]]+Sa[e[t+7]]+"-"+Sa[e[t+8]]+Sa[e[t+9]]+"-"+Sa[e[t+10]]+Sa[e[t+11]]+Sa[e[t+12]]+Sa[e[t+13]]+Sa[e[t+14]]+Sa[e[t+15]]).toLowerCase()}var Sa,k7e=z(()=>{"use strict";Sa=[];for(let e=0;e<256;++e)Sa.push((e+256).toString(16).slice(1));o(C7e,"unsafeStringify")});function QW(){return crypto.getRandomValues(dwt)}var dwt,w7e=z(()=>{"use strict";dwt=new Uint8Array(16);o(QW,"rng")});function fwt(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():pwt(e,t,r)}function pwt(e,t,r){e=e||{};let i=e.random??e.rng?.()??QW();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return C7e(i)}var JW,S7e=z(()=>{"use strict";w7e();k7e();o(fwt,"v4");o(pwt,"_v4");JW=fwt});var E7e=z(()=>{"use strict";S7e()});var A7e,_7e=z(()=>{"use strict";_s();Xt();A7e=12});var Dh,d_,D7e=z(()=>{"use strict";Ut();E7e();Ir();St();Bn();br();_7e();Dh={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},d_=class{constructor(){this.nodes=[];this.count=0;this.elements={};this.getLogger=this.getLogger.bind(this),this.nodeType=Dh,this.clear(),this.getType=this.getType.bind(this),this.getElementById=this.getElementById.bind(this),this.getParent=this.getParent.bind(this),this.getMindmap=this.getMindmap.bind(this),this.addNode=this.addNode.bind(this),this.decorateNode=this.decorateNode.bind(this)}static{o(this,"MindmapDB")}clear(){this.nodes=[],this.count=0,this.elements={},this.baseLevel=void 0}getParent(t){for(let r=this.nodes.length-1;r>=0;r--)if(this.nodes[r].level0?this.nodes[0]:null}addNode(t,r,i,n){Z.info("addNode",t,r,i,n);let a=!1;this.nodes.length===0?(this.baseLevel=t,t=0,a=!0):this.baseLevel!==void 0&&(t=t-this.baseLevel,a=!1);let s=ge(),l=s.mindmap?.padding??or.mindmap.padding;switch(n){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:l*=2;break}let u={id:this.count++,nodeId:fr(r,s),level:t,descr:fr(i,s),type:n,children:[],width:s.mindmap?.maxNodeWidth??or.mindmap.maxNodeWidth,padding:l,isRoot:a},h=this.getParent(t);if(h)h.children.push(u),this.nodes.push(u);else if(a)this.nodes.push(u);else throw new Error(`There can be only one root. No parent could be found for ("${u.descr}")`)}getType(t,r){switch(Z.debug("In get type",t,r),t){case"[":return this.nodeType.RECT;case"(":return r===")"?this.nodeType.ROUNDED_RECT:this.nodeType.CLOUD;case"((":return this.nodeType.CIRCLE;case")":return this.nodeType.CLOUD;case"))":return this.nodeType.BANG;case"{{":return this.nodeType.HEXAGON;default:return this.nodeType.DEFAULT}}setElementForId(t,r){this.elements[t]=r}getElementById(t){return this.elements[t]}decorateNode(t){if(!t)return;let r=ge(),i=this.nodes[this.nodes.length-1];t.icon&&(i.icon=fr(t.icon,r)),t.class&&(i.class=fr(t.class,r))}type2Str(t){switch(t){case this.nodeType.DEFAULT:return"no-border";case this.nodeType.RECT:return"rect";case this.nodeType.ROUNDED_RECT:return"rounded-rect";case this.nodeType.CIRCLE:return"circle";case this.nodeType.CLOUD:return"cloud";case this.nodeType.BANG:return"bang";case this.nodeType.HEXAGON:return"hexgon";default:return"no-border"}}assignSections(t,r){if(t.level===0?t.section=void 0:t.section=r,t.children)for(let[i,n]of t.children.entries()){let a=t.level===0?i%(A7e-1):r;this.assignSections(n,a)}}flattenNodes(t,r){let i=ge(),n=["mindmap-node"];t.isRoot===!0?n.push("section-root","section--1"):t.section!==void 0&&n.push(`section-${t.section}`),t.class&&n.push(t.class);let a=n.join(" "),s=o(u=>{let d=(i.theme?.toLowerCase()??"").includes("redux");switch(u){case Dh.CIRCLE:return"mindmapCircle";case Dh.RECT:return"rect";case Dh.ROUNDED_RECT:return"rounded";case Dh.CLOUD:return"cloud";case Dh.BANG:return"bang";case Dh.HEXAGON:return"hexagon";case Dh.DEFAULT:return d?"rounded":"defaultMindmapNode";case Dh.NO_BORDER:default:return"rect"}},"getShapeFromType"),l={id:t.id.toString(),domId:"node_"+t.id.toString(),label:t.descr,labelType:"markdown",isGroup:!1,shape:s(t.type),width:t.width,height:t.height??0,padding:t.padding,cssClasses:a,cssStyles:[],look:i.look,icon:t.icon,x:t.x,y:t.y,level:t.level,nodeId:t.nodeId,type:t.type,section:t.section};if(r.push(l),t.children)for(let u of t.children)this.flattenNodes(u,r)}generateEdges(t,r){if(!t.children)return;let i=ge();for(let n of t.children){let a="edge";n.section!==void 0&&(a+=` section-edge-${n.section}`);let s=t.level+1;a+=` edge-depth-${s}`;let l={id:`edge_${t.id}_${n.id}`,start:t.id.toString(),end:n.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:i.look,classes:a,depth:t.level,section:n.section};r.push(l),this.generateEdges(n,r)}}getData(){let t=this.getMindmap(),r=ge(),n=JH().layout!==void 0,a=r;if(n||(a.layout="cose-bilkent"),!t)return{nodes:[],edges:[],config:a};Z.debug("getData: mindmapRoot",t,r),this.assignSections(t);let s=[],l=[];this.flattenNodes(t,s),this.generateEdges(t,l),Z.debug(`getData: processed ${s.length} nodes and ${l.length} edges`);let u=new Map;for(let h of s)u.set(h.id,{shape:h.shape,width:h.width,height:h.height,padding:h.padding});return{nodes:s,edges:l,config:a,rootNode:t,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(u),type:"mindmap",diagramId:"mindmap-"+JW()}}getLogger(){return Z}}});var mwt,R7e,L7e=z(()=>{"use strict";St();Lp();tf();rf();Bn();br();mwt=o(async(e,t,r,i)=>{Z.debug(`Rendering mindmap diagram +`+e);let n=i.db,a=n.getData(),s=Fo(t,a.config.securityLevel);if(a.type=i.type,a.layoutAlgorithm=Gc(a.config.layout,{fallback:"cose-bilkent"}),a.diagramId=t,!n.getMindmap())return;a.nodes.forEach(p=>{p.shape==="rounded"?(p.radius=15,p.taper=15,p.stroke="none",p.width=0,p.padding=15):p.shape==="circle"?p.padding=10:p.shape==="rect"?(p.width=0,p.padding=10):p.shape==="hexagon"&&(p.width=0,p.height=0)}),await Zo(a,s);let{themeVariables:u}=Nt(),{useGradient:h,gradientStart:d,gradientStop:f}=u;if(h&&d&&f){let p=s.attr("id"),m=s.append("defs").append("linearGradient").attr("id",`${p}-gradient`).attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");m.append("stop").attr("offset","0%").attr("stop-color",d).attr("stop-opacity",1),m.append("stop").attr("offset","100%").attr("stop-color",f).attr("stop-opacity",1)}$s(s,a.config.mindmap?.padding??or.mindmap.padding,"mindmapDiagram",a.config.mindmap?.useMaxWidth??or.mindmap.useMaxWidth)},"draw"),R7e={draw:mwt}});var gwt,ywt,vwt,M7e,N7e=z(()=>{"use strict";Cn();gwt=o(e=>{let{theme:t,look:r}=e,i="";for(let n=0;n{let i="";for(let n=0;n{let{theme:t}=e,r=e.svgId,i=e.dropShadow?e.dropShadow.replace("url(#drop-shadow)",`url(${r}-drop-shadow)`):"none";return` + .edge { + stroke-width: 3; + } + ${gwt(e)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${e.git0}; + } + .section-root text { + fill: ${e.gitBranchLabel0}; + } + .section-root span { + color: ${t?.includes("redux")?e.nodeBorder:e.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } + [data-look="neo"].mindmap-node { + filter: ${i}; + } + [data-look="neo"].mindmap-node.section-root rect, [data-look="neo"].mindmap-node.section-root path, [data-look="neo"].mindmap-node.section-root circle, [data-look="neo"].mindmap-node.section-root polygon { + fill: ${t?.includes("redux")?e.mainBkg:e.git0}; + } + [data-look="neo"].mindmap-node.section-root .text-inner-tspan { + fill: ${t?.includes("redux")?e.nodeBorder:e["cScaleLabel"+(t==="neutral"?1:0)]}; + } + ${e.useGradient&&r&&e.mainBkg?ywt(e.THEME_COLOR_LIMIT,r,e.mainBkg):""} +`},"getStyles"),M7e=vwt});var I7e={};xr(I7e,{diagram:()=>xwt});var xwt,O7e=z(()=>{"use strict";T7e();D7e();L7e();N7e();xwt={get db(){return new d_},renderer:R7e,parser:b7e,styles:M7e}});var eq,F7e,$7e=z(()=>{"use strict";eq=(function(){var e=o(function(E,A,N,P){for(N=N||{},P=E.length;P--;N[E[P]]=A);return N},"o"),t=[1,4],r=[1,13],i=[1,12],n=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],d=[1,24],f=[1,25],p=[6,7,11],m=[1,31],g=[6,7,11,24],y=[1,6,13,16,17,20,23],v=[1,35],x=[1,36],b=[1,6,7,11,13,16,17,20,23],T=[1,38],w={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:o(function(A,N,P,I,D,_,R){var M=_.length-1;switch(D){case 6:case 7:return I;case 8:I.getLogger().trace("Stop NL ");break;case 9:I.getLogger().trace("Stop EOF ");break;case 11:I.getLogger().trace("Stop NL2 ");break;case 12:I.getLogger().trace("Stop EOF2 ");break;case 15:I.getLogger().info("Node: ",_[M-1].id),I.addNode(_[M-2].length,_[M-1].id,_[M-1].descr,_[M-1].type,_[M]);break;case 16:I.getLogger().info("Node: ",_[M].id),I.addNode(_[M-1].length,_[M].id,_[M].descr,_[M].type);break;case 17:I.getLogger().trace("Icon: ",_[M]),I.decorateNode({icon:_[M]});break;case 18:case 23:I.decorateNode({class:_[M]});break;case 19:I.getLogger().trace("SPACELIST");break;case 20:I.getLogger().trace("Node: ",_[M-1].id),I.addNode(0,_[M-1].id,_[M-1].descr,_[M-1].type,_[M]);break;case 21:I.getLogger().trace("Node: ",_[M].id),I.addNode(0,_[M].id,_[M].descr,_[M].type);break;case 22:I.decorateNode({icon:_[M]});break;case 27:I.getLogger().trace("node found ..",_[M-2]),this.$={id:_[M-1],descr:_[M-1],type:I.getType(_[M-2],_[M])};break;case 28:this.$={id:_[M],descr:_[M],type:0};break;case 29:I.getLogger().trace("node found ..",_[M-3]),this.$={id:_[M-3],descr:_[M-1],type:I.getType(_[M-2],_[M])};break;case 30:this.$=_[M-1]+_[M];break;case 31:this.$=_[M];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:r,7:[1,10],9:9,12:11,13:i,14:14,16:n,17:a,18:17,19:18,20:s,23:l},e(u,[2,3]),{1:[2,2]},e(u,[2,4]),e(u,[2,5]),{1:[2,6],6:r,12:21,13:i,14:14,16:n,17:a,18:17,19:18,20:s,23:l},{6:r,9:22,12:11,13:i,14:14,16:n,17:a,18:17,19:18,20:s,23:l},{6:h,7:d,10:23,11:f},e(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:s,23:l}),e(p,[2,19]),e(p,[2,21],{15:30,24:m}),e(p,[2,22]),e(p,[2,23]),e(g,[2,25]),e(g,[2,26]),e(g,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:d,10:34,11:f},{1:[2,7],6:r,12:21,13:i,14:14,16:n,17:a,18:17,19:18,20:s,23:l},e(y,[2,14],{7:v,11:x}),e(b,[2,8]),e(b,[2,9]),e(b,[2,10]),e(p,[2,16],{15:37,24:m}),e(p,[2,17]),e(p,[2,18]),e(p,[2,20],{24:T}),e(g,[2,31]),{21:[1,39]},{22:[1,40]},e(y,[2,13],{7:v,11:x}),e(b,[2,11]),e(b,[2,12]),e(p,[2,15],{24:T}),e(g,[2,30]),{22:[1,41]},e(g,[2,27]),e(g,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(A,N){if(N.recoverable)this.trace(A);else{var P=new Error(A);throw P.hash=N,P}},"parseError"),parse:o(function(A){var N=this,P=[0],I=[],D=[null],_=[],R=this.table,M="",L=0,B=0,O=0,$=2,G=1,F=_.slice.call(arguments,1),V=Object.create(this.lexer),H={yy:{}};for(var j in this.yy)Object.prototype.hasOwnProperty.call(this.yy,j)&&(H.yy[j]=this.yy[j]);V.setInput(A,H.yy),H.yy.lexer=V,H.yy.parser=this,typeof V.yylloc>"u"&&(V.yylloc={});var U=V.yylloc;_.push(U);var Q=V.options&&V.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Y(de){P.length=P.length-2*de,D.length=D.length-de,_.length=_.length-de}o(Y,"popStack");function ae(){var de;return de=I.pop()||V.lex()||G,typeof de!="number"&&(de instanceof Array&&(I=de,de=I.pop()),de=N.symbols_[de]||de),de}o(ae,"lex");for(var J,te,re,ee,Te,ue,De={},Ie,Ee,we,Me;;){if(re=P[P.length-1],this.defaultActions[re]?ee=this.defaultActions[re]:((J===null||typeof J>"u")&&(J=ae()),ee=R[re]&&R[re][J]),typeof ee>"u"||!ee.length||!ee[0]){var $e="";Me=[];for(Ie in R[re])this.terminals_[Ie]&&Ie>$&&Me.push("'"+this.terminals_[Ie]+"'");V.showPosition?$e="Parse error on line "+(L+1)+`: +`+V.showPosition()+` +Expecting `+Me.join(", ")+", got '"+(this.terminals_[J]||J)+"'":$e="Parse error on line "+(L+1)+": Unexpected "+(J==G?"end of input":"'"+(this.terminals_[J]||J)+"'"),this.parseError($e,{text:V.match,token:this.terminals_[J]||J,line:V.yylineno,loc:U,expected:Me})}if(ee[0]instanceof Array&&ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+re+", token: "+J);switch(ee[0]){case 1:P.push(J),D.push(V.yytext),_.push(V.yylloc),P.push(ee[1]),J=null,te?(J=te,te=null):(B=V.yyleng,M=V.yytext,L=V.yylineno,U=V.yylloc,O>0&&O--);break;case 2:if(Ee=this.productions_[ee[1]][1],De.$=D[D.length-Ee],De._$={first_line:_[_.length-(Ee||1)].first_line,last_line:_[_.length-1].last_line,first_column:_[_.length-(Ee||1)].first_column,last_column:_[_.length-1].last_column},Q&&(De._$.range=[_[_.length-(Ee||1)].range[0],_[_.length-1].range[1]]),ue=this.performAction.apply(De,[M,B,L,H.yy,ee[1],D,_].concat(F)),typeof ue<"u")return ue;Ee&&(P=P.slice(0,-1*Ee*2),D=D.slice(0,-1*Ee),_=_.slice(0,-1*Ee)),P.push(this.productions_[ee[1]][0]),D.push(De.$),_.push(De._$),we=R[P[P.length-2]][P[P.length-1]],P.push(we);break;case 3:return!0}}return!0},"parse")},C=(function(){var E={EOF:1,parseError:o(function(N,P){if(this.yy.parser)this.yy.parser.parseError(N,P);else throw new Error(N)},"parseError"),setInput:o(function(A,N){return this.yy=N||this.yy||{},this._input=A,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var A=this._input[0];this.yytext+=A,this.yyleng++,this.offset++,this.match+=A,this.matched+=A;var N=A.match(/(?:\r\n?|\n).*/g);return N?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),A},"input"),unput:o(function(A){var N=A.length,P=A.split(/(?:\r\n?|\n)/g);this._input=A+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-N),this.offset-=N;var I=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),P.length-1&&(this.yylineno-=P.length-1);var D=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:P?(P.length===I.length?this.yylloc.first_column:0)+I[I.length-P.length].length-P[0].length:this.yylloc.first_column-N},this.options.ranges&&(this.yylloc.range=[D[0],D[0]+this.yyleng-N]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(A){this.unput(this.match.slice(A))},"less"),pastInput:o(function(){var A=this.matched.substr(0,this.matched.length-this.match.length);return(A.length>20?"...":"")+A.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var A=this.match;return A.length<20&&(A+=this._input.substr(0,20-A.length)),(A.substr(0,20)+(A.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var A=this.pastInput(),N=new Array(A.length+1).join("-");return A+this.upcomingInput()+` +`+N+"^"},"showPosition"),test_match:o(function(A,N){var P,I,D;if(this.options.backtrack_lexer&&(D={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(D.yylloc.range=this.yylloc.range.slice(0))),I=A[0].match(/(?:\r\n?|\n).*/g),I&&(this.yylineno+=I.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:I?I[I.length-1].length-I[I.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+A[0].length},this.yytext+=A[0],this.match+=A[0],this.matches=A,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(A[0].length),this.matched+=A[0],P=this.performAction.call(this,this.yy,this,N,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),P)return P;if(this._backtrack){for(var _ in D)this[_]=D[_];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var A,N,P,I;this._more||(this.yytext="",this.match="");for(var D=this._currentRules(),_=0;_N[0].length)){if(N=P,I=_,this.options.backtrack_lexer){if(A=this.test_match(P,D[_]),A!==!1)return A;if(this._backtrack){N=!1;continue}else return!1}else if(!this.options.flex)break}return N?(A=this.test_match(N,D[I]),A!==!1?A:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var N=this.next();return N||this.lex()},"lex"),begin:o(function(N){this.conditionStack.push(N)},"begin"),popState:o(function(){var N=this.conditionStack.length-1;return N>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(N){return N=this.conditionStack.length-1-Math.abs(N||0),N>=0?this.conditionStack[N]:"INITIAL"},"topState"),pushState:o(function(N){this.begin(N)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(N,P,I,D){var _=D;switch(I){case 0:return this.pushState("shapeData"),P.yytext="",24;break;case 1:return this.pushState("shapeDataStr"),24;break;case 2:return this.popState(),24;break;case 3:let R=/\n\s*/g;return P.yytext=P.yytext.replace(R,"
    "),24;break;case 4:return 24;case 5:this.popState();break;case 6:return N.getLogger().trace("Found comment",P.yytext),6;break;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;break;case 10:this.popState();break;case 11:N.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return N.getLogger().trace("SPACELINE"),6;break;case 13:return 7;case 14:return 16;case 15:N.getLogger().trace("end icon"),this.popState();break;case 16:return N.getLogger().trace("Exploding node"),this.begin("NODE"),20;break;case 17:return N.getLogger().trace("Cloud"),this.begin("NODE"),20;break;case 18:return N.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;break;case 19:return N.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;break;case 20:return this.begin("NODE"),20;break;case 21:return this.begin("NODE"),20;break;case 22:return this.begin("NODE"),20;break;case 23:return this.begin("NODE"),20;break;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:N.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return N.getLogger().trace("description:",P.yytext),"NODE_DESCR";break;case 32:this.popState();break;case 33:return this.popState(),N.getLogger().trace("node end ))"),"NODE_DEND";break;case 34:return this.popState(),N.getLogger().trace("node end )"),"NODE_DEND";break;case 35:return this.popState(),N.getLogger().trace("node end ...",P.yytext),"NODE_DEND";break;case 36:return this.popState(),N.getLogger().trace("node end (("),"NODE_DEND";break;case 37:return this.popState(),N.getLogger().trace("node end (-"),"NODE_DEND";break;case 38:return this.popState(),N.getLogger().trace("node end (-"),"NODE_DEND";break;case 39:return this.popState(),N.getLogger().trace("node end (("),"NODE_DEND";break;case 40:return this.popState(),N.getLogger().trace("node end (("),"NODE_DEND";break;case 41:return N.getLogger().trace("Long description:",P.yytext),21;break;case 42:return N.getLogger().trace("Long description:",P.yytext),21;break}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return E})();w.lexer=C;function k(){this.yy={}}return o(k,"Parser"),k.prototype=w,w.Parser=k,new k})();eq.parser=eq;F7e=eq});var cl,rq,tq,iq,kwt,wwt,z7e,Swt,Ewt,Xn,Awt,_wt,Dwt,Rwt,Lwt,Mwt,Nwt,G7e,V7e=z(()=>{"use strict";Ut();Ir();St();Bn();Wx();cl=[],rq=[],tq=0,iq={},kwt=o(()=>{cl=[],rq=[],tq=0,iq={}},"clear"),wwt=o(e=>{if(cl.length===0)return null;let t=cl[0].level,r=null;for(let i=cl.length-1;i>=0;i--)if(cl[i].level===t&&!r&&(r=cl[i]),cl[i].levell.parentId===n.id);for(let l of s){let u={id:l.id,parentId:n.id,label:fr(l.label??"",i),labelType:"markdown",isGroup:!1,ticket:l?.ticket,priority:l?.priority,assigned:l?.assigned,icon:l?.icon,shape:"kanbanItem",level:l.level,rx:5,ry:5,cssStyles:["text-align: left"]};t.push(u)}}return{nodes:t,edges:e,other:{},config:ge()}},"getData"),Ewt=o((e,t,r,i,n)=>{let a=ge(),s=a.mindmap?.padding??or.mindmap.padding;switch(i){case Xn.ROUNDED_RECT:case Xn.RECT:case Xn.HEXAGON:s*=2}let l={id:fr(t,a)||"kbn"+tq++,level:e,label:fr(r,a),width:a.mindmap?.maxNodeWidth??or.mindmap.maxNodeWidth,padding:s,isGroup:!1};if(n!==void 0){let h;n.includes(` +`)?h=n+` +`:h=`{ +`+n+` +}`;let d=ld(h,{schema:od});if(d.shape&&(d.shape!==d.shape.toLowerCase()||d.shape.includes("_")))throw new Error(`No such shape: ${d.shape}. Shape names should be lowercase.`);d?.shape&&d.shape==="kanbanItem"&&(l.shape=d?.shape),d?.label&&(l.label=d?.label),d?.icon&&(l.icon=d?.icon.toString()),d?.assigned&&(l.assigned=d?.assigned.toString()),d?.ticket&&(l.ticket=d?.ticket.toString()),d?.priority&&(l.priority=d?.priority)}let u=wwt(e);u?l.parentId=u.id||"kbn"+tq++:rq.push(l),cl.push(l)},"addNode"),Xn={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Awt=o((e,t)=>{switch(Z.debug("In get type",e,t),e){case"[":return Xn.RECT;case"(":return t===")"?Xn.ROUNDED_RECT:Xn.CLOUD;case"((":return Xn.CIRCLE;case")":return Xn.CLOUD;case"))":return Xn.BANG;case"{{":return Xn.HEXAGON;default:return Xn.DEFAULT}},"getType"),_wt=o((e,t)=>{iq[e]=t},"setElementForId"),Dwt=o(e=>{if(!e)return;let t=ge(),r=cl[cl.length-1];e.icon&&(r.icon=fr(e.icon,t)),e.class&&(r.cssClasses=fr(e.class,t))},"decorateNode"),Rwt=o(e=>{switch(e){case Xn.DEFAULT:return"no-border";case Xn.RECT:return"rect";case Xn.ROUNDED_RECT:return"rounded-rect";case Xn.CIRCLE:return"circle";case Xn.CLOUD:return"cloud";case Xn.BANG:return"bang";case Xn.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),Lwt=o(()=>Z,"getLogger"),Mwt=o(e=>iq[e],"getElementById"),Nwt={clear:kwt,addNode:Ewt,getSections:z7e,getData:Swt,nodeType:Xn,getType:Awt,setElementForId:_wt,decorateNode:Dwt,type2Str:Rwt,getLogger:Lwt,getElementById:Mwt},G7e=Nwt});var Iwt,W7e,q7e=z(()=>{"use strict";Ut();St();ps();Di();Bn();W4();J4();Iwt=o(async(e,t,r,i)=>{Z.debug(`Rendering kanban diagram +`+e);let a=i.db.getData(),s=ge();s.htmlLabels=!1;let l=bi(t);for(let v of a.nodes)v.domId=`${t}-${v.id}`;let u=l.append("g");u.attr("class","sections");let h=l.append("g");h.attr("class","items");let d=a.nodes.filter(v=>v.isGroup),f=0,p=10,m=[],g=25;for(let v of d){let x=s?.kanban?.sectionWidth||200;f=f+1,v.x=x*f+(f-1)*p/2,v.width=x,v.y=0,v.height=x*3,v.rx=5,v.ry=5,v.cssClasses=v.cssClasses+" section-"+f;let b=await wg(u,v);g=Math.max(g,b?.labelBBox?.height),m.push(b)}let y=0;for(let v of d){let x=m[y];y=y+1;let b=s?.kanban?.sectionWidth||200,T=-b*3/2+g,w=T,C=a.nodes.filter(A=>A.parentId===v.id);for(let A of C){if(A.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");A.x=v.x,A.width=b-1.5*p;let P=(await Sg(h,A,{config:s})).node().getBBox();A.y=w+P.height/2,await nb(A),w=A.y+P.height/2+p/2}let k=x.cluster.select("rect"),E=Math.max(w-T+3*p,50)+(g-25);k.attr("height",E)}Io(void 0,l,s.mindmap?.padding??or.kanban.padding,s.mindmap?.useMaxWidth??or.kanban.useMaxWidth)},"draw"),W7e={draw:Iwt}});var Owt,Pwt,U7e,H7e=z(()=>{"use strict";Cn();k1();Owt=o(e=>{let t="";for(let i=0;ie.darkMode?Xe(i,n):je(i,n),"adjuster");for(let i=0;i` + .edge { + stroke-width: 3; + } + ${Owt(e)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${e.git0}; + } + .section-root text { + fill: ${e.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .cluster-label, .label { + color: ${e.textColor}; + fill: ${e.textColor}; + } + .kanban-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } + ${Vc()} +`,"getStyles"),U7e=Pwt});var Y7e={};xr(Y7e,{diagram:()=>Bwt});var Bwt,j7e=z(()=>{"use strict";$7e();V7e();q7e();H7e();Bwt={db:G7e,renderer:W7e,parser:F7e,styles:U7e}});var nq,tC,Z7e=z(()=>{"use strict";nq=(function(){var e=o(function(l,u,h,d){for(h=h||{},d=l.length;d--;h[l[d]]=u);return h},"o"),t=[1,9],r=[1,10],i=[1,5,10,12],n={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:o(function(u,h,d,f,p,m,g){var y=m.length-1;switch(p){case 7:let v=f.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=f.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());f.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:t,20:r},{1:[2,6],7:11,10:[1,12]},e(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},e(i,[2,8]),e(i,[2,9]),{19:[1,16]},e(i,[2,11]),{1:[2,1]},{1:[2,5]},e(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:t,20:r},{15:18,16:7,17:8,18:t,20:r},{18:[1,19]},e(r,[2,3]),{12:[1,20]},e(i,[2,10]),{15:21,16:7,17:8,18:t,20:r},e([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var d=new Error(u);throw d.hash=h,d}},"parseError"),parse:o(function(u){var h=this,d=[0],f=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,T=2,w=1,C=m.slice.call(arguments,1),k=Object.create(this.lexer),E={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(E.yy[A]=this.yy[A]);k.setInput(u,E.yy),E.yy.lexer=k,E.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var N=k.yylloc;m.push(N);var P=k.options&&k.options.ranges;typeof E.yy.parseError=="function"?this.parseError=E.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function I(U){d.length=d.length-2*U,p.length=p.length-U,m.length=m.length-U}o(I,"popStack");function D(){var U;return U=f.pop()||k.lex()||w,typeof U!="number"&&(U instanceof Array&&(f=U,U=f.pop()),U=h.symbols_[U]||U),U}o(D,"lex");for(var _,R,M,L,B,O,$={},G,F,V,H;;){if(M=d[d.length-1],this.defaultActions[M]?L=this.defaultActions[M]:((_===null||typeof _>"u")&&(_=D()),L=g[M]&&g[M][_]),typeof L>"u"||!L.length||!L[0]){var j="";H=[];for(G in g[M])this.terminals_[G]&&G>T&&H.push("'"+this.terminals_[G]+"'");k.showPosition?j="Parse error on line "+(v+1)+`: +`+k.showPosition()+` +Expecting `+H.join(", ")+", got '"+(this.terminals_[_]||_)+"'":j="Parse error on line "+(v+1)+": Unexpected "+(_==w?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(j,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:N,expected:H})}if(L[0]instanceof Array&&L.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+_);switch(L[0]){case 1:d.push(_),p.push(k.yytext),m.push(k.yylloc),d.push(L[1]),_=null,R?(_=R,R=null):(x=k.yyleng,y=k.yytext,v=k.yylineno,N=k.yylloc,b>0&&b--);break;case 2:if(F=this.productions_[L[1]][1],$.$=p[p.length-F],$._$={first_line:m[m.length-(F||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(F||1)].first_column,last_column:m[m.length-1].last_column},P&&($._$.range=[m[m.length-(F||1)].range[0],m[m.length-1].range[1]]),O=this.performAction.apply($,[y,x,v,E.yy,L[1],p,m].concat(C)),typeof O<"u")return O;F&&(d=d.slice(0,-1*F*2),p=p.slice(0,-1*F),m=m.slice(0,-1*F)),d.push(this.productions_[L[1]][0]),p.push($.$),m.push($._$),V=g[d[d.length-2]][d[d.length-1]],d.push(V);break;case 3:return!0}}return!0},"parse")},a=(function(){var l={EOF:1,parseError:o(function(h,d){if(this.yy.parser)this.yy.parser.parseError(h,d);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,d=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var f=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),d.length-1&&(this.yylineno-=d.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:d?(d.length===f.length?this.yylloc.first_column:0)+f[f.length-d.length].length-d[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:o(function(u,h){var d,f,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),f=u[0].match(/(?:\r\n?|\n).*/g),f&&(this.yylineno+=f.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:f?f[f.length-1].length-f[f.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],d=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),d)return d;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,d,f;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;mh[0].length)){if(h=d,f=m,this.options.backtrack_lexer){if(u=this.test_match(d,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[f]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,d,f,p){var m=p;switch(f){case 0:return this.pushState("csv"),4;break;case 1:return this.pushState("csv"),4;break;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState("escaped_text"),18;break;case 6:return 20;case 7:return this.popState("escaped_text"),18;break;case 8:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:sankey\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[2,3,4,5,6,7,8],inclusive:!1},escaped_text:{rules:[7,8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8],inclusive:!0}}};return l})();n.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=n,n.Parser=s,new s})();nq.parser=nq;tC=nq});var p_,m_,f_,Gwt,aq,Vwt,sq,Wwt,qwt,Uwt,Hwt,Q7e,J7e=z(()=>{"use strict";Ut();Ir();Ci();p_=[],m_=[],f_=new Map,Gwt=o(()=>{p_=[],m_=[],f_=new Map,gr()},"clear"),aq=class{constructor(t,r,i=0){this.source=t;this.target=r;this.value=i}static{o(this,"SankeyLink")}},Vwt=o((e,t,r)=>{p_.push(new aq(e,t,r))},"addLink"),sq=class{constructor(t){this.ID=t}static{o(this,"SankeyNode")}},Wwt=o(e=>{e=vt.sanitizeText(e,ge());let t=f_.get(e);return t===void 0&&(t=new sq(e),f_.set(e,t),m_.push(t)),t},"findOrCreateNode"),qwt=o(()=>m_,"getNodes"),Uwt=o(()=>p_,"getLinks"),Hwt=o(()=>({nodes:m_.map(e=>({id:e.ID})),links:p_.map(e=>({source:e.source.ID,target:e.target.ID,value:e.value}))}),"getGraph"),Q7e={nodesMap:f_,getConfig:o(()=>ge().sankey,"getConfig"),getNodes:qwt,getLinks:Uwt,getGraph:Hwt,addLink:Vwt,findOrCreateNode:Wwt,getAccTitle:kr,setAccTitle:Cr,getAccDescription:Sr,setAccDescription:wr,getDiagramTitle:Er,setDiagramTitle:Ar,clear:Gwt}});function rC(e,t){let r;if(t===void 0)for(let i of e)i!=null&&(r=i)&&(r=i);else{let i=-1;for(let n of e)(n=t(n,++i,e))!=null&&(r=n)&&(r=n)}return r}var eDe=z(()=>{"use strict";o(rC,"max")});function Dy(e,t){let r;if(t===void 0)for(let i of e)i!=null&&(r>i||r===void 0&&i>=i)&&(r=i);else{let i=-1;for(let n of e)(n=t(n,++i,e))!=null&&(r>n||r===void 0&&n>=n)&&(r=n)}return r}var tDe=z(()=>{"use strict";o(Dy,"min")});function Ry(e,t){let r=0;if(t===void 0)for(let i of e)(i=+i)&&(r+=i);else{let i=-1;for(let n of e)(n=+t(n,++i,e))&&(r+=n)}return r}var rDe=z(()=>{"use strict";o(Ry,"sum")});var oq=z(()=>{"use strict";eDe();tDe();rDe()});function Ywt(e){return e.target.depth}function lq(e){return e.depth}function cq(e,t){return t-1-e.height}function iC(e,t){return e.sourceLinks.length?e.depth:t-1}function uq(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?Dy(e.sourceLinks,Ywt)-1:0}var hq=z(()=>{"use strict";oq();o(Ywt,"targetDepth");o(lq,"left");o(cq,"right");o(iC,"justify");o(uq,"center")});function Ly(e){return function(){return e}}var iDe=z(()=>{"use strict";o(Ly,"constant")});function nDe(e,t){return g_(e.source,t.source)||e.index-t.index}function aDe(e,t){return g_(e.target,t.target)||e.index-t.index}function g_(e,t){return e.y0-t.y0}function dq(e){return e.value}function jwt(e){return e.index}function Xwt(e){return e.nodes}function Kwt(e){return e.links}function sDe(e,t){let r=e.get(t);if(!r)throw new Error("missing: "+t);return r}function oDe({nodes:e}){for(let t of e){let r=t.y0,i=r;for(let n of t.sourceLinks)n.y0=r+n.width/2,r+=n.width;for(let n of t.targetLinks)n.y1=i+n.width/2,i+=n.width}}function y_(){let e=0,t=0,r=1,i=1,n=24,a=8,s,l=jwt,u=iC,h,d,f=Xwt,p=Kwt,m=6;function g(){let M={nodes:f.apply(null,arguments),links:p.apply(null,arguments)};return y(M),v(M),x(M),b(M),C(M),oDe(M),M}o(g,"sankey"),g.update=function(M){return oDe(M),M},g.nodeId=function(M){return arguments.length?(l=typeof M=="function"?M:Ly(M),g):l},g.nodeAlign=function(M){return arguments.length?(u=typeof M=="function"?M:Ly(M),g):u},g.nodeSort=function(M){return arguments.length?(h=M,g):h},g.nodeWidth=function(M){return arguments.length?(n=+M,g):n},g.nodePadding=function(M){return arguments.length?(a=s=+M,g):a},g.nodes=function(M){return arguments.length?(f=typeof M=="function"?M:Ly(M),g):f},g.links=function(M){return arguments.length?(p=typeof M=="function"?M:Ly(M),g):p},g.linkSort=function(M){return arguments.length?(d=M,g):d},g.size=function(M){return arguments.length?(e=t=0,r=+M[0],i=+M[1],g):[r-e,i-t]},g.extent=function(M){return arguments.length?(e=+M[0][0],r=+M[1][0],t=+M[0][1],i=+M[1][1],g):[[e,t],[r,i]]},g.iterations=function(M){return arguments.length?(m=+M,g):m};function y({nodes:M,links:L}){for(let[O,$]of M.entries())$.index=O,$.sourceLinks=[],$.targetLinks=[];let B=new Map(M.map((O,$)=>[l(O,$,M),O]));for(let[O,$]of L.entries()){$.index=O;let{source:G,target:F}=$;typeof G!="object"&&(G=$.source=sDe(B,G)),typeof F!="object"&&(F=$.target=sDe(B,F)),G.sourceLinks.push($),F.targetLinks.push($)}if(d!=null)for(let{sourceLinks:O,targetLinks:$}of M)O.sort(d),$.sort(d)}o(y,"computeNodeLinks");function v({nodes:M}){for(let L of M)L.value=L.fixedValue===void 0?Math.max(Ry(L.sourceLinks,dq),Ry(L.targetLinks,dq)):L.fixedValue}o(v,"computeNodeValues");function x({nodes:M}){let L=M.length,B=new Set(M),O=new Set,$=0;for(;B.size;){for(let G of B){G.depth=$;for(let{target:F}of G.sourceLinks)O.add(F)}if(++$>L)throw new Error("circular link");B=O,O=new Set}}o(x,"computeNodeDepths");function b({nodes:M}){let L=M.length,B=new Set(M),O=new Set,$=0;for(;B.size;){for(let G of B){G.height=$;for(let{source:F}of G.targetLinks)O.add(F)}if(++$>L)throw new Error("circular link");B=O,O=new Set}}o(b,"computeNodeHeights");function T({nodes:M}){let L=rC(M,$=>$.depth)+1,B=(r-e-n)/(L-1),O=new Array(L);for(let $ of M){let G=Math.max(0,Math.min(L-1,Math.floor(u.call(null,$,L))));$.layer=G,$.x0=e+G*B,$.x1=$.x0+n,O[G]?O[G].push($):O[G]=[$]}if(h)for(let $ of O)$.sort(h);return O}o(T,"computeNodeLayers");function w(M){let L=Dy(M,B=>(i-t-(B.length-1)*s)/Ry(B,dq));for(let B of M){let O=t;for(let $ of B){$.y0=O,$.y1=O+$.value*L,O=$.y1+s;for(let G of $.sourceLinks)G.width=G.value*L}O=(i-O+s)/(B.length+1);for(let $=0;$B.length)-1)),w(L);for(let B=0;B0))continue;let j=(V/H-F.y0)*L;F.y0+=j,F.y1+=j,I(F)}h===void 0&&G.sort(g_),A(G,B)}}o(k,"relaxLeftToRight");function E(M,L,B){for(let O=M.length,$=O-2;$>=0;--$){let G=M[$];for(let F of G){let V=0,H=0;for(let{target:U,value:Q}of F.sourceLinks){let Y=Q*(U.layer-F.layer);V+=R(F,U)*Y,H+=Y}if(!(H>0))continue;let j=(V/H-F.y0)*L;F.y0+=j,F.y1+=j,I(F)}h===void 0&&G.sort(g_),A(G,B)}}o(E,"relaxRightToLeft");function A(M,L){let B=M.length>>1,O=M[B];P(M,O.y0-s,B-1,L),N(M,O.y1+s,B+1,L),P(M,i,M.length-1,L),N(M,t,0,L)}o(A,"resolveCollisions");function N(M,L,B,O){for(;B1e-6&&($.y0+=G,$.y1+=G),L=$.y1+s}}o(N,"resolveCollisionsTopToBottom");function P(M,L,B,O){for(;B>=0;--B){let $=M[B],G=($.y1-L)*O;G>1e-6&&($.y0-=G,$.y1-=G),L=$.y0-s}}o(P,"resolveCollisionsBottomToTop");function I({sourceLinks:M,targetLinks:L}){if(d===void 0){for(let{source:{sourceLinks:B}}of L)B.sort(aDe);for(let{target:{targetLinks:B}}of M)B.sort(nDe)}}o(I,"reorderNodeLinks");function D(M){if(d===void 0)for(let{sourceLinks:L,targetLinks:B}of M)L.sort(aDe),B.sort(nDe)}o(D,"reorderLinks");function _(M,L){let B=M.y0-(M.sourceLinks.length-1)*s/2;for(let{target:O,width:$}of M.sourceLinks){if(O===L)break;B+=$+s}for(let{source:O,width:$}of L.targetLinks){if(O===M)break;B-=$}return B}o(_,"targetTop");function R(M,L){let B=L.y0-(L.targetLinks.length-1)*s/2;for(let{source:O,width:$}of L.targetLinks){if(O===M)break;B+=$+s}for(let{target:O,width:$}of M.sourceLinks){if(O===L)break;B-=$}return B}return o(R,"sourceTop"),g}var lDe=z(()=>{"use strict";oq();hq();iDe();o(nDe,"ascendingSourceBreadth");o(aDe,"ascendingTargetBreadth");o(g_,"ascendingBreadth");o(dq,"value");o(jwt,"defaultId");o(Xwt,"defaultNodes");o(Kwt,"defaultLinks");o(sDe,"find");o(oDe,"computeLinkBreadths");o(y_,"Sankey")});function mq(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function cDe(){return new mq}var fq,pq,Tm,Zwt,gq,uDe=z(()=>{"use strict";fq=Math.PI,pq=2*fq,Tm=1e-6,Zwt=pq-Tm;o(mq,"Path");o(cDe,"path");mq.prototype=cDe.prototype={constructor:mq,moveTo:o(function(e,t){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(e,t){this._+="L"+(this._x1=+e)+","+(this._y1=+t)},"lineTo"),quadraticCurveTo:o(function(e,t,r,i){this._+="Q"+ +e+","+ +t+","+(this._x1=+r)+","+(this._y1=+i)},"quadraticCurveTo"),bezierCurveTo:o(function(e,t,r,i,n,a){this._+="C"+ +e+","+ +t+","+ +r+","+ +i+","+(this._x1=+n)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(e,t,r,i,n){e=+e,t=+t,r=+r,i=+i,n=+n;var a=this._x1,s=this._y1,l=r-e,u=i-t,h=a-e,d=s-t,f=h*h+d*d;if(n<0)throw new Error("negative radius: "+n);if(this._x1===null)this._+="M"+(this._x1=e)+","+(this._y1=t);else if(f>Tm)if(!(Math.abs(d*l-u*h)>Tm)||!n)this._+="L"+(this._x1=e)+","+(this._y1=t);else{var p=r-a,m=i-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(f),b=n*Math.tan((fq-Math.acos((g+f-y)/(2*v*x)))/2),T=b/x,w=b/v;Math.abs(T-1)>Tm&&(this._+="L"+(e+T*h)+","+(t+T*d)),this._+="A"+n+","+n+",0,0,"+ +(d*p>h*m)+","+(this._x1=e+w*l)+","+(this._y1=t+w*u)}},"arcTo"),arc:o(function(e,t,r,i,n,a){e=+e,t=+t,r=+r,a=!!a;var s=r*Math.cos(i),l=r*Math.sin(i),u=e+s,h=t+l,d=1^a,f=a?i-n:n-i;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>Tm||Math.abs(this._y1-h)>Tm)&&(this._+="L"+u+","+h),r&&(f<0&&(f=f%pq+pq),f>Zwt?this._+="A"+r+","+r+",0,1,"+d+","+(e-s)+","+(t-l)+"A"+r+","+r+",0,1,"+d+","+(this._x1=u)+","+(this._y1=h):f>Tm&&(this._+="A"+r+","+r+",0,"+ +(f>=fq)+","+d+","+(this._x1=e+r*Math.cos(n))+","+(this._y1=t+r*Math.sin(n))))},"arc"),rect:o(function(e,t,r,i){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)+"h"+ +r+"v"+ +i+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};gq=cDe});var hDe=z(()=>{"use strict";uDe()});function v_(e){return o(function(){return e},"constant")}var dDe=z(()=>{"use strict";o(v_,"default")});function fDe(e){return e[0]}function pDe(e){return e[1]}var mDe=z(()=>{"use strict";o(fDe,"x");o(pDe,"y")});var gDe,yDe=z(()=>{"use strict";gDe=Array.prototype.slice});function Qwt(e){return e.source}function Jwt(e){return e.target}function e4t(e){var t=Qwt,r=Jwt,i=fDe,n=pDe,a=null;function s(){var l,u=gDe.call(arguments),h=t.apply(this,u),d=r.apply(this,u);if(a||(a=l=gq()),e(a,+i.apply(this,(u[0]=h,u)),+n.apply(this,u),+i.apply(this,(u[0]=d,u)),+n.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(t=l,s):t},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(i=typeof l=="function"?l:v_(+l),s):i},s.y=function(l){return arguments.length?(n=typeof l=="function"?l:v_(+l),s):n},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function t4t(e,t,r,i,n){e.moveTo(t,r),e.bezierCurveTo(t=(t+i)/2,r,t,n,i,n)}function yq(){return e4t(t4t)}var vDe=z(()=>{"use strict";hDe();yDe();dDe();mDe();o(Qwt,"linkSource");o(Jwt,"linkTarget");o(e4t,"link");o(t4t,"curveHorizontal");o(yq,"linkHorizontal")});var xDe=z(()=>{"use strict";vDe()});function r4t(e){return[e.source.x1,e.y0]}function i4t(e){return[e.target.x0,e.y1]}function x_(){return yq().source(r4t).target(i4t)}var bDe=z(()=>{"use strict";xDe();o(r4t,"horizontalSource");o(i4t,"horizontalTarget");o(x_,"default")});var TDe=z(()=>{"use strict";lDe();hq();bDe()});var nC,CDe=z(()=>{"use strict";nC=class e{static{o(this,"Uid")}static{this.count=0}static next(t){return new e(t+ ++e.count)}constructor(t){this.id=t,this.href=`#${t}`}toString(){return"url("+this.href+")"}}});var n4t,a4t,s4t,kDe,wDe=z(()=>{"use strict";Ut();Rr();TDe();Di();CDe();n4t={left:lq,right:cq,center:uq,justify:iC},a4t=o(e=>{let t=0,r=0;for(let i of e){let n=i.value??0;n>t&&(t=n,r=i.layer??0)}return r},"findCentralNodeLayer"),s4t=o(function(e,t,r,i){let{securityLevel:n,sankey:a}=ge(),s=vk.sankey,l;n==="sandbox"&&(l=Je("#i"+t));let u=n==="sandbox"?Je(l.nodes()[0].contentDocument.body):Je("body"),h=n==="sandbox"?u.select(`[id="${t}"]`):Je(`[id="${t}"]`),d=a?.width??s.width,f=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=a?.nodeWidth??s.nodeWidth??10,b=a?.nodePadding??s.nodePadding??12,T=a?.labelStyle??s.labelStyle??"legacy",w=a?.nodeColors??{},C=i.db.getGraph(),k=n4t[m];y_().nodeId(O=>O.id).nodeWidth(x).nodePadding(b+(v?15:0)).nodeAlign(k).extent([[0,0],[d,f]])(C);let A=a4t(C.nodes),N=ro(XL),P=o(O=>w[O]??N(O),"getNodeColor");h.append("g").attr("class","nodes").selectAll(".node").data(C.nodes).join("g").attr("class","node").attr("id",O=>(O.uid=nC.next("node-")).id).attr("transform",function(O){return"translate("+O.x0+","+O.y0+")"}).attr("x",O=>O.x0).attr("y",O=>O.y0).append("rect").attr("height",O=>O.y1-O.y0).attr("width",O=>O.x1-O.x0).attr("fill",O=>P(O.id));let I=o(({id:O,value:$})=>v?`${O} +${g}${Math.round($*100)/100}${y}`:O,"getText"),D=o(O=>T==="outlined"?(O.layer??0)_.selectAll(O?`.${O}`:"text").data(C.nodes).join("text").attr("class",O??null).attr("x",$=>D($).x).attr("y",$=>($.y1+$.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",$=>D($).anchor).text(I),"appendLabel");T==="outlined"?(R("sankey-label-bg"),R("sankey-label-fg")):R();let M=h.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",.5).selectAll(".link").data(C.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),L=a?.linkColor??"gradient";if(L==="gradient"){let O=M.append("linearGradient").attr("id",$=>($.uid=nC.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",$=>$.source.x1).attr("x2",$=>$.target.x0);O.append("stop").attr("offset","0%").attr("stop-color",$=>P($.source.id)),O.append("stop").attr("offset","100%").attr("stop-color",$=>P($.target.id))}let B;switch(L){case"gradient":B=o(O=>O.uid,"coloring");break;case"source":B=o(O=>P(O.source.id),"coloring");break;case"target":B=o(O=>P(O.target.id),"coloring");break;default:B=L}M.append("path").attr("d",x_()).attr("stroke",B).attr("stroke-width",O=>Math.max(1,O.width)),Io(void 0,h,0,p)},"draw"),kDe={draw:s4t}});var SDe,EDe=z(()=>{"use strict";SDe=o(e=>e.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing")});var o4t,ADe,_De=z(()=>{"use strict";o4t=o(e=>`.label { + font-family: ${e.fontFamily}; + } + + .node-labels { + font-family: ${e.fontFamily}; + } + + /* Outlined label style - background stroke for better readability */ + .sankey-label-bg { + stroke: ${e.mainBkg||e.background||"#fff"}; + stroke-width: 4px; + stroke-linejoin: round; + paint-order: stroke; + } + + /* Foreground label text */ + .sankey-label-fg { + fill: ${e.textColor}; + } + + /* Node styling */ + .node rect { + shape-rendering: crispEdges; + } + + /* Link styling */ + .link { + fill: none; + stroke-opacity: 0.5; + mix-blend-mode: multiply; + } +`,"getStyles"),ADe=o4t});var DDe={};xr(DDe,{diagram:()=>c4t});var l4t,c4t,RDe=z(()=>{"use strict";Z7e();J7e();wDe();EDe();_De();l4t=tC.parse.bind(tC);tC.parse=e=>l4t(SDe(e));c4t={styles:ADe,parser:tC,db:Q7e,renderer:kDe}});var f4t,My,vq=z(()=>{"use strict";br();Bn();Xt();Ci();f4t=or.packet,My=class{constructor(){this.packet=[];this.setAccTitle=Cr;this.getAccTitle=kr;this.setDiagramTitle=Ar;this.getDiagramTitle=Er;this.getAccDescription=Sr;this.setAccDescription=wr}static{o(this,"PacketDB")}getConfig(){let t=Gr({...f4t,...Nt().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){gr(),this.packet=[]}}});var p4t,m4t,g4t,xq,NDe=z(()=>{"use strict";sl();St();au();vq();p4t=1e4,m4t=o((e,t)=>{ca(e,t);let r=-1,i=[],n=1,{bitsPerRow:a}=t.getConfig();for(let{start:s,end:l,bits:u,label:h}of e.blocks){if(s!==void 0&&l!==void 0&&l{if(e.start===void 0)throw new Error("start should have been set during first phase");if(e.end===void 0)throw new Error("end should have been set during first phase");if(e.start>e.end)throw new Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*r)return[e,void 0];let i=t*r-1,n=t*r;return[{start:e.start,end:i,label:e.label,bits:i-e.start},{start:n,end:e.end,label:e.label,bits:e.end-n}]},"getNextFittingBlock"),xq={parser:{yy:void 0},parse:o(async e=>{let t=await bn("packet",e),r=xq.parser?.yy;if(!(r instanceof My))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Z.debug(t),m4t(t,r)},"parse")}});var y4t,v4t,IDe,ODe=z(()=>{"use strict";ps();Di();y4t=o((e,t,r,i)=>{let n=i.db,a=n.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,d=n.getPacket(),f=n.getDiagramTitle(),p=s+l,m=p*(d.length+1)-(f?0:s),g=u*h+2,y=bi(t);y.attr("viewBox",`0 0 ${g} ${m}`),Br(y,m,g,a.useMaxWidth);for(let[v,x]of d.entries())v4t(y,x,v,a);y.append("text").text(f).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),v4t=o((e,t,r,{rowHeight:i,paddingX:n,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=e.append("g"),d=r*(i+a)+a;for(let f of t){let p=f.start%l*s+1,m=(f.end-f.start+1)*s-n;if(h.append("rect").attr("x",p).attr("y",d).attr("width",m).attr("height",i).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",d+i/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(f.label),!u)continue;let g=f.end===f.start,y=d-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(f.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(f.end)}},"drawWord"),IDe={draw:y4t}});var x4t,PDe,BDe=z(()=>{"use strict";Xt();x4t={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},PDe=o(({packet:e}={})=>{let t=Gr(x4t,e);return` + .packetByte { + font-size: ${t.byteFontSize}; + } + .packetByte.start { + fill: ${t.startByteColor}; + } + .packetByte.end { + fill: ${t.endByteColor}; + } + .packetLabel { + fill: ${t.labelColor}; + font-size: ${t.labelFontSize}; + } + .packetTitle { + fill: ${t.titleColor}; + font-size: ${t.titleFontSize}; + } + .packetBlock { + stroke: ${t.blockStrokeColor}; + stroke-width: ${t.blockStrokeWidth}; + fill: ${t.blockFillColor}; + } + `},"styles")});var FDe={};xr(FDe,{diagram:()=>b4t});var b4t,$De=z(()=>{"use strict";vq();NDe();ODe();BDe();b4t={parser:xq,get db(){return new My},renderer:IDe,styles:PDe}});var Ny,VDe,Cm,k4t,w4t,WDe,S4t,E4t,A4t,_4t,D4t,R4t,L4t,km,bq=z(()=>{"use strict";br();Bn();Xt();Ci();Ny={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},VDe={axes:[],curves:[],options:Ny},Cm=structuredClone(VDe),k4t=or.radar,w4t=o(()=>Gr({...k4t,...Nt().radar}),"getConfig"),WDe=o(()=>Cm.axes,"getAxes"),S4t=o(()=>Cm.curves,"getCurves"),E4t=o(()=>Cm.options,"getOptions"),A4t=o(e=>{Cm.axes=e.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),_4t=o(e=>{Cm.curves=e.map(t=>({name:t.name,label:t.label??t.name,entries:D4t(t.entries)}))},"setCurves"),D4t=o(e=>{if(e[0].axis==null)return e.map(r=>r.value);let t=WDe();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(r=>{let i=e.find(n=>n.axis?.$refText===r.name);if(i===void 0)throw new Error("Missing entry for axis "+r.label);return i.value})},"computeCurveEntries"),R4t=o(e=>{let t=e.reduce((r,i)=>(r[i.name]=i,r),{});Cm.options={showLegend:t.showLegend?.value??Ny.showLegend,ticks:t.ticks?.value??Ny.ticks,max:t.max?.value??Ny.max,min:t.min?.value??Ny.min,graticule:t.graticule?.value??Ny.graticule}},"setOptions"),L4t=o(()=>{gr(),Cm=structuredClone(VDe)},"clear"),km={getAxes:WDe,getCurves:S4t,getOptions:E4t,setAxes:A4t,setCurves:_4t,setOptions:R4t,getConfig:w4t,clear:L4t,setAccTitle:Cr,getAccTitle:kr,setDiagramTitle:Ar,getDiagramTitle:Er,getAccDescription:Sr,setAccDescription:wr}});var M4t,qDe,UDe=z(()=>{"use strict";sl();St();au();bq();M4t=o(e=>{ca(e,km);let{axes:t,curves:r,options:i}=e;km.setAxes(t),km.setCurves(r),km.setOptions(i)},"populate"),qDe={parse:o(async e=>{let t=await bn("radar",e);Z.debug(t),M4t(t)},"parse")}});function B4t(e,t,r,i,n,a,s){let l=t.length,u=Math.min(s.width,s.height)/2;r.forEach((h,d)=>{if(h.entries.length!==l)return;let f=h.entries.map((p,m)=>{let g=2*Math.PI*m/l-Math.PI/2,y=F4t(p,i,n,u),v=y*Math.cos(g),x=y*Math.sin(g);return{x:v,y:x}});a==="circle"?e.append("path").attr("d",$4t(f,s.curveTension)).attr("class",`radarCurve-${d}`):a==="polygon"&&e.append("polygon").attr("points",f.map(p=>`${p.x},${p.y}`).join(" ")).attr("class",`radarCurve-${d}`)})}function F4t(e,t,r,i){let n=Math.min(Math.max(e,t),r);return i*(n-t)/(r-t)}function $4t(e,t){let r=e.length,i=`M${e[0].x},${e[0].y}`;for(let n=0;n{let h=e.append("g").attr("transform",`translate(${n}, ${a+u*s})`);h.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${u}`),h.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(l.label)})}var N4t,I4t,O4t,P4t,HDe,YDe=z(()=>{"use strict";ps();Di();N4t=o((e,t,r,i)=>{let n=i.db,a=n.getAxes(),s=n.getCurves(),l=n.getOptions(),u=n.getConfig(),h=n.getDiagramTitle(),d=bi(t),f=I4t(d,u),p=l.max??Math.max(...s.map(y=>Math.max(...y.entries))),m=l.min,g=Math.min(u.width,u.height)/2;O4t(f,a,g,l.ticks,l.graticule),P4t(f,a,g,u),B4t(f,a,s,m,p,l.graticule,u),z4t(f,s,l.showLegend,u),f.append("text").attr("class","radarTitle").text(h).attr("x",0).attr("y",-u.height/2-u.marginTop)},"draw"),I4t=o((e,t)=>{let r=t.width+t.marginLeft+t.marginRight,i=t.height+t.marginTop+t.marginBottom,n={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return Br(e,i,r,t.useMaxWidth??!0),e.attr("viewBox",`0 0 ${r} ${i}`),e.append("g").attr("transform",`translate(${n.x}, ${n.y})`)},"drawFrame"),O4t=o((e,t,r,i,n)=>{if(n==="circle")for(let a=0;a{let f=2*d*Math.PI/a-Math.PI/2,p=l*Math.cos(f),m=l*Math.sin(f);return`${p},${m}`}).join(" ");e.append("polygon").attr("points",u).attr("class","radarGraticule")}}},"drawGraticule"),P4t=o((e,t,r,i)=>{let n=t.length;for(let a=0;a{"use strict";Xt();$f();br();G4t=o((e,t)=>{let r="";for(let i=0;i{let t=Ao(),r=Nt(),i=Gr(t,r.themeVariables),n=Gr(i.radar,e);return{themeVariables:i,radarOptions:n}},"buildRadarStyleOptions"),jDe=o(({radar:e}={})=>{let{themeVariables:t,radarOptions:r}=V4t(e);return` + .radarTitle { + font-size: ${t.fontSize}; + color: ${t.titleColor}; + dominant-baseline: hanging; + text-anchor: middle; + } + .radarAxisLine { + stroke: ${r.axisColor}; + stroke-width: ${r.axisStrokeWidth}; + } + .radarAxisLabel { + dominant-baseline: middle; + text-anchor: middle; + font-size: ${r.axisLabelFontSize}px; + color: ${r.axisColor}; + } + .radarGraticule { + fill: ${r.graticuleColor}; + fill-opacity: ${r.graticuleOpacity}; + stroke: ${r.graticuleColor}; + stroke-width: ${r.graticuleStrokeWidth}; + } + .radarLegendText { + text-anchor: start; + font-size: ${r.legendFontSize}px; + dominant-baseline: hanging; + } + ${G4t(t,r)} + `},"styles")});var KDe={};xr(KDe,{diagram:()=>W4t});var W4t,ZDe=z(()=>{"use strict";bq();UDe();YDe();XDe();W4t={parser:qDe,db:km,renderer:HDe,styles:jDe}});var Tq,e8e,t8e=z(()=>{"use strict";Tq=(function(){var e=o(function(T,w,C,k){for(C=C||{},k=T.length;k--;C[T[k]]=w);return C},"o"),t=[1,15],r=[1,7],i=[1,13],n=[1,14],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],d=[8,10,21,28,29,30,31,39,43,46],f=[1,23],p=[1,24],m=[8,10,15,16,21,28,29,30,31,39,43,46],g=[8,10,15,16,21,27,28,29,30,31,39,43,46],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"NODE_ID",34:"DIR",35:"NODE_DSTART",36:"NODE_DEND",37:"BLOCK_ARROW_START",38:"BLOCK_ARROW_END",39:"classDef",40:"CLASSDEF_ID",41:"CLASSDEF_STYLEOPTS",42:"DEFAULT",43:"class",44:"CLASSENTITY_IDS",45:"STYLECLASS",46:"style",47:"STYLE_ENTITY_IDS",48:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(w,C,k,E,A,N,P){var I=N.length-1;switch(A){case 4:E.getLogger().debug("Rule: separator (NL) ");break;case 5:E.getLogger().debug("Rule: separator (Space) ");break;case 6:E.getLogger().debug("Rule: separator (EOF) ");break;case 7:E.getLogger().debug("Rule: hierarchy: ",N[I-1]),E.setHierarchy(N[I-1]);break;case 8:E.getLogger().debug("Stop NL ");break;case 9:E.getLogger().debug("Stop EOF ");break;case 10:E.getLogger().debug("Stop NL2 ");break;case 11:E.getLogger().debug("Stop EOF2 ");break;case 12:E.getLogger().debug("Rule: statement: ",N[I]),typeof N[I].length=="number"?this.$=N[I]:this.$=[N[I]];break;case 13:E.getLogger().debug("Rule: statement #2: ",N[I-1]),this.$=[N[I-1]].concat(N[I]);break;case 14:E.getLogger().debug("Rule: link: ",N[I],w),this.$={edgeTypeStr:N[I],label:""};break;case 15:E.getLogger().debug("Rule: LABEL link: ",N[I-3],N[I-1],N[I]),this.$={edgeTypeStr:N[I],label:N[I-1]};break;case 18:let D=parseInt(N[I]),_=E.generateId();this.$={id:_,type:"space",label:"",width:D,children:[]};break;case 23:E.getLogger().debug("Rule: (nodeStatement link node) ",N[I-2],N[I-1],N[I]," typestr: ",N[I-1].edgeTypeStr);let R=E.edgeStrToEdgeData(N[I-1].edgeTypeStr),M=E.edgeStrToEdgeStartData(N[I-1].edgeTypeStr),L=E.edgeStrToThickness(N[I-1].edgeTypeStr),B=E.edgeStrToPattern(N[I-1].edgeTypeStr);this.$=[{id:N[I-2].id,label:N[I-2].label,type:N[I-2].type,directions:N[I-2].directions},{id:N[I-2].id+"-"+N[I].id,start:N[I-2].id,end:N[I].id,label:N[I-1].label,type:"edge",thickness:L,pattern:B,directions:N[I].directions,arrowTypeEnd:R,arrowTypeStart:M},{id:N[I].id,label:N[I].label,type:E.typeStr2Type(N[I].typeStr),directions:N[I].directions}];break;case 24:E.getLogger().debug("Rule: nodeStatement (abc88 node size) ",N[I-1],N[I]),this.$={id:N[I-1].id,label:N[I-1].label,type:E.typeStr2Type(N[I-1].typeStr),directions:N[I-1].directions,widthInColumns:parseInt(N[I],10)};break;case 25:E.getLogger().debug("Rule: nodeStatement (node) ",N[I]),this.$={id:N[I].id,label:N[I].label,type:E.typeStr2Type(N[I].typeStr),directions:N[I].directions,widthInColumns:1};break;case 26:E.getLogger().debug("APA123",this?this:"na"),E.getLogger().debug("COLUMNS: ",N[I]),this.$={type:"column-setting",columns:N[I]==="auto"?-1:parseInt(N[I])};break;case 27:E.getLogger().debug("Rule: id-block statement : ",N[I-2],N[I-1]);let O=E.generateId();this.$={...N[I-2],type:"composite",children:N[I-1]};break;case 28:E.getLogger().debug("Rule: blockStatement : ",N[I-2],N[I-1],N[I]);let $=E.generateId();this.$={id:$,type:"composite",label:"",children:N[I-1]};break;case 29:E.getLogger().debug("Rule: node (NODE_ID separator): ",N[I]),this.$={id:N[I]};break;case 30:E.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",N[I-1],N[I]),this.$={id:N[I-1],label:N[I].label,typeStr:N[I].typeStr,directions:N[I].directions};break;case 31:E.getLogger().debug("Rule: dirList: ",N[I]),this.$=[N[I]];break;case 32:E.getLogger().debug("Rule: dirList: ",N[I-1],N[I]),this.$=[N[I-1]].concat(N[I]);break;case 33:E.getLogger().debug("Rule: nodeShapeNLabel: ",N[I-2],N[I-1],N[I]),this.$={typeStr:N[I-2]+N[I],label:N[I-1]};break;case 34:E.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",N[I-3],N[I-2]," #3:",N[I-1],N[I]),this.$={typeStr:N[I-3]+N[I],label:N[I-2],directions:N[I-1]};break;case 35:case 36:this.$={type:"classDef",id:N[I-1].trim(),css:N[I].trim()};break;case 37:this.$={type:"applyClass",id:N[I-1].trim(),styleClass:N[I].trim()};break;case 38:this.$={type:"applyStyles",id:N[I-1].trim(),stylesStr:N[I].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:t,11:3,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:n,31:a,39:s,43:l,46:u},{8:[1,20]},e(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:t,21:r,28:i,29:n,31:a,39:s,43:l,46:u}),e(d,[2,16],{14:22,15:f,16:p}),e(d,[2,17]),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),e(d,[2,21]),e(d,[2,22]),e(m,[2,25],{27:[1,25]}),e(d,[2,26]),{19:26,26:12,31:a},{10:t,11:27,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:n,31:a,39:s,43:l,46:u},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},e(g,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},e(h,[2,13]),{26:35,31:a},{31:[2,14]},{17:[1,36]},e(m,[2,24]),{10:t,11:37,13:4,14:22,15:f,16:p,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:n,31:a,39:s,43:l,46:u},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},e(g,[2,30]),{18:[1,43]},{18:[1,44]},e(m,[2,23]),{18:[1,45]},{30:[1,46]},e(d,[2,28]),e(d,[2,35]),e(d,[2,36]),e(d,[2,37]),e(d,[2,38]),{36:[1,47]},{33:48,34:y},{15:[1,50]},e(d,[2,27]),e(g,[2,33]),{38:[1,51]},{33:52,34:y,38:[2,31]},{31:[2,15]},e(g,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(w,C){if(C.recoverable)this.trace(w);else{var k=new Error(w);throw k.hash=C,k}},"parseError"),parse:o(function(w){var C=this,k=[0],E=[],A=[null],N=[],P=this.table,I="",D=0,_=0,R=0,M=2,L=1,B=N.slice.call(arguments,1),O=Object.create(this.lexer),$={yy:{}};for(var G in this.yy)Object.prototype.hasOwnProperty.call(this.yy,G)&&($.yy[G]=this.yy[G]);O.setInput(w,$.yy),$.yy.lexer=O,$.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var F=O.yylloc;N.push(F);var V=O.options&&O.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function H(Ee){k.length=k.length-2*Ee,A.length=A.length-Ee,N.length=N.length-Ee}o(H,"popStack");function j(){var Ee;return Ee=E.pop()||O.lex()||L,typeof Ee!="number"&&(Ee instanceof Array&&(E=Ee,Ee=E.pop()),Ee=C.symbols_[Ee]||Ee),Ee}o(j,"lex");for(var U,Q,Y,ae,J,te,re={},ee,Te,ue,De;;){if(Y=k[k.length-1],this.defaultActions[Y]?ae=this.defaultActions[Y]:((U===null||typeof U>"u")&&(U=j()),ae=P[Y]&&P[Y][U]),typeof ae>"u"||!ae.length||!ae[0]){var Ie="";De=[];for(ee in P[Y])this.terminals_[ee]&&ee>M&&De.push("'"+this.terminals_[ee]+"'");O.showPosition?Ie="Parse error on line "+(D+1)+`: +`+O.showPosition()+` +Expecting `+De.join(", ")+", got '"+(this.terminals_[U]||U)+"'":Ie="Parse error on line "+(D+1)+": Unexpected "+(U==L?"end of input":"'"+(this.terminals_[U]||U)+"'"),this.parseError(Ie,{text:O.match,token:this.terminals_[U]||U,line:O.yylineno,loc:F,expected:De})}if(ae[0]instanceof Array&&ae.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Y+", token: "+U);switch(ae[0]){case 1:k.push(U),A.push(O.yytext),N.push(O.yylloc),k.push(ae[1]),U=null,Q?(U=Q,Q=null):(_=O.yyleng,I=O.yytext,D=O.yylineno,F=O.yylloc,R>0&&R--);break;case 2:if(Te=this.productions_[ae[1]][1],re.$=A[A.length-Te],re._$={first_line:N[N.length-(Te||1)].first_line,last_line:N[N.length-1].last_line,first_column:N[N.length-(Te||1)].first_column,last_column:N[N.length-1].last_column},V&&(re._$.range=[N[N.length-(Te||1)].range[0],N[N.length-1].range[1]]),te=this.performAction.apply(re,[I,_,D,$.yy,ae[1],A,N].concat(B)),typeof te<"u")return te;Te&&(k=k.slice(0,-1*Te*2),A=A.slice(0,-1*Te),N=N.slice(0,-1*Te)),k.push(this.productions_[ae[1]][0]),A.push(re.$),N.push(re._$),ue=P[k[k.length-2]][k[k.length-1]],k.push(ue);break;case 3:return!0}}return!0},"parse")},x=(function(){var T={EOF:1,parseError:o(function(C,k){if(this.yy.parser)this.yy.parser.parseError(C,k);else throw new Error(C)},"parseError"),setInput:o(function(w,C){return this.yy=C||this.yy||{},this._input=w,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var w=this._input[0];this.yytext+=w,this.yyleng++,this.offset++,this.match+=w,this.matched+=w;var C=w.match(/(?:\r\n?|\n).*/g);return C?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),w},"input"),unput:o(function(w){var C=w.length,k=w.split(/(?:\r\n?|\n)/g);this._input=w+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-C),this.offset-=C;var E=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),k.length-1&&(this.yylineno-=k.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:k?(k.length===E.length?this.yylloc.first_column:0)+E[E.length-k.length].length-k[0].length:this.yylloc.first_column-C},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-C]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(w){this.unput(this.match.slice(w))},"less"),pastInput:o(function(){var w=this.matched.substr(0,this.matched.length-this.match.length);return(w.length>20?"...":"")+w.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var w=this.match;return w.length<20&&(w+=this._input.substr(0,20-w.length)),(w.substr(0,20)+(w.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var w=this.pastInput(),C=new Array(w.length+1).join("-");return w+this.upcomingInput()+` +`+C+"^"},"showPosition"),test_match:o(function(w,C){var k,E,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),E=w[0].match(/(?:\r\n?|\n).*/g),E&&(this.yylineno+=E.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:E?E[E.length-1].length-E[E.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+w[0].length},this.yytext+=w[0],this.match+=w[0],this.matches=w,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(w[0].length),this.matched+=w[0],k=this.performAction.call(this,this.yy,this,C,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),k)return k;if(this._backtrack){for(var N in A)this[N]=A[N];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var w,C,k,E;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),N=0;NC[0].length)){if(C=k,E=N,this.options.backtrack_lexer){if(w=this.test_match(k,A[N]),w!==!1)return w;if(this._backtrack){C=!1;continue}else return!1}else if(!this.options.flex)break}return C?(w=this.test_match(C,A[E]),w!==!1?w:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var C=this.next();return C||this.lex()},"lex"),begin:o(function(C){this.conditionStack.push(C)},"begin"),popState:o(function(){var C=this.conditionStack.length-1;return C>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(C){return C=this.conditionStack.length-1-Math.abs(C||0),C>=0?this.conditionStack[C]:"INITIAL"},"topState"),pushState:o(function(C){this.begin(C)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(C,k,E,A){var N=A;switch(E){case 0:return C.getLogger().debug("Found block-beta"),10;break;case 1:return C.getLogger().debug("Found id-block"),29;break;case 2:return C.getLogger().debug("Found block"),10;break;case 3:C.getLogger().debug(".",k.yytext);break;case 4:C.getLogger().debug("_",k.yytext);break;case 5:return 5;case 6:return k.yytext=-1,28;break;case 7:return k.yytext=k.yytext.replace(/columns\s+/,""),C.getLogger().debug("COLUMNS (LEX)",k.yytext),28;break;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:C.getLogger().debug("LEX: POPPING STR:",k.yytext),this.popState();break;case 13:return C.getLogger().debug("LEX: STR end:",k.yytext),"STR";break;case 14:return k.yytext=k.yytext.replace(/space\:/,""),C.getLogger().debug("SPACE NUM (LEX)",k.yytext),21;break;case 15:return k.yytext="1",C.getLogger().debug("COLUMNS (LEX)",k.yytext),21;break;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;break;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 21:return this.popState(),this.pushState("CLASSDEFID"),40;break;case 22:return this.popState(),41;break;case 23:return this.pushState("CLASS"),43;break;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;break;case 25:return this.popState(),45;break;case 26:return this.pushState("STYLE_STMNT"),46;break;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;break;case 28:return this.popState(),48;break;case 29:return this.pushState("acc_title"),"acc_title";break;case 30:return this.popState(),"acc_title_value";break;case 31:return this.pushState("acc_descr"),"acc_descr";break;case 32:return this.popState(),"acc_descr_value";break;case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),C.getLogger().debug("Lex: (("),"NODE_DEND";break;case 38:return this.popState(),C.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),C.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 40:return this.popState(),C.getLogger().debug("Lex: (("),"NODE_DEND";break;case 41:return this.popState(),C.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),C.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 43:return this.popState(),C.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 44:return this.popState(),C.getLogger().debug("Lex: (("),"NODE_DEND";break;case 45:return this.popState(),C.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 46:return this.popState(),C.getLogger().debug("Lex: ("),"NODE_DEND";break;case 47:return this.popState(),C.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 48:return this.popState(),C.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 49:return this.popState(),C.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),C.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 51:return this.popState(),C.getLogger().debug("Lex: )"),"NODE_DEND";break;case 52:return this.popState(),C.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 53:return this.popState(),C.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 54:return C.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;break;case 55:return C.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;break;case 56:return C.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;break;case 57:return C.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 58:return C.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;break;case 59:return C.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 60:return C.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 61:return C.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 62:return C.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;break;case 63:return C.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;break;case 64:return C.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 65:return this.pushState("NODE"),35;break;case 66:return this.pushState("NODE"),35;break;case 67:return this.pushState("NODE"),35;break;case 68:return this.pushState("NODE"),35;break;case 69:return this.pushState("NODE"),35;break;case 70:return this.pushState("NODE"),35;break;case 71:return this.pushState("NODE"),35;break;case 72:return C.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;break;case 73:return this.pushState("BLOCK_ARROW"),C.getLogger().debug("LEX ARR START"),37;break;case 74:return C.getLogger().debug("Lex: NODE_ID",k.yytext),31;break;case 75:return C.getLogger().debug("Lex: EOF",k.yytext),8;break;case 76:this.pushState("md_string");break;case 77:this.pushState("md_string");break;case 78:return"NODE_DESCR";case 79:this.popState();break;case 80:C.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:C.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return C.getLogger().debug("LEX: NODE_DESCR:",k.yytext),"NODE_DESCR";break;case 83:C.getLogger().debug("LEX POPPING"),this.popState();break;case 84:C.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return k.yytext=k.yytext.replace(/^,\s*/,""),C.getLogger().debug("Lex (right): dir:",k.yytext),"DIR";break;case 86:return k.yytext=k.yytext.replace(/^,\s*/,""),C.getLogger().debug("Lex (left):",k.yytext),"DIR";break;case 87:return k.yytext=k.yytext.replace(/^,\s*/,""),C.getLogger().debug("Lex (x):",k.yytext),"DIR";break;case 88:return k.yytext=k.yytext.replace(/^,\s*/,""),C.getLogger().debug("Lex (y):",k.yytext),"DIR";break;case 89:return k.yytext=k.yytext.replace(/^,\s*/,""),C.getLogger().debug("Lex (up):",k.yytext),"DIR";break;case 90:return k.yytext=k.yytext.replace(/^,\s*/,""),C.getLogger().debug("Lex (down):",k.yytext),"DIR";break;case 91:return k.yytext="]>",C.getLogger().debug("Lex (ARROW_DIR end):",k.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 92:return C.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;break;case 93:return C.getLogger().debug("Lex: LINK",k.yytext),15;break;case 94:return C.getLogger().debug("Lex: LINK",k.yytext),15;break;case 95:return C.getLogger().debug("Lex: LINK",k.yytext),15;break;case 96:return C.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 97:return C.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 98:return C.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;break;case 99:this.pushState("md_string");break;case 100:return C.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 101:return this.popState(),C.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;break;case 102:return this.popState(),C.getLogger().debug("Lex: LINK",k.yytext),15;break;case 103:return this.popState(),C.getLogger().debug("Lex: LINK",k.yytext),15;break;case 104:return C.getLogger().debug("Lex: COLON",k.yytext),k.yytext=k.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:=]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}};return T})();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b})();Tq.parser=Tq;e8e=Tq});function J4t(e){switch(Z.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return Z.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function eSt(e){switch(Z.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}function tSt(e){switch(e.trim().slice(-1)){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}function rSt(e){switch(e.trim().charAt(0)){case"x":return"arrow_cross";case"o":return"arrow_circle";case"<":return"arrow_point";default:return"arrow_open"}}function iSt(e){return e.includes("==")?"thick":"normal"}function nSt(e){return e.includes(".-")?"dotted":"solid"}var Ql,kq,Cq,r8e,i8e,H4t,a8e,Y4t,b_,wq,j4t,X4t,K4t,Z4t,s8e,Sq,aC,Q4t,n8e,aSt,sSt,oSt,lSt,cSt,uSt,hSt,dSt,fSt,pSt,mSt,gSt,ySt,o8e,l8e=z(()=>{"use strict";s4();br();Ut();St();Ir();Ci();Ql=new Map,kq=[],Cq=new Map,r8e="color",i8e="fill",H4t="bgFill",a8e=",",Y4t=ge(),b_=new Map,wq="",j4t=o(e=>vt.sanitizeText(e,Y4t),"sanitizeText"),X4t=o(function(e,t=""){let r=b_.get(e);r||(r={id:e,styles:[],textStyles:[]},b_.set(e,r)),t?.split(a8e).forEach(i=>{let n=i.replace(/([^;]*);/,"$1").trim();if(RegExp(r8e).exec(i)){let s=n.replace(i8e,H4t).replace(r8e,i8e);r.textStyles.push(s)}r.styles.push(n)})},"addStyleClass"),K4t=o(function(e,t=""){let r=Ql.get(e);t!=null&&(r.styles=t.split(a8e))},"addStyle2Node"),Z4t=o(function(e,t){e.split(",").forEach(function(r){let i=Ql.get(r);if(i===void 0){let n=r.trim();i={id:n,type:"na",children:[]},Ql.set(n,i)}i.classes||(i.classes=[]),i.classes.push(t)})},"setCssClass"),s8e=o((e,t)=>{let r=e.flat(),i=[],a=r.find(s=>s?.type==="column-setting")?.columns??-1;for(let s of r){if(typeof a=="number"&&a>0&&s.type!=="column-setting"&&typeof s.widthInColumns=="number"&&s.widthInColumns>a&&Z.warn(`Block ${s.id} width ${s.widthInColumns} exceeds configured column width ${a}`),s.label&&(s.label=j4t(s.label)),s.type==="classDef"){X4t(s.id,s.css);continue}if(s.type==="applyClass"){Z4t(s.id,s?.styleClass??"");continue}if(s.type==="applyStyles"){s?.stylesStr&&K4t(s.id,s?.stylesStr);continue}if(s.type==="column-setting")t.columns=s.columns??-1;else if(s.type==="edge"){let l=(Cq.get(s.id)??0)+1;Cq.set(s.id,l),s.id=l+"-"+s.id,kq.push(s)}else{s.label||(s.type==="composite"?s.label="":s.label=s.id);let l=Ql.get(s.id);if(l===void 0?Ql.set(s.id,s):(s.type!=="na"&&(l.type=s.type),s.label!==s.id&&(l.label=s.label)),s.children&&s8e(s.children,s),s.type==="space"){let u=s.width??1;for(let h=0;h{Z.debug("Clear called"),gr(),aC={id:"root",type:"composite",children:[],columns:-1},Ql=new Map([["root",aC]]),Sq=[],b_=new Map,kq=[],Cq=new Map,wq=""},"clear");o(J4t,"typeStr2Type");o(eSt,"edgeTypeStr2Type");o(tSt,"edgeStrToEdgeData");o(rSt,"edgeStrToEdgeStartData");o(iSt,"edgeStrToThickness");o(nSt,"edgeStrToPattern");n8e=0,aSt=o(()=>(n8e++,"id-"+Math.random().toString(36).substr(2,12)+"-"+n8e),"generateId"),sSt=o(e=>{aC.children=e,s8e(e,aC),Sq=aC.children},"setHierarchy"),oSt=o(e=>{let t=Ql.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},"getColumns"),lSt=o(()=>[...Ql.values()],"getBlocksFlat"),cSt=o(()=>Sq||[],"getBlocks"),uSt=o(()=>kq,"getEdges"),hSt=o(e=>Ql.get(e),"getBlock"),dSt=o(e=>{Ql.set(e.id,e)},"setBlock"),fSt=o(e=>{wq=e},"setDiagramId"),pSt=o(()=>wq,"getDiagramId"),mSt=o(()=>Z,"getLogger"),gSt=o(function(){return b_},"getClasses"),ySt={getConfig:o(()=>Nt().block,"getConfig"),typeStr2Type:J4t,edgeTypeStr2Type:eSt,edgeStrToEdgeData:tSt,edgeStrToEdgeStartData:rSt,edgeStrToThickness:iSt,edgeStrToPattern:nSt,getLogger:mSt,getBlocksFlat:lSt,getBlocks:cSt,getEdges:uSt,setHierarchy:sSt,getBlock:hSt,setBlock:dSt,getColumns:oSt,getClasses:gSt,clear:Q4t,generateId:aSt,setDiagramId:fSt,getDiagramId:pSt},o8e=ySt});var Eq,vSt,c8e,u8e=z(()=>{"use strict";Cn();k1();Eq=o((e,t)=>{let r=Ff,i=r(e,"r"),n=r(e,"g"),a=r(e,"b");return mn(i,n,a,t)},"fade"),vSt=o(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + /* + * This is for backward compatibility with existing code that didn't + * add a \`

    \` around edge labels. + * + * TODO: We should probably remove this in a future release. + */ + p { + margin: 0; + padding: 0; + display: inline; + } + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${e.edgeLabelBackground}; + } + + .node .cluster { + // fill: ${Eq(e.mainBkg,.5)}; + fill: ${Eq(e.clusterBkg,.5)}; + stroke: ${Eq(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } + ${Vc()} +`,"getStyles"),c8e=vSt});var xSt,bSt,TSt,CSt,kSt,wSt,SSt,ESt,ASt,_St,DSt,h8e,d8e=z(()=>{"use strict";St();xSt=o((e,t,r,i)=>{t.forEach(n=>{DSt[n](e,r,i)})},"insertMarkers"),bSt=o((e,t,r)=>{Z.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),TSt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),CSt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),kSt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),wSt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),SSt=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),ESt=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),ASt=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),_St=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),DSt={extension:bSt,composition:TSt,aggregation:CSt,dependency:kSt,lollipop:wSt,point:SSt,circle:ESt,cross:ASt,barb:_St},h8e=xSt});function f8e(e,t){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(t<0||!Number.isInteger(t))throw new Error("Position must be a non-negative integer."+t);if(e<0)return{px:t,py:0};if(e===1)return{px:0,py:t};let r=t%e,i=Math.floor(t/e);return{px:r,py:i}}function Aq(e,t,r=0,i=0){Z.debug("setBlockSizes abc95 (start)",e.id,e?.size?.x,"block width =",e?.size,"siblingWidth",r),e?.size?.width||(e.size={width:r,height:i,x:0,y:0});let n=0,a=0;if(e.children?.length>0){for(let m of e.children)Aq(m,t);let s=RSt(e);n=s.width,a=s.height,Z.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",n,a);for(let m of e.children)m.size&&(Z.debug(`abc95 Setting size of children of ${e.id} id=${m.id} ${n} ${a} ${JSON.stringify(m.size)}`),m.size.width=n*(m.widthInColumns??1)+Tn*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,Z.debug(`abc95 updating size of ${e.id} children child:${m.id} maxWidth:${n} maxHeight:${a}`));for(let m of e.children)Aq(m,t,n,a);let l=e.columns??-1,u=0;for(let m of e.children)u+=m.widthInColumns??1;let h=e.children.length;l>0&&l0?Math.min(e.children.length,l):e.children.length;if(m>0){let g=(f-m*Tn-Tn)/m;Z.debug("abc95 (growing to fit) width",e.id,f,e.size?.width,g);for(let y of e.children)y.size&&(y.size.width=g)}}e.size={width:f,height:p,x:0,y:0}}Z.debug("setBlockSizes abc94 (done)",e.id,e?.size?.x,e?.size?.width,e?.size?.y,e?.size?.height)}function p8e(e,t){Z.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);let r=e.columns??-1;if(Z.debug("layoutBlocks columns abc95",e.id,"=>",r,e),e.children&&e.children.length>0){let i=e?.children[0]?.size?.width??0,n=e.children.length*i+(e.children.length-1)*Tn;Z.debug("widthOfChildren 88",n,"posX");let a=new Map;{let d=0;for(let f of e.children){if(!f.size)continue;let{py:p}=f8e(r,d),m=a.get(p)??0;f.size.height>m&&a.set(p,f.size.height);let g=f?.widthInColumns??1;r>0&&(g=Math.min(g,r-d%r)),d+=g}}let s=new Map;{let d=0,f=[...a.keys()].sort((p,m)=>p-m);for(let p of f)s.set(p,d),d+=(a.get(p)??0)+Tn}let l=0;Z.debug("abc91 block?.size?.x",e.id,e?.size?.x);let u=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-Tn,h=0;for(let d of e.children){let f=e;if(!d.size)continue;let{width:p,height:m}=d.size,{px:g,py:y}=f8e(r,l);if(y!=h&&(h=y,u=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-Tn,Z.debug("New row in layout for block",e.id," and child ",d.id,h)),Z.debug(`abc89 layout blocks (child) id: ${d.id} Pos: ${l} (px, py) ${g},${y} (${f?.size?.x},${f?.size?.y}) parent: ${f.id} width: ${p}${Tn}`),f.size){let x=p/2;d.size.x=u+Tn+x,Z.debug(`abc91 layout blocks (calc) px, pyid:${d.id} startingPos=X${u} new startingPosX${d.size.x} ${x} padding=${Tn} width=${p} halfWidth=${x} => x:${d.size.x} y:${d.size.y} ${d.widthInColumns} (width * (child?.w || 1)) / 2 ${p*(d?.widthInColumns??1)/2}`),u=d.size.x+x;let b=s.get(y)??0,T=a.get(y)??m;d.size.y=f.size.y-f.size.height/2+b+T/2+Tn,Z.debug(`abc88 layout blocks (calc) px, pyid:${d.id}startingPosX${u}${Tn}${x}=>x:${d.size.x}y:${d.size.y}${d.widthInColumns}(width * (child?.w || 1)) / 2${p*(d?.widthInColumns??1)/2}`)}d.children&&p8e(d,t);let v=d?.widthInColumns??1;r>0&&(v=Math.min(v,r-l%r)),l+=v,Z.debug("abc88 columnsPos",d,l)}}Z.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`)}function m8e(e,{minX:t,minY:r,maxX:i,maxY:n}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){let{x:a,y:s,width:l,height:u}=e.size;a-l/2i&&(i=a+l/2),s+u/2>n&&(n=s+u/2)}if(e.children)for(let a of e.children)({minX:t,minY:r,maxX:i,maxY:n}=m8e(a,{minX:t,minY:r,maxX:i,maxY:n}));return{minX:t,minY:r,maxX:i,maxY:n}}function g8e(e){let t=e.getBlock("root");if(!t)return;Aq(t,e,0,0),p8e(t,e),Z.debug("getBlocks",JSON.stringify(t,null,2));let{minX:r,minY:i,maxX:n,maxY:a}=m8e(t),s=a-i,l=n-r;return{x:r,y:i,width:l,height:s}}var Tn,RSt,y8e=z(()=>{"use strict";St();Ut();Tn=ge()?.block?.padding??8;o(f8e,"calculateBlockPosition");RSt=o(e=>{let t=0,r=0;for(let i of e.children){let{width:n,height:a,x:s,y:l}=i.size??{width:0,height:0,x:0,y:0};if(Z.debug("getMaxChildSize abc95 child:",i.id,"width:",n,"height:",a,"x:",s,"y:",l,i.type),i.type==="space")continue;let u=n/(i.widthInColumns??1);u>t&&(t=u),a>r&&(r=a)}return{width:t,height:r}},"getMaxChildSize");o(Aq,"setBlockSizes");o(p8e,"layoutBlocks");o(m8e,"findBounds");o(g8e,"layout")});var LSt,js,T_=z(()=>{"use strict";br();Ut();_s();LSt=o(async(e,t,r,i=!1,n=!1)=>{let a=t||"";typeof a=="object"&&(a=a[0]);let s=ge(),l=Mr(s);return await wi(e,a,{style:r,isTitle:i,useHtmlLabels:l,markdown:!1,isNode:n,width:Number.POSITIVE_INFINITY},s)},"createLabel"),js=LSt});var x8e,MSt,v8e,b8e=z(()=>{"use strict";St();x8e=o((e,t,r,i,n)=>{t.arrowTypeStart&&v8e(e,"start",t.arrowTypeStart,r,i,n),t.arrowTypeEnd&&v8e(e,"end",t.arrowTypeEnd,r,i,n)},"addEdgeMarkers"),MSt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},v8e=o((e,t,r,i,n,a)=>{let s=MSt[r];if(!s){Z.warn(`Unknown arrow type: ${r}`);return}let l=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${i}#${n}_${a}-${s}${l})`)},"addEdgeMarker")});function C_(e,t){Mr(ge())&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}var _q,$a,C8e,k8e,NSt,ISt,T8e,w8e,S8e=z(()=>{"use strict";St();T_();_s();ON();Rr();Ut();br();Xt();Ir();BN();rb();b8e();_q={},$a={},C8e=o(async(e,t)=>{let r=ge(),i=Mr(r),n=e.insert("g").attr("class","edgeLabel"),a=n.insert("g").attr("class","label"),s=t.labelType==="markdown",l=await wi(e,t.label,{style:t.labelStyle,useHtmlLabels:i,addSvgBackground:s,isNode:!1,markdown:s,width:s?void 0:Number.POSITIVE_INFINITY},r);a.node().appendChild(l);let u=l.getBBox(),h=u;if(i){let f=l.children[0],p=Je(l);u=f.getBoundingClientRect(),h=u,p.attr("width",u.width),p.attr("height",u.height)}else{let f=Je(l).select("text").node();f&&typeof f.getBBox=="function"&&(h=f.getBBox())}a.attr("transform",$o(h,i)),_q[t.id]=n,t.width=u.width,t.height=u.height;let d;if(t.startLabelLeft){let f=e.insert("g").attr("class","edgeTerminals"),p=f.insert("g").attr("class","inner"),m=await js(p,t.startLabelLeft,t.labelStyle);d=m;let g=m.getBBox();if(i){let y=m.children[0],v=Je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",$o(g,i)),$a[t.id]||($a[t.id]={}),$a[t.id].startLeft=f,C_(d,t.startLabelLeft)}if(t.startLabelRight){let f=e.insert("g").attr("class","edgeTerminals"),p=f.insert("g").attr("class","inner"),m=await js(p,t.startLabelRight,t.labelStyle);d=m;let g=m.getBBox();if(i){let y=m.children[0],v=Je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",$o(g,i)),$a[t.id]||($a[t.id]={}),$a[t.id].startRight=f,C_(d,t.startLabelRight)}if(t.endLabelLeft){let f=e.insert("g").attr("class","edgeTerminals"),p=f.insert("g").attr("class","inner"),m=await js(f,t.endLabelLeft,t.labelStyle);d=m;let g=m.getBBox();if(i){let y=m.children[0],v=Je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",$o(g,i)),$a[t.id]||($a[t.id]={}),$a[t.id].endLeft=f,C_(d,t.endLabelLeft)}if(t.endLabelRight){let f=e.insert("g").attr("class","edgeTerminals"),p=f.insert("g").attr("class","inner"),m=await js(f,t.endLabelRight,t.labelStyle);d=m;let g=m.getBBox();if(i){let y=m.children[0],v=Je(m);g=y.getBoundingClientRect(),v.attr("width",g.width),v.attr("height",g.height)}p.attr("transform",$o(g,i)),$a[t.id]||($a[t.id]={}),$a[t.id].endRight=f,C_(d,t.endLabelRight)}return l},"insertEdgeLabel");o(C_,"setTerminalWidth");k8e=o((e,t)=>{Z.debug("Moving label abc88 ",e.id,e.label,_q[e.id],t);let r=t.updatedPath?t.updatedPath:t.originalPath,i=ge(),{subGraphTitleTotalMargin:n}=zu(i);if(e.label){let a=_q[e.id],s=e.x,l=e.y;if(r){let u=Zt.calcLabelPosition(r);Z.debug("Moving label "+e.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),t.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+n/2})`)}if(e.startLabelLeft){let a=$a[e.id].startLeft,s=e.x,l=e.y;if(r){let u=Zt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.startLabelRight){let a=$a[e.id].startRight,s=e.x,l=e.y;if(r){let u=Zt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelLeft){let a=$a[e.id].endLeft,s=e.x,l=e.y;if(r){let u=Zt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelRight){let a=$a[e.id].endRight,s=e.x,l=e.y;if(r){let u=Zt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),NSt=o((e,t)=>{let r=e.x,i=e.y,n=Math.abs(t.x-r),a=Math.abs(t.y-i),s=e.width/2,l=e.height/2;return n>=s||a>=l},"outsideNode"),ISt=o((e,t,r)=>{Z.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(r)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let i=e.x,n=e.y,a=Math.abs(i-r.x),s=e.width/2,l=r.xMath.abs(i-t.x)*u){let f=r.y{Z.debug("abc88 cutPathAtIntersect",e,t);let r=[],i=e[0],n=!1;return e.forEach(a=>{if(!NSt(t,a)&&!n){let s=ISt(t,i,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),n=!0}else i=a,n||r.push(a)}),r},"cutPathAtIntersect"),w8e=o(function(e,t,r,i,n,a,s){let l=r.points;Z.debug("abc88 InsertEdge: edge=",r,"e=",t);let u=!1,h=a.node(t.v);var d=a.node(t.w);d?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(d.intersect(l[l.length-1]))),r.toCluster&&(Z.debug("to cluster abc88",i[r.toCluster]),l=T8e(r.points,i[r.toCluster].node),u=!0),r.fromCluster&&(Z.debug("from cluster abc88",i[r.fromCluster]),l=T8e(l.reverse(),i[r.fromCluster].node).reverse(),u=!0);let f=l.filter(w=>!Number.isNaN(w.y)),p=Dl;r.curve&&(n==="graph"||n==="flowchart")&&(p=r.curve);let{x:m,y:g}=U4(r),y=_l().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=e.append("path").attr("d",y(f)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(ge().flowchart.arrowMarkerAbsolute||ge().state.arrowMarkerAbsolute)&&(b=Hf(!0)),x8e(x,r,b,s,n);let T={};return u&&(T.updatedPath=l),T.originalPath=r.points,T},"insertEdge")});var OSt,E8e,A8e=z(()=>{"use strict";OSt=o(e=>{let t=new Set;for(let r of e)switch(r){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(r);break}return t},"expandAndDeduplicateDirections"),E8e=o((e,t,r,i)=>{let n=OSt(e),a=2,s=t.height+2*r.padding,l=s/a,u=i??t.width+2*l+r.padding,h=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:u/2,y:2*h},{x:u-l,y:0},{x:u,y:0},{x:u,y:-s/3},{x:u+2*h,y:-s/2},{x:u,y:-2*s/3},{x:u,y:-s},{x:u-l,y:-s},{x:u/2,y:-s-2*h},{x:l,y:-s},{x:0,y:-s},{x:0,y:-2*s/3},{x:-2*h,y:-s/2},{x:0,y:-s/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:l,y:0},{x:u-l,y:0},{x:u,y:-s/2},{x:u-l,y:-s},{x:l,y:-s},{x:0,y:-s/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:u-l,y:-s},{x:u,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:u,y:-l},{x:u,y:-s+l},{x:0,y:-s}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:u,y:0},{x:0,y:-l},{x:0,y:-s+l},{x:u,y:-s}]:n.has("right")&&n.has("left")?[{x:l,y:0},{x:l,y:-h},{x:u-l,y:-h},{x:u-l,y:0},{x:u,y:-s/2},{x:u-l,y:-s},{x:u-l,y:-s+h},{x:l,y:-s+h},{x:l,y:-s},{x:0,y:-s/2}]:n.has("up")&&n.has("down")?[{x:u/2,y:0},{x:0,y:-h},{x:l,y:-h},{x:l,y:-s+h},{x:0,y:-s+h},{x:u/2,y:-s},{x:u,y:-s+h},{x:u-l,y:-s+h},{x:u-l,y:-h},{x:u,y:-h}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:u,y:-l},{x:0,y:-s}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:u,y:0},{x:0,y:-s}]:n.has("left")&&n.has("up")?[{x:u,y:0},{x:0,y:-l},{x:u,y:-s}]:n.has("left")&&n.has("down")?[{x:u,y:0},{x:0,y:0},{x:u,y:-s}]:n.has("right")?[{x:l,y:-h},{x:l,y:-h},{x:u-l,y:-h},{x:u-l,y:0},{x:u,y:-s/2},{x:u-l,y:-s},{x:u-l,y:-s+h},{x:l,y:-s+h},{x:l,y:-s+h}]:n.has("left")?[{x:l,y:0},{x:l,y:-h},{x:u-l,y:-h},{x:u-l,y:-s+h},{x:l,y:-s+h},{x:l,y:-s},{x:0,y:-s/2}]:n.has("up")?[{x:l,y:-h},{x:l,y:-s+h},{x:0,y:-s+h},{x:u/2,y:-s},{x:u,y:-s+h},{x:u-l,y:-s+h},{x:u-l,y:-h}]:n.has("down")?[{x:u/2,y:0},{x:0,y:-h},{x:l,y:-h},{x:l,y:-s+h},{x:u-l,y:-s+h},{x:u-l,y:-h},{x:u,y:-h}]:[{x:0,y:0}]},"getArrowPoints")});function PSt(e,t){return e.intersect(t)}var _8e,D8e=z(()=>{"use strict";o(PSt,"intersectNode");_8e=PSt});function BSt(e,t,r,i){var n=e.x,a=e.y,s=n-i.x,l=a-i.y,u=Math.sqrt(t*t*l*l+r*r*s*s),h=Math.abs(t*r*s/u);i.x{"use strict";o(BSt,"intersectEllipse");k_=BSt});function FSt(e,t,r){return k_(e,t,t,r)}var R8e,L8e=z(()=>{"use strict";Dq();o(FSt,"intersectCircle");R8e=FSt});function $St(e,t,r,i){var n,a,s,l,u,h,d,f,p,m,g,y,v,x,b;if(n=t.y-e.y,s=e.x-t.x,u=t.x*e.y-e.x*t.y,p=n*r.x+s*r.y+u,m=n*i.x+s*i.y+u,!(p!==0&&m!==0&&M8e(p,m))&&(a=i.y-r.y,l=r.x-i.x,h=i.x*r.y-r.x*i.y,d=a*e.x+l*e.y+h,f=a*t.x+l*t.y+h,!(d!==0&&f!==0&&M8e(d,f))&&(g=n*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-n*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function M8e(e,t){return e*t>0}var N8e,I8e=z(()=>{"use strict";o($St,"intersectLine");o(M8e,"sameSign");N8e=$St});function zSt(e,t,r){var i=e.x,n=e.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,t.x),l=Math.min(l,t.y));for(var u=i-e.width/2-s,h=n-e.height/2-l,d=0;d1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),T=y.x-r.x,w=y.y-r.y,C=Math.sqrt(T*T+w*w);return b{"use strict";I8e();O8e=zSt;o(zSt,"intersectPolygon")});var GSt,B8e,F8e=z(()=>{"use strict";GSt=o((e,t)=>{var r=e.x,i=e.y,n=t.x-r,a=t.y-i,s=e.width/2,l=e.height/2,u,h;return Math.abs(a)*s>Math.abs(n)*l?(a<0&&(l=-l),u=a===0?0:l*n/a,h=l):(n<0&&(s=-s),u=s,h=n===0?0:s*a/n),{x:r+u,y:i+h}},"intersectRect"),B8e=GSt});var Pi,Rq=z(()=>{"use strict";D8e();L8e();Dq();P8e();F8e();Pi={node:_8e,circle:R8e,ellipse:k_,polygon:O8e,rect:B8e}});function Jl(e,t,r,i){return e.insert("polygon",":first-child").attr("points",i.map(function(n){return n.x+","+n.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}var Mn,ji,Lq=z(()=>{"use strict";T_();_s();Ut();br();Rr();Ir();Xt();cN();Mn=o(async(e,t,r,i)=>{let n=ge(),a,s=t.useHtmlLabels||Mr(n);r?a=r:a="node default";let l=e.insert("g").attr("class",a).attr("id",t.domId||t.id),u=l.insert("g").attr("class","label").attr("style",t.labelStyle),h;t.labelText===void 0?h="":h=typeof t.labelText=="string"?t.labelText:t.labelText[0];let d;t.labelType==="markdown"?d=wi(u,fr(Qa(h),n),{useHtmlLabels:s,width:t.width||n.flowchart.wrappingWidth,classes:"markdown-node-label"},n):d=await js(u,fr(Qa(h),n),t.labelStyle,!1,i);let f=d.getBBox(),p=t.padding/2;if(Mr(n)){let m=d.children[0],g=Je(d);await E4(m,h),f=m.getBoundingClientRect(),g.attr("width",f.width),g.attr("height",f.height)}return s?u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):u.attr("transform","translate(0, "+-f.height/2+")"),t.centerLabel&&u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:f,halfPadding:p,label:u}},"labelHelper"),ji=o((e,t)=>{let r=t.node().getBBox();e.width=r.width,e.height=r.height},"updateNodeBounds");o(Jl,"insertPolygonShape")});var VSt,$8e,z8e=z(()=>{"use strict";Lq();St();Ut();br();Rq();VSt=o(async(e,t)=>{t.useHtmlLabels||Mr(ge())||(t.centerLabel=!0);let{shapeSvg:i,bbox:n,halfPadding:a}=await Mn(e,t,"node "+t.classes,!0);Z.info("Classes = ",t.classes);let s=i.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-n.width/2-a).attr("y",-n.height/2-a).attr("width",n.width+t.padding).attr("height",n.height+t.padding),ji(t,s),t.intersect=function(l){return Pi.rect(t,l)},i},"note"),$8e=VSt});function Mq(e,t,r,i){let n=[],a=o(l=>{n.push(l,0)},"addBorder"),s=o(l=>{n.push(0,l)},"skipBorder");t.includes("t")?(Z.debug("add top border"),a(r)):s(r),t.includes("r")?(Z.debug("add right border"),a(i)):s(i),t.includes("b")?(Z.debug("add bottom border"),a(r)):s(r),t.includes("l")?(Z.debug("add left border"),a(i)):s(i),e.attr("stroke-dasharray",n.join(" "))}var G8e,ko,V8e,WSt,qSt,USt,HSt,YSt,jSt,XSt,KSt,ZSt,QSt,JSt,e3t,t3t,r3t,i3t,n3t,a3t,s3t,o3t,W8e,l3t,c3t,q8e,w_,Nq,U8e,H8e=z(()=>{"use strict";Rr();Ut();br();St();A8e();T_();Rq();z8e();Lq();G8e=o(e=>e?" "+e:"","formatClass"),ko=o((e,t)=>`${t||"node default"}${G8e(e.classes)} ${G8e(e.class)}`,"getClassesFromNode"),V8e=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.width+t.padding,a=i.height+t.padding,s=n+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];Z.info("Question main (Circle)");let u=Jl(r,s,s,l);return u.attr("style",t.style),ji(t,u),t.intersect=function(h){return Z.warn("Intersect called"),Pi.polygon(t,l,h)},r},"question"),WSt=o((e,t)=>{let r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=28,n=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return r.insert("polygon",":first-child").attr("points",n.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return Pi.circle(t,14,s)},r},"choice"),qSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=4,a=t.positioned?t.height:i.height+t.padding,s=a/n,l=t.positioned?t.width:i.width+2*s+t.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=Jl(r,l,a,u);return h.attr("style",t.style),ji(t,h),t.intersect=function(d){return Pi.polygon(t,u,d)},r},"hexagon"),USt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,void 0,!0),n=2,a=i.height+2*t.padding,s=a/n,l=i.width+2*s+t.padding,h=t.positioned&&(t.widthInColumns??1)>1&&t.width>l?t.width:l,d=E8e(t.directions,i,t,h),f=Jl(r,h,a,d);return f.attr("style",t.style),ji(t,f),t.intersect=function(p){return Pi.polygon(t,d,p)},r},"block_arrow"),HSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.width+t.padding,a=i.height+t.padding,s=[{x:-a/2,y:0},{x:n,y:0},{x:n,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Jl(r,n,a,s).attr("style",t.style),t.width=n+a,t.height=a,t.intersect=function(u){return Pi.polygon(t,s,u)},r},"rect_left_inv_arrow"),YSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t),!0),n=i.width+t.padding,a=i.height+t.padding,s=[{x:-2*a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:a/6,y:-a}],l=Jl(r,n,a,s);return l.attr("style",t.style),ji(t,l),t.intersect=function(u){return Pi.polygon(t,s,u)},r},"lean_right"),jSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.width+t.padding,a=i.height+t.padding,s=[{x:2*a/6,y:0},{x:n+a/6,y:0},{x:n-2*a/6,y:-a},{x:-a/6,y:-a}],l=Jl(r,n,a,s);return l.attr("style",t.style),ji(t,l),t.intersect=function(u){return Pi.polygon(t,s,u)},r},"lean_left"),XSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.width+t.padding,a=i.height+t.padding,s=[{x:-2*a/6,y:0},{x:n+2*a/6,y:0},{x:n-a/6,y:-a},{x:a/6,y:-a}],l=Jl(r,n,a,s);return l.attr("style",t.style),ji(t,l),t.intersect=function(u){return Pi.polygon(t,s,u)},r},"trapezoid"),KSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.width+t.padding,a=i.height+t.padding,s=[{x:a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=Jl(r,n,a,s);return l.attr("style",t.style),ji(t,l),t.intersect=function(u){return Pi.polygon(t,s,u)},r},"inv_trapezoid"),ZSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.width+t.padding,a=i.height+t.padding,s=[{x:0,y:0},{x:n+a/2,y:0},{x:n,y:-a/2},{x:n+a/2,y:-a},{x:0,y:-a}],l=Jl(r,n,a,s);return l.attr("style",t.style),ji(t,l),t.intersect=function(u){return Pi.polygon(t,s,u)},r},"rect_right_inv_arrow"),QSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.width+t.padding,a=n/2,s=a/(2.5+n/50),l=i.height+s+t.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+n+" 0 a "+a+","+s+" 0,0,0 "+-n+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+n+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",u).attr("transform","translate("+-n/2+","+-(l/2+s)+")");return ji(t,h),t.intersect=function(d){let f=Pi.rect(t,d),p=f.x-t.x;if(a!=0&&(Math.abs(p)t.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,d.y-t.y>0&&(m=-m),f.y+=m}return f},r},"cylinder"),JSt=o(async(e,t)=>{let{shapeSvg:r,bbox:i,halfPadding:n}=await Mn(e,t,"node "+t.classes+" "+t.class,!0),a=r.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,l=t.positioned?t.height:i.height+t.padding,u=t.positioned?-s/2:-i.width/2-n,h=t.positioned?-l/2:-i.height/2-n;if(a.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),t.props){let d=new Set(Object.keys(t.props));t.props.borders&&(Mq(a,t.props.borders,s,l),d.delete("borders")),d.forEach(f=>{Z.warn(`Unknown node property ${f}`)})}return ji(t,a),t.intersect=function(d){return Pi.rect(t,d)},r},"rect"),e3t=o(async(e,t)=>{let{shapeSvg:r,bbox:i,halfPadding:n}=await Mn(e,t,"node "+t.classes,!0),a=r.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,l=t.positioned?t.height:i.height+t.padding,u=t.positioned?-s/2:-i.width/2-n,h=t.positioned?-l/2:-i.height/2-n;if(a.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),t.props){let d=new Set(Object.keys(t.props));t.props.borders&&(Mq(a,t.props.borders,s,l),d.delete("borders")),d.forEach(f=>{Z.warn(`Unknown node property ${f}`)})}return ji(t,a),t.intersect=function(d){return Pi.rect(t,d)},r},"composite"),t3t=o(async(e,t)=>{let{shapeSvg:r}=await Mn(e,t,"label",!0);Z.trace("Classes = ",t.class);let i=r.insert("rect",":first-child"),n=0,a=0;if(i.attr("width",n).attr("height",a),r.attr("class","label edgeLabel"),t.props){let s=new Set(Object.keys(t.props));t.props.borders&&(Mq(i,t.props.borders,n,a),s.delete("borders")),s.forEach(l=>{Z.warn(`Unknown node property ${l}`)})}return ji(t,i),t.intersect=function(s){return Pi.rect(t,s)},r},"labelRect");o(Mq,"applyNodePropertyBorders");r3t=o(async(e,t)=>{let r;t.classes?r="node "+t.classes:r="node default";let i=e.insert("g").attr("class",r).attr("id",t.domId||t.id),n=i.insert("rect",":first-child"),a=i.insert("line"),s=i.insert("g").attr("class","label"),l=t.labelText.flat?t.labelText.flat():t.labelText,u="";typeof l=="object"?u=l[0]:u=l,Z.info("Label text abc79",u,l,typeof l=="object");let h=await js(s,u,t.labelStyle,!0,!0),d={width:0,height:0};if(Mr(ge())){let y=h.children[0],v=Je(h);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height)}Z.info("Text 2",l);let f=l.slice(1,l.length),p=h.getBBox(),m=await js(s,f.join?f.join("
    "):f,t.labelStyle,!0,!0);if(Mr(ge())){let y=m.children[0],v=Je(m);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height)}let g=t.padding/2;return Je(m).attr("transform","translate( "+(d.width>p.width?0:(p.width-d.width)/2)+", "+(p.height+g+5)+")"),Je(h).attr("transform","translate( "+(d.width{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.height+t.padding,a=i.width+n/4+t.padding,s=r.insert("rect",":first-child").attr("style",t.style).attr("rx",n/2).attr("ry",n/2).attr("x",-a/2).attr("y",-n/2).attr("width",a).attr("height",n);return ji(t,s),t.intersect=function(l){return Pi.rect(t,l)},r},"stadium"),n3t=o(async(e,t)=>{let{shapeSvg:r,bbox:i,halfPadding:n}=await Mn(e,t,ko(t,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+n).attr("width",i.width+t.padding).attr("height",i.height+t.padding),Z.info("Circle main"),ji(t,a),t.intersect=function(s){return Z.info("Circle intersect",t,i.width/2+n,s),Pi.circle(t,i.width/2+n,s)},r},"circle"),a3t=o(async(e,t)=>{let{shapeSvg:r,bbox:i,halfPadding:n}=await Mn(e,t,ko(t,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",t.class),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+n+a).attr("width",i.width+t.padding+a*2).attr("height",i.height+t.padding+a*2),u.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+n).attr("width",i.width+t.padding).attr("height",i.height+t.padding),Z.info("DoubleCircle main"),ji(t,l),t.intersect=function(h){return Z.info("DoubleCircle intersect",t,i.width/2+n+a,h),Pi.circle(t,i.width/2+n+a,h)},r},"doublecircle"),s3t=o(async(e,t)=>{let{shapeSvg:r,bbox:i}=await Mn(e,t,ko(t,void 0),!0),n=i.width+t.padding,a=i.height+t.padding,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=Jl(r,n,a,s);return l.attr("style",t.style),ji(t,l),t.intersect=function(u){return Pi.polygon(t,s,u)},r},"subroutine"),o3t=o((e,t)=>{let r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),ji(t,i),t.intersect=function(n){return Pi.circle(t,7,n)},r},"start"),W8e=o((e,t,r)=>{let i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=70,a=10;r==="LR"&&(n=10,a=70);let s=i.append("rect").attr("x",-1*n/2).attr("y",-1*a/2).attr("width",n).attr("height",a).attr("class","fork-join");return ji(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(l){return Pi.rect(t,l)},i},"forkJoin"),l3t=o((e,t)=>{let r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=r.insert("circle",":first-child"),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),ji(t,n),t.intersect=function(a){return Pi.circle(t,7,a)},r},"end"),c3t=o(async(e,t)=>{let r=t.padding/2,i=4,n=8,a;t.classes?a="node "+t.classes:a="node default";let s=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),d=0,f=i,p=s.insert("g").attr("class","label"),m=0,g=t.classData.annotations?.[0],y=t.classData.annotations[0]?"\xAB"+t.classData.annotations[0]+"\xBB":"",v=await js(p,y,t.labelStyle,!0,!0),x=v.getBBox();if(Mr(ge())){let A=v.children[0],N=Je(v);x=A.getBoundingClientRect(),N.attr("width",x.width),N.attr("height",x.height)}t.classData.annotations[0]&&(f+=x.height+i,d+=x.width);let b=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(Mr(ge())?b+="<"+t.classData.type+">":b+="<"+t.classData.type+">");let T=await js(p,b,t.labelStyle,!0,!0);Je(T).attr("class","classTitle");let w=T.getBBox();if(Mr(ge())){let A=T.children[0],N=Je(T);w=A.getBoundingClientRect(),N.attr("width",w.width),N.attr("height",w.height)}f+=w.height+i,w.width>d&&(d=w.width);let C=[];t.classData.members.forEach(async A=>{let N=A.getDisplayDetails(),P=N.displayText;Mr(ge())&&(P=P.replace(//g,">"));let I=await js(p,P,N.cssStyle?N.cssStyle:t.labelStyle,!0,!0),D=I.getBBox();if(Mr(ge())){let _=I.children[0],R=Je(I);D=_.getBoundingClientRect(),R.attr("width",D.width),R.attr("height",D.height)}D.width>d&&(d=D.width),f+=D.height+i,C.push(I)}),f+=n;let k=[];if(t.classData.methods.forEach(async A=>{let N=A.getDisplayDetails(),P=N.displayText;Mr(ge())&&(P=P.replace(//g,">"));let I=await js(p,P,N.cssStyle?N.cssStyle:t.labelStyle,!0,!0),D=I.getBBox();if(Mr(ge())){let _=I.children[0],R=Je(I);D=_.getBoundingClientRect(),R.attr("width",D.width),R.attr("height",D.height)}D.width>d&&(d=D.width),f+=D.height+i,k.push(I)}),f+=n,g){let A=(d-x.width)/2;Je(v).attr("transform","translate( "+(-1*d/2+A)+", "+-1*f/2+")"),m=x.height+i}let E=(d-w.width)/2;return Je(T).attr("transform","translate( "+(-1*d/2+E)+", "+(-1*f/2+m)+")"),m+=w.height+i,u.attr("class","divider").attr("x1",-d/2-r).attr("x2",d/2+r).attr("y1",-f/2-r+n+m).attr("y2",-f/2-r+n+m),m+=n,C.forEach(A=>{Je(A).attr("transform","translate( "+-d/2+", "+(-1*f/2+m+n/2)+")");let N=A?.getBBox();m+=(N?.height??0)+i}),m+=n,h.attr("class","divider").attr("x1",-d/2-r).attr("x2",d/2+r).attr("y1",-f/2-r+n+m).attr("y2",-f/2-r+n+m),m+=n,k.forEach(A=>{Je(A).attr("transform","translate( "+-d/2+", "+(-1*f/2+m)+")");let N=A?.getBBox();m+=(N?.height??0)+i}),l.attr("style",t.style).attr("class","outer title-state").attr("x",-d/2-r).attr("y",-(f/2)-r).attr("width",d+t.padding).attr("height",f+t.padding),ji(t,l),t.intersect=function(A){return Pi.rect(t,A)},s},"class_box"),q8e={rhombus:V8e,composite:e3t,question:V8e,rect:JSt,labelRect:t3t,rectWithTitle:r3t,choice:WSt,circle:n3t,doublecircle:a3t,stadium:i3t,hexagon:qSt,block_arrow:USt,rect_left_inv_arrow:HSt,lean_right:YSt,lean_left:jSt,trapezoid:XSt,inv_trapezoid:KSt,rect_right_inv_arrow:ZSt,cylinder:QSt,start:o3t,end:l3t,note:$8e,subroutine:s3t,fork:W8e,join:W8e,class_box:c3t},w_={},Nq=o(async(e,t,r)=>{let i,n;if(t.link){let a;ge().securityLevel==="sandbox"?a="_top":t.linkTarget&&(a=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",a),n=await q8e[t.shape](i,t,r)}else n=await q8e[t.shape](e,t,r),i=n;return t.tooltip&&n.attr("title",t.tooltip),t.class&&n.attr("class","node default "+t.class),w_[t.id]=i,t.haveCallback&&w_[t.id].attr("class",w_[t.id].attr("class")+" clickable"),i},"insertNode"),U8e=o(e=>{let t=w_[e.id];Z.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");let r=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-r)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},"positionNode")});function Y8e(e,t,r=!1){let i=e,n="default";(i?.classes?.length||0)>0&&(n=(i?.classes??[]).join(" ")),n=n+" flowchart-label";let a=0,s="",l;switch(i.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=_M(i?.styles??[]),h=i.label,d=i.size??{width:0,height:0,x:0,y:0},f=t.getDiagramId();return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:n,style:u.style,id:i.id,domId:f?`${f}-${i.id}`:i.id,directions:i.directions,width:d.width,height:d.height,x:d.x,y:d.y,positioned:r,intersect:void 0,type:i.type,padding:l??Nt()?.block?.padding??0,widthInColumns:i.widthInColumns??1}}async function u3t(e,t,r){let i=Y8e(t,r,!1);if(i.type==="group")return;let n=Nt(),a=await Nq(e,i,{config:n}),s=a.node().getBBox(),l=r.getBlock(i.id);l.size={width:s.width,height:s.height,x:0,y:0,node:a},r.setBlock(l),a.remove()}async function h3t(e,t,r){let i=Y8e(t,r,!0);if(r.getBlock(i.id).type!=="space"){let a=Nt();await Nq(e,i,{config:a}),t.intersect=i?.intersect,U8e(i)}}async function Iq(e,t,r,i){for(let n of t)await i(e,n,r),n.children&&await Iq(e,n.children,r,i)}async function j8e(e,t,r){await Iq(e,t,r,u3t)}async function X8e(e,t,r){await Iq(e,t,r,h3t)}async function K8e(e,t,r,i,n){let a=new ui({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of t)if(s.start&&s.end){let l=i.getBlock(s.start),u=i.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,d=u.size,f=[{x:h.x,y:h.y},{x:h.x+(d.x-h.x)/2,y:h.y+(d.y-h.y)/2},{x:d.x,y:d.y}],p=n?`${n}-${s.id}`:s.id,m=s.thickness==="thick"?"edge-thickness-thick":"edge-thickness-normal",g=s.pattern==="dotted"?"edge-pattern-dotted":"edge-pattern-solid",y=`${m} ${g} flowchart-link LS-a1 LE-b1`;w8e(e,{v:s.start,w:s.end,name:p},{...s,id:p,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:f,classes:y},void 0,"block",a,n),s.label&&(await C8e(e,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:f,classes:y}),k8e({...s,x:f[1].x,y:f[1].y},{originalPath:f}))}}}var Z8e=z(()=>{"use strict";Uo();br();S8e();H8e();Xt();o(Y8e,"getNodeFromBlock");o(u3t,"calculateBlockSize");o(h3t,"insertBlockPositioned");o(Iq,"performOperations");o(j8e,"calculateBlockSizes");o(X8e,"insertBlocks");o(K8e,"insertEdges")});var d3t,f3t,Q8e,J8e=z(()=>{"use strict";Rr();br();d8e();St();Di();y8e();Z8e();d3t=o(function(e,t){return t.db.getClasses()},"getClasses"),f3t=o(async function(e,t,r,i){let{securityLevel:n,block:a}=Nt(),s=i.db;s.setDiagramId(t);let l;n==="sandbox"&&(l=Je("#i"+t));let u=n==="sandbox"?Je(l.nodes()[0].contentDocument.body):Je("body"),h=n==="sandbox"?u.select(`[id="${t}"]`):Je(`[id="${t}"]`);h8e(h,["point","circle","cross"],i.type,t);let f=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await j8e(g,f,s);let y=g8e(s);if(await X8e(g,f,s),await K8e(g,m,p,s,t),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,T=v.width+10,{useMaxWidth:w}=a;Br(h,b,T,!!w),Z.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),Q8e={draw:f3t,getClasses:d3t}});var eRe={};xr(eRe,{diagram:()=>p3t});var p3t,tRe=z(()=>{"use strict";t8e();l8e();u8e();J8e();p3t={parser:e8e,db:o8e,renderer:Q8e,styles:c8e}});var cu,v3t,x3t,b3t,T3t,C3t,k3t,w3t,sC,Oq=z(()=>{"use strict";br();Bn();Ci();Xt();T6();cu=new wf(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),v3t=o(()=>{cu.reset(),gr()},"clear"),x3t=o(()=>cu.records.stack[0],"getRoot"),b3t=o(()=>cu.records.cnt,"getCount"),T3t=or.treeView,C3t=o(()=>Gr(T3t,Nt().treeView),"getConfig"),k3t=o((e,t)=>{for(;e<=cu.records.stack[cu.records.stack.length-1].level;)cu.records.stack.pop();let r={id:cu.records.cnt++,level:e,name:t,children:[]};cu.records.stack[cu.records.stack.length-1].children.push(r),cu.records.stack.push(r)},"addNode"),w3t={clear:v3t,addNode:k3t,getRoot:x3t,getCount:b3t,getConfig:C3t,getAccTitle:kr,getAccDescription:Sr,getDiagramTitle:Er,setAccDescription:wr,setAccTitle:Cr,setDiagramTitle:Ar},sC=w3t});var S3t,nRe,aRe=z(()=>{"use strict";St();au();Oq();sl();S3t=o(e=>{ca(e,sC),e.nodes.map(t=>sC.addNode(t.indent?parseInt(t.indent):0,t.name))},"populate"),nRe={parse:o(async e=>{let t=await bn("treeView",e);Z.debug(t),S3t(t)},"parse")}});var E3t,sRe,A3t,_3t,D3t,oRe,lRe=z(()=>{"use strict";St();ps();Di();E3t=o((e,t,r,i,n)=>{let a=i.append("text").text(r.name).attr("dominant-baseline","middle").attr("class","treeView-node-label"),{height:s,width:l}=a.node().getBBox(),u=s+n.paddingY*2,h=l+n.paddingX*2;a.attr("x",e+n.paddingX),a.attr("y",t+u/2),r.BBox={x:e,y:t,width:h,height:u}},"positionLabel"),sRe=o((e,t,r,i,n,a)=>e.append("line").attr("x1",t).attr("y1",r).attr("x2",i).attr("y2",n).attr("stroke-width",a).attr("class","treeView-node-line"),"positionLine"),A3t=o((e,t,r)=>{let i=0,n=0,a=o((l,u,h,d)=>{let f=d*(h.rowIndent+h.paddingX);E3t(f,i,u,l,h);let{height:p,width:m}=u.BBox;sRe(l,f-h.rowIndent,i+p/2,f,i+p/2,h.lineThickness),n=Math.max(n,f+m),i+=p},"drawNode"),s=o((l,u=0)=>{a(e,l,r,u),l.children.forEach(p=>{s(p,u+1)});let{x:h,y:d,height:f}=l.BBox;if(l.children.length){let{y:p,height:m}=l.children[l.children.length-1].BBox;sRe(e,h+r.paddingX,d+f,h+r.paddingX,p+m/2+r.lineThickness/2,r.lineThickness)}},"processNode");return s(t),{totalHeight:i,totalWidth:n}},"drawTree"),_3t=o((e,t,r,i)=>{Z.debug(`Rendering treeView diagram +`+e);let n=i.db,a=n.getRoot(),s=n.getConfig(),l=bi(t),u=l.append("g");u.attr("class","tree-view");let{totalHeight:h,totalWidth:d}=A3t(u,a,s);l.attr("viewBox",`-${s.lineThickness/2} 0 ${d} ${h}`),Br(l,h,d,s.useMaxWidth)},"draw"),D3t={draw:_3t},oRe=D3t});var R3t,L3t,cRe,uRe=z(()=>{"use strict";Xt();R3t={labelFontSize:"16px",labelColor:"black",lineColor:"black"},L3t=o(({treeView:e})=>{let{labelFontSize:t,labelColor:r,lineColor:i}=Gr(R3t,e);return` + .treeView-node-label { + font-size: ${t}; + fill: ${r}; + } + .treeView-node-line { + stroke: ${i}; + } + `},"styles"),cRe=L3t});var hRe={};xr(hRe,{diagram:()=>M3t});var M3t,dRe=z(()=>{"use strict";aRe();Oq();lRe();uRe();M3t={db:sC,renderer:oRe,parser:nRe,styles:cRe}});var Pq,Bq,oC,mRe,Fq,za,uu,lC,gRe,P3t,cC,yRe,vRe,xRe,bRe,TRe,S_,Nf,E_=z(()=>{"use strict";Pq={L:"left",R:"right",T:"top",B:"bottom"},Bq={L:o(e=>`${e},${e/2} 0,${e} 0,0`,"L"),R:o(e=>`0,${e/2} ${e},0 ${e},${e}`,"R"),T:o(e=>`0,0 ${e},0 ${e/2},${e}`,"T"),B:o(e=>`${e/2},0 ${e},${e} 0,${e}`,"B")},oC={L:o((e,t)=>e-t+2,"L"),R:o((e,t)=>e-2,"R"),T:o((e,t)=>e-t+2,"T"),B:o((e,t)=>e-2,"B")},mRe=o(function(e){return za(e)?e==="L"?"R":"L":e==="T"?"B":"T"},"getOppositeArchitectureDirection"),Fq=o(function(e){let t=e;return t==="L"||t==="R"||t==="T"||t==="B"},"isArchitectureDirection"),za=o(function(e){let t=e;return t==="L"||t==="R"},"isArchitectureDirectionX"),uu=o(function(e){let t=e;return t==="T"||t==="B"},"isArchitectureDirectionY"),lC=o(function(e,t){let r=za(e)&&uu(t),i=uu(e)&&za(t);return r||i},"isArchitectureDirectionXY"),gRe=o(function(e){let t=e[0],r=e[1],i=za(t)&&uu(r),n=uu(t)&&za(r);return i||n},"isArchitecturePairXY"),P3t=o(function(e){return e!=="LL"&&e!=="RR"&&e!=="TT"&&e!=="BB"},"isValidArchitectureDirectionPair"),cC=o(function(e,t){let r=`${e}${t}`;return P3t(r)?r:void 0},"getArchitectureDirectionPair"),yRe=o(function([e,t],r){let i=r[0],n=r[1];return za(i)?uu(n)?[e+(i==="L"?-1:1),t+(n==="T"?1:-1)]:[e+(i==="L"?-1:1),t]:za(n)?[e+(n==="L"?1:-1),t+(i==="T"?1:-1)]:[e,t+(i==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),vRe=o(function(e){return e==="LT"||e==="TL"?[1,1]:e==="BL"||e==="LB"?[1,-1]:e==="BR"||e==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),xRe=o(function(e,t){return lC(e,t)?"bend":za(e)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),bRe=o(function(e){return e.type==="service"},"isArchitectureService"),TRe=o(function(e){return e.type==="junction"},"isArchitectureJunction"),S_=o(e=>e.data(),"edgeData"),Nf=o(e=>e.data(),"nodeData")});var B3t,Iy,$q=z(()=>{"use strict";br();Bn();Xt();Ci();E_();B3t=or.architecture,Iy=class{constructor(){this.nodes={};this.groups={};this.edges=[];this.registeredIds={};this.elements={};this.diagramId="";this.setAccTitle=Cr;this.getAccTitle=kr;this.setDiagramTitle=Ar;this.getDiagramTitle=Er;this.getAccDescription=Sr;this.setAccDescription=wr;this.clear()}static{o(this,"ArchitectureDB")}setDiagramId(t){this.diagramId=t}getDiagramId(){return this.diagramId}clear(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},this.diagramId="",gr()}addService({id:t,icon:r,in:i,title:n,iconText:a}){if(this.registeredIds[t]!==void 0)throw new Error(`The service id [${t}] is already in use by another ${this.registeredIds[t]}`);if(i!==void 0){if(t===i)throw new Error(`The service [${t}] cannot be placed within itself`);if(this.registeredIds[i]===void 0)throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[i]==="node")throw new Error(`The service [${t}]'s parent is not a group`)}this.registeredIds[t]="node",this.nodes[t]={id:t,type:"service",icon:r,iconText:a,title:n,edges:[],in:i}}getServices(){return Object.values(this.nodes).filter(bRe)}addJunction({id:t,in:r}){if(this.registeredIds[t]!==void 0)throw new Error(`The junction id [${t}] is already in use by another ${this.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The junction [${t}] cannot be placed within itself`);if(this.registeredIds[r]===void 0)throw new Error(`The junction [${t}]'s parent does not exist. Please make sure the parent is created before this junction`);if(this.registeredIds[r]==="node")throw new Error(`The junction [${t}]'s parent is not a group`)}this.registeredIds[t]="node",this.nodes[t]={id:t,type:"junction",edges:[],in:r}}getJunctions(){return Object.values(this.nodes).filter(TRe)}getNodes(){return Object.values(this.nodes)}getNode(t){return this.nodes[t]??null}addGroup({id:t,icon:r,in:i,title:n}){if(this.registeredIds?.[t]!==void 0)throw new Error(`The group id [${t}] is already in use by another ${this.registeredIds[t]}`);if(i!==void 0){if(t===i)throw new Error(`The group [${t}] cannot be placed within itself`);if(this.registeredIds?.[i]===void 0)throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if(this.registeredIds?.[i]==="node")throw new Error(`The group [${t}]'s parent is not a group`)}this.registeredIds[t]="group",this.groups[t]={id:t,icon:r,title:n,in:i}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:t,rhsId:r,lhsDir:i,rhsDir:n,lhsInto:a,rhsInto:s,lhsGroup:l,rhsGroup:u,title:h}){if(!Fq(i))throw new Error(`Invalid direction given for left hand side of edge ${t}--${r}. Expected (L,R,T,B) got ${String(i)}`);if(!Fq(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${r}. Expected (L,R,T,B) got ${String(n)}`);if(this.nodes[t]===void 0&&this.groups[t]===void 0)throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[r]===void 0&&this.groups[r]===void 0)throw new Error(`The right-hand id [${r}] does not yet exist. Please create the service/group before declaring an edge to it.`);let d=this.nodes[t].in,f=this.nodes[r].in;if(l&&d&&f&&d==f)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(u&&d&&f&&d==f)throw new Error(`The right-hand id [${r}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let p={lhsId:t,lhsDir:i,lhsInto:a,lhsGroup:l,rhsId:r,rhsDir:n,rhsInto:s,rhsGroup:u,title:h};this.edges.push(p),this.nodes[t]&&this.nodes[r]&&(this.nodes[t].edges.push(this.edges[this.edges.length-1]),this.nodes[r].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}getDataStructures(){if(this.dataStructures===void 0){let t={},r=Object.entries(this.nodes).reduce((u,[h,d])=>(u[h]=d.edges.reduce((f,p)=>{let m=this.getNode(p.lhsId)?.in,g=this.getNode(p.rhsId)?.in;if(m&&g&&m!==g){let y=xRe(p.lhsDir,p.rhsDir);y!=="bend"&&(t[m]??={},t[m][g]=y,t[g]??={},t[g][m]=y)}if(p.lhsId===h){let y=cC(p.lhsDir,p.rhsDir);y&&(f[y]=p.rhsId)}else{let y=cC(p.rhsDir,p.lhsDir);y&&(f[y]=p.lhsId)}return f},{}),u),{}),i=Object.keys(r)[0],n={[i]:1},a=Object.keys(r).reduce((u,h)=>h===i?u:{...u,[h]:1},{}),s=o(u=>{let h={[u]:[0,0]},d=[u];for(;d.length>0;){let f=d.shift();if(f){n[f]=1,delete a[f];let p=r[f],[m,g]=h[f];Object.entries(p).forEach(([y,v])=>{n[v]||(h[v]=yRe([m,g],y),d.push(v))})}}return h},"BFS"),l=[s(i)];for(;Object.keys(a).length>0;)l.push(s(Object.keys(a)[0]));this.dataStructures={adjList:r,spatialMaps:l,groupAlignments:t}}return this.dataStructures}setElementForId(t,r){this.elements[t]=r}getElementById(t){return this.elements[t]}getConfig(){return Gr({...B3t,...Nt().architecture})}getConfigField(t){return this.getConfig()[t]}}});var F3t,zq,CRe=z(()=>{"use strict";sl();St();au();$q();F3t=o((e,t)=>{ca(e,t),e.groups.map(r=>t.addGroup(r)),e.services.map(r=>t.addService({...r,type:"service"})),e.junctions.map(r=>t.addJunction({...r,type:"junction"})),e.edges.map(r=>t.addEdge(r))},"populateDb"),zq={parser:{yy:void 0},parse:o(async e=>{let t=await bn("architecture",e);Z.debug(t);let r=zq.parser?.yy;if(!(r instanceof Iy))throw new Error("parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");F3t(t,r)},"parse")}});var $3t,kRe,wRe=z(()=>{"use strict";$3t=o(e=>` + .edge { + stroke-width: ${e.archEdgeWidth}; + stroke: ${e.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${e.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${e.archGroupBorderColor}; + stroke-width: ${e.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),kRe=$3t});var Vq=Js((uC,Gq)=>{"use strict";o((function(t,r){typeof uC=="object"&&typeof Gq=="object"?Gq.exports=r():typeof define=="function"&&define.amd?define([],r):typeof uC=="object"?uC.layoutBase=r():t.layoutBase=r()}),"webpackUniversalModuleDefinition")(uC,function(){return(function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return o(r,"__webpack_require__"),r.m=e,r.c=t,r.i=function(i){return i},r.d=function(i,n,a){r.o(i,n)||Object.defineProperty(i,n,{configurable:!1,enumerable:!0,get:a})},r.n=function(i){var n=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return r.d(n,"a",n),n},r.o=function(i,n){return Object.prototype.hasOwnProperty.call(i,n)},r.p="",r(r.s=28)})([(function(e,t,r){"use strict";function i(){}o(i,"LayoutConstants"),i.QUALITY=1,i.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,i.DEFAULT_INCREMENTAL=!1,i.DEFAULT_ANIMATION_ON_LAYOUT=!0,i.DEFAULT_ANIMATION_DURING_LAYOUT=!1,i.DEFAULT_ANIMATION_PERIOD=50,i.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,i.DEFAULT_GRAPH_MARGIN=15,i.NODE_DIMENSIONS_INCLUDE_LABELS=!1,i.SIMPLE_NODE_SIZE=40,i.SIMPLE_NODE_HALF_SIZE=i.SIMPLE_NODE_SIZE/2,i.EMPTY_COMPOUND_NODE_SIZE=40,i.MIN_EDGE_LENGTH=1,i.WORLD_BOUNDARY=1e6,i.INITIAL_WORLD_BOUNDARY=i.WORLD_BOUNDARY/1e3,i.WORLD_CENTER_X=1200,i.WORLD_CENTER_Y=900,e.exports=i}),(function(e,t,r){"use strict";var i=r(2),n=r(8),a=r(9);function s(u,h,d){i.call(this,d),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=d,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var d=this.getOtherEnd(u),f=h.getGraphManager().getRoot();;){if(d.getOwner()==h)return d;if(d.getOwner()==f)break;d=d.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=n.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},e.exports=s}),(function(e,t,r){"use strict";function i(n){this.vGraphObject=n}o(i,"LGraphObject"),e.exports=i}),(function(e,t,r){"use strict";var i=r(2),n=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(f,p,m,g){m==null&&g==null&&(g=p),i.call(this,g),f.graphManager!=null&&(f=f.graphManager),this.estimatedSize=n.MIN_VALUE,this.inclusionTreeDepth=n.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=f,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(i.prototype);for(var d in i)h[d]=i[d];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(f){this.rect.width=f},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(f){this.rect.height=f},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(f,p){this.rect.x=f.x,this.rect.y=f.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(f,p){this.rect.x=f-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(f,p){this.rect.x=f,this.rect.y=p},h.prototype.moveBy=function(f,p){this.rect.x+=f,this.rect.y+=p},h.prototype.getEdgeListToNode=function(f){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==f){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(f){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==f||y.source==f)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var f=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)f.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";f.add(m.source)}}),f},h.prototype.withChildren=function(){var f=new Set,p,m;if(f.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==n.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(f){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=f.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},e.exports=h}),(function(e,t,r){"use strict";var i=r(0);function n(){}o(n,"FDLayoutConstants");for(var a in i)n[a]=i[a];n.MAX_ITERATIONS=2500,n.DEFAULT_EDGE_LENGTH=50,n.DEFAULT_SPRING_STRENGTH=.45,n.DEFAULT_REPULSION_STRENGTH=4500,n.DEFAULT_GRAVITY_STRENGTH=.4,n.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,n.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,n.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,n.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,n.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,n.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,n.COOLING_ADAPTATION_FACTOR=.33,n.ADAPTATION_LOWER_NODE_LIMIT=1e3,n.ADAPTATION_UPPER_NODE_LIMIT=5e3,n.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,n.MAX_NODE_DISPLACEMENT=n.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,n.MIN_REPULSION_DIST=n.DEFAULT_EDGE_LENGTH/10,n.CONVERGENCE_CHECK_PERIOD=100,n.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,n.MIN_EDGE_LENGTH=1,n.GRID_CALCULATION_CHECK_PERIOD=10,e.exports=n}),(function(e,t,r){"use strict";function i(n,a){n==null&&a==null?(this.x=0,this.y=0):(this.x=n,this.y=a)}o(i,"PointD"),i.prototype.getX=function(){return this.x},i.prototype.getY=function(){return this.y},i.prototype.setX=function(n){this.x=n},i.prototype.setY=function(n){this.y=n},i.prototype.getDifference=function(n){return new DimensionD(this.x-n.x,this.y-n.y)},i.prototype.getCopy=function(){return new i(this.x,this.y)},i.prototype.translate=function(n){return this.x+=n.width,this.y+=n.height,this},e.exports=i}),(function(e,t,r){"use strict";var i=r(2),n=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),d=r(12),f=r(11);function p(g,y,v){i.call(this,v),this.estimatedSize=n.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(i.prototype);for(var m in i)p[m]=i[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,T=0;T-1&&k>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(C,1),x.target!=x.source&&x.target.edges.splice(k,1);var w=x.source.owner.getEdges().indexOf(x);if(w==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(w,1)}},p.prototype.updateLeftTop=function(){for(var g=n.MAX_VALUE,y=n.MAX_VALUE,v,x,b,T=this.getNodes(),w=T.length,C=0;Cv&&(g=v),y>x&&(y=x)}return g==n.MAX_VALUE?null:(T[0].getParent().paddingLeft!=null?b=T[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new d(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=n.MAX_VALUE,v=-n.MAX_VALUE,x=n.MAX_VALUE,b=-n.MAX_VALUE,T,w,C,k,E,A=this.nodes,N=A.length,P=0;PT&&(y=T),vC&&(x=C),bT&&(y=T),vC&&(x=C),b=this.nodes.length){var N=0;v.forEach(function(P){P.owner==g&&N++}),N==this.nodes.length&&(this.isConnected=!0)}},e.exports=p}),(function(e,t,r){"use strict";var i,n=r(1);function a(s){i=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,d){if(u==null&&h==null&&d==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{d=u,h=l,u=s;var f=h.getOwner(),p=d.getOwner();if(!(f!=null&&f.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(f==p)return u.isInterGraph=!1,f.add(u,h,d);if(u.isInterGraph=!0,u.source=h,u.target=d,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof i){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,d=u.length,f=0;f=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var d=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(d=1);var f=d*l[0],p=l[1]/d;l[0]f)return l[0]=u,l[1]=m,l[2]=d,l[3]=A,!1;if(hd)return l[0]=p,l[1]=h,l[2]=k,l[3]=f,!1;if(ud?(l[0]=y,l[1]=v,D=!0):(l[0]=g,l[1]=m,D=!0):R===L&&(u>d?(l[0]=p,l[1]=m,D=!0):(l[0]=x,l[1]=v,D=!0)),-M===L?d>u?(l[2]=E,l[3]=A,_=!0):(l[2]=k,l[3]=C,_=!0):M===L&&(d>u?(l[2]=w,l[3]=C,_=!0):(l[2]=N,l[3]=A,_=!0)),D&&_)return!1;if(u>d?h>f?(B=this.getCardinalDirection(R,L,4),O=this.getCardinalDirection(M,L,2)):(B=this.getCardinalDirection(-R,L,3),O=this.getCardinalDirection(-M,L,1)):h>f?(B=this.getCardinalDirection(-R,L,1),O=this.getCardinalDirection(-M,L,3)):(B=this.getCardinalDirection(R,L,2),O=this.getCardinalDirection(M,L,4)),!D)switch(B){case 1:G=m,$=u+-T/L,l[0]=$,l[1]=G;break;case 2:$=x,G=h+b*L,l[0]=$,l[1]=G;break;case 3:G=v,$=u+T/L,l[0]=$,l[1]=G;break;case 4:$=y,G=h+-b*L,l[0]=$,l[1]=G;break}if(!_)switch(O){case 1:V=C,F=d+-I/L,l[2]=F,l[3]=V;break;case 2:F=N,V=f+P*L,l[2]=F,l[3]=V;break;case 3:V=A,F=d+I/L,l[2]=F,l[3]=V;break;case 4:F=E,V=f+-P*L,l[2]=F,l[3]=V;break}}return!1},n.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},n.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,d=a.y,f=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,T=void 0,w=void 0,C=void 0,k=void 0,E=void 0,A=void 0,N=void 0;return T=p-d,C=h-f,E=f*d-h*p,w=v-g,k=m-y,A=y*g-m*v,N=T*k-w*C,N===0?null:(x=(C*A-k*E)/N,b=(w*E-T*A)/N,new i(x,b))},n.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},n.HALF_PI=.5*Math.PI,n.ONE_AND_HALF_PI=1.5*Math.PI,n.TWO_PI=2*Math.PI,n.THREE_PI=3*Math.PI,e.exports=n}),(function(e,t,r){"use strict";function i(){}o(i,"IMath"),i.sign=function(n){return n>0?1:n<0?-1:0},i.floor=function(n){return n<0?Math.ceil(n):Math.floor(n)},i.ceil=function(n){return n<0?Math.floor(n):Math.ceil(n)},e.exports=i}),(function(e,t,r){"use strict";function i(){}o(i,"Integer"),i.MAX_VALUE=2147483647,i.MIN_VALUE=-2147483648,e.exports=i}),(function(e,t,r){"use strict";var i=(function(){function h(d,f){for(var p=0;p"u"?"undefined":i(a);return a==null||s!="object"&&s!="function"},e.exports=n}),(function(e,t,r){"use strict";function i(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(T.push(C[0]);T.length>0&&g;){var k=T[0];T.splice(0,1),b.add(k);for(var E=k.getEdges(),x=0;x-1&&C.splice(I,1)}b=new Set,w=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var N=w.getNeighborsList();N.forEach(function(D){if(y.indexOf(D)<0){var _=v.get(D),R=_-1;R==1&&k.push(D),v.set(D,R)}})}y=y.concat(k),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},e.exports=p}),(function(e,t,r){"use strict";function i(){}o(i,"RandomSeed"),i.seed=1,i.x=0,i.nextDouble=function(){return i.x=Math.sin(i.seed++)*1e4,i.x-Math.floor(i.x)},e.exports=i}),(function(e,t,r){"use strict";var i=r(5);function n(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(n,"Transform"),n.prototype.getWorldOrgX=function(){return this.lworldOrgX},n.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},n.prototype.getWorldOrgY=function(){return this.lworldOrgY},n.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},n.prototype.getWorldExtX=function(){return this.lworldExtX},n.prototype.setWorldExtX=function(a){this.lworldExtX=a},n.prototype.getWorldExtY=function(){return this.lworldExtY},n.prototype.setWorldExtY=function(a){this.lworldExtY=a},n.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},n.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},n.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},n.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},n.prototype.getDeviceExtX=function(){return this.ldeviceExtX},n.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},n.prototype.getDeviceExtY=function(){return this.ldeviceExtY},n.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},n.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},n.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},n.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},n.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},n.prototype.inverseTransformPoint=function(a){var s=new i(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},e.exports=n}),(function(e,t,r){"use strict";function i(f){if(Array.isArray(f)){for(var p=0,m=Array(f.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(f-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(f>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(f-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var f=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&f&&this.updateGrid(),b=new Set,m=0;mT||b>T)&&(f.gravitationForceX=-this.gravityConstant*y,f.gravitationForceY=-this.gravityConstant*v)):(T=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>T||b>T)&&(f.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,f.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var f,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),f=this.totalDisplacement=x.length||T>=x[0].length)){for(var w=0;wh},"_defaultCompareFunction")}]),l})();e.exports=s}),(function(e,t,r){"use strict";function i(){}o(i,"SVD"),i.svd=function(n){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=n.length,this.n=n[0].length;var a=Math.min(this.m,this.n);this.s=(function(Et){for(var yt=[];Et-- >0;)yt.push(0);return yt})(Math.min(this.m+1,this.n)),this.U=(function(Et){var yt=o(function oe(ht){if(ht.length==0)return 0;for(var gt=[],et=0;et0;)yt.push(0);return yt})(this.n),l=(function(Et){for(var yt=[];Et-- >0;)yt.push(0);return yt})(this.m),u=!0,h=!0,d=Math.min(this.m-1,this.n),f=Math.max(0,Math.min(this.n-2,this.m)),p=0;p=0;L--)if(this.s[L]!==0){for(var B=L+1;B=0;j--){if((function(Et,yt){return Et&&yt})(j0;){var ue=void 0,De=void 0;for(ue=_-2;ue>=-1&&ue!==-1;ue--)if(Math.abs(s[ue])<=Te+ee*(Math.abs(this.s[ue])+Math.abs(this.s[ue+1]))){s[ue]=0;break}if(ue===_-2)De=4;else{var Ie=void 0;for(Ie=_-1;Ie>=ue&&Ie!==ue;Ie--){var Ee=(Ie!==_?Math.abs(s[Ie]):0)+(Ie!==ue+1?Math.abs(s[Ie-1]):0);if(Math.abs(this.s[Ie])<=Te+ee*Ee){this.s[Ie]=0;break}}Ie===ue?De=3:Ie===_-1?De=1:(De=2,ue=Ie)}switch(ue++,De){case 1:{var we=s[_-2];s[_-2]=0;for(var Me=_-2;Me>=ue;Me--){var $e=i.hypot(this.s[Me],we),de=this.s[Me]/$e,rt=we/$e;if(this.s[Me]=$e,Me!==ue&&(we=-rt*s[Me-1],s[Me-1]=de*s[Me-1]),h)for(var ke=0;ke=this.s[ue+1]);){var ot=this.s[ue];if(this.s[ue]=this.s[ue+1],this.s[ue+1]=ot,h&&ueMath.abs(a)?(s=a/n,s=Math.abs(n)*Math.sqrt(1+s*s)):a!=0?(s=n/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},e.exports=i}),(function(e,t,r){"use strict";var i=(function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,f=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;n(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=d,this.gap_penalty=f,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},n.emit=function(a,s){for(var l=0;l{"use strict";o((function(t,r){typeof hC=="object"&&typeof Wq=="object"?Wq.exports=r(Vq()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof hC=="object"?hC.coseBase=r(Vq()):t.coseBase=r(t.layoutBase)}),"webpackUniversalModuleDefinition")(hC,function(e){return(()=>{"use strict";var t={45:((a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u}),806:((a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var d in u)h[d]=u[d];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h}),767:((a,s,l)=>{var u=l(551).FDLayoutEdge;function h(f,p,m){u.call(this,f,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var d in u)h[d]=u[d];a.exports=h}),880:((a,s,l)=>{var u=l(551).LGraph;function h(f,p,m){u.call(this,f,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var d in u)h[d]=u[d];a.exports=h}),578:((a,s,l)=>{var u=l(551).LGraphManager;function h(f){u.call(this,f)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var d in u)h[d]=u[d];a.exports=h}),765:((a,s,l)=>{var u=l(551).FDLayout,h=l(578),d=l(880),f=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,T=l(551).DimensionD,w=l(551).Layout,C=l(551).Integer,k=l(551).IGeometry,E=l(551).LGraph,A=l(551).Transform,N=l(551).LinkedList;function P(){u.call(this),this.toBeTiled={},this.constraints={}}o(P,"CoSELayout"),P.prototype=Object.create(u.prototype);for(var I in u)P[I]=u[I];P.prototype.newGraphManager=function(){var D=new h(this);return this.graphManager=D,D},P.prototype.newGraph=function(D){return new d(null,this.graphManager,D)},P.prototype.newNode=function(D){return new f(this.graphManager,D)},P.prototype.newEdge=function(D){return new p(null,null,D)},P.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},P.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},P.prototype.layout=function(){var D=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return D&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},P.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var _=new Set(this.getAllNodes()),R=this.nodesWithGravity.filter(function(B){return _.has(B)});this.graphManager.setAllNodesToApplyGravitation(R)}}else{var D=this.getFlatForest();if(D.length>0)this.positionNodesRadially(D);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var _=new Set(this.getAllNodes()),R=this.nodesWithGravity.filter(function(M){return _.has(M)});this.graphManager.setAllNodesToApplyGravitation(R),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},P.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%y.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var D=new Set(this.getAllNodes()),_=this.nodesWithGravity.filter(function(L){return D.has(L)});this.graphManager.setAllNodesToApplyGravitation(_),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var R=!this.isTreeGrowing&&!this.isGrowthFinished,M=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(R,M),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},P.prototype.getPositionsData=function(){for(var D=this.graphManager.getAllNodes(),_={},R=0;R0&&this.updateDisplacements();for(var R=0;R0&&(M.fixedNodeWeight=B)}}if(this.constraints.relativePlacementConstraint){var O=new Map,$=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(Y){D.fixedNodesOnHorizontal.add(Y),D.fixedNodesOnVertical.add(Y)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var G=this.constraints.alignmentConstraint.vertical,R=0;R=2*Y.length/3;te--)ae=Math.floor(Math.random()*(te+1)),J=Y[te],Y[te]=Y[ae],Y[ae]=J;return Y},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(Y){if(Y.left){var ae=O.has(Y.left)?O.get(Y.left):Y.left,J=O.has(Y.right)?O.get(Y.right):Y.right;D.nodesInRelativeHorizontal.includes(ae)||(D.nodesInRelativeHorizontal.push(ae),D.nodeToRelativeConstraintMapHorizontal.set(ae,[]),D.dummyToNodeForVerticalAlignment.has(ae)?D.nodeToTempPositionMapHorizontal.set(ae,D.idToNodeMap.get(D.dummyToNodeForVerticalAlignment.get(ae)[0]).getCenterX()):D.nodeToTempPositionMapHorizontal.set(ae,D.idToNodeMap.get(ae).getCenterX())),D.nodesInRelativeHorizontal.includes(J)||(D.nodesInRelativeHorizontal.push(J),D.nodeToRelativeConstraintMapHorizontal.set(J,[]),D.dummyToNodeForVerticalAlignment.has(J)?D.nodeToTempPositionMapHorizontal.set(J,D.idToNodeMap.get(D.dummyToNodeForVerticalAlignment.get(J)[0]).getCenterX()):D.nodeToTempPositionMapHorizontal.set(J,D.idToNodeMap.get(J).getCenterX())),D.nodeToRelativeConstraintMapHorizontal.get(ae).push({right:J,gap:Y.gap}),D.nodeToRelativeConstraintMapHorizontal.get(J).push({left:ae,gap:Y.gap})}else{var te=$.has(Y.top)?$.get(Y.top):Y.top,re=$.has(Y.bottom)?$.get(Y.bottom):Y.bottom;D.nodesInRelativeVertical.includes(te)||(D.nodesInRelativeVertical.push(te),D.nodeToRelativeConstraintMapVertical.set(te,[]),D.dummyToNodeForHorizontalAlignment.has(te)?D.nodeToTempPositionMapVertical.set(te,D.idToNodeMap.get(D.dummyToNodeForHorizontalAlignment.get(te)[0]).getCenterY()):D.nodeToTempPositionMapVertical.set(te,D.idToNodeMap.get(te).getCenterY())),D.nodesInRelativeVertical.includes(re)||(D.nodesInRelativeVertical.push(re),D.nodeToRelativeConstraintMapVertical.set(re,[]),D.dummyToNodeForHorizontalAlignment.has(re)?D.nodeToTempPositionMapVertical.set(re,D.idToNodeMap.get(D.dummyToNodeForHorizontalAlignment.get(re)[0]).getCenterY()):D.nodeToTempPositionMapVertical.set(re,D.idToNodeMap.get(re).getCenterY())),D.nodeToRelativeConstraintMapVertical.get(te).push({bottom:re,gap:Y.gap}),D.nodeToRelativeConstraintMapVertical.get(re).push({top:te,gap:Y.gap})}});else{var V=new Map,H=new Map;this.constraints.relativePlacementConstraint.forEach(function(Y){if(Y.left){var ae=O.has(Y.left)?O.get(Y.left):Y.left,J=O.has(Y.right)?O.get(Y.right):Y.right;V.has(ae)?V.get(ae).push(J):V.set(ae,[J]),V.has(J)?V.get(J).push(ae):V.set(J,[ae])}else{var te=$.has(Y.top)?$.get(Y.top):Y.top,re=$.has(Y.bottom)?$.get(Y.bottom):Y.bottom;H.has(te)?H.get(te).push(re):H.set(te,[re]),H.has(re)?H.get(re).push(te):H.set(re,[te])}});var j=o(function(ae,J){var te=[],re=[],ee=new N,Te=new Set,ue=0;return ae.forEach(function(De,Ie){if(!Te.has(Ie)){te[ue]=[],re[ue]=!1;var Ee=Ie;for(ee.push(Ee),Te.add(Ee),te[ue].push(Ee);ee.length!=0;){Ee=ee.shift(),J.has(Ee)&&(re[ue]=!0);var we=ae.get(Ee);we.forEach(function(Me){Te.has(Me)||(ee.push(Me),Te.add(Me),te[ue].push(Me))})}ue++}}),{components:te,isFixed:re}},"constructComponents"),U=j(V,D.fixedNodesOnHorizontal);this.componentsOnHorizontal=U.components,this.fixedComponentsOnHorizontal=U.isFixed;var Q=j(H,D.fixedNodesOnVertical);this.componentsOnVertical=Q.components,this.fixedComponentsOnVertical=Q.isFixed}}},P.prototype.updateDisplacements=function(){var D=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(Q){var Y=D.idToNodeMap.get(Q.nodeId);Y.displacementX=0,Y.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var _=this.constraints.alignmentConstraint.vertical,R=0;R<_.length;R++){for(var M=0,L=0;L<_[R].length;L++){if(this.fixedNodeSet.has(_[R][L])){M=0;break}M+=this.idToNodeMap.get(_[R][L]).displacementX}for(var B=M/_[R].length,L=0;L<_[R].length;L++)this.idToNodeMap.get(_[R][L]).displacementX=B}if(this.constraints.alignmentConstraint.horizontal)for(var O=this.constraints.alignmentConstraint.horizontal,R=0;R1){var $;for($=0;$M&&(M=Math.floor(O.y)),B=Math.floor(O.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-O.x/2,v.WORLD_CENTER_Y-O.y/2))},P.radialLayout=function(D,_,R){var M=Math.max(this.maxDiagonalInTree(D),m.DEFAULT_RADIAL_SEPARATION);P.branchRadialLayout(_,null,0,359,0,M);var L=E.calculateBounds(D),B=new A;B.setDeviceOrgX(L.getMinX()),B.setDeviceOrgY(L.getMinY()),B.setWorldOrgX(R.x),B.setWorldOrgY(R.y);for(var O=0;O1;){var te=J[0];J.splice(0,1);var re=j.indexOf(te);re>=0&&j.splice(re,1),Y--,U--}_!=null?ae=(j.indexOf(J[0])+1)%Y:ae=0;for(var ee=Math.abs(M-R)/U,Te=ae;Q!=U;Te=++Te%Y){var ue=j[Te].getOtherEnd(D);if(ue!=_){var De=(R+Q*ee)%360,Ie=(De+ee)%360;P.branchRadialLayout(ue,D,De,Ie,L+B,B),Q++}}},P.maxDiagonalInTree=function(D){for(var _=C.MIN_VALUE,R=0;R_&&(_=L)}return _},P.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},P.prototype.groupZeroDegreeMembers=function(){var D=this,_={};this.memberGroups={},this.idToDummyNode={};for(var R=[],M=this.graphManager.getAllNodes(),L=0;L"u"&&(_[$]=[]),_[$]=_[$].concat(B)}Object.keys(_).forEach(function(G){if(_[G].length>1){var F="DummyCompound_"+G;D.memberGroups[F]=_[G];var V=_[G][0].getParent(),H=new f(D.graphManager);H.id=F,H.paddingLeft=V.paddingLeft||0,H.paddingRight=V.paddingRight||0,H.paddingBottom=V.paddingBottom||0,H.paddingTop=V.paddingTop||0,D.idToDummyNode[F]=H;var j=D.getGraphManager().add(D.newGraph(),H),U=V.getChild();U.add(H);for(var Q=0;Q<_[G].length;Q++){var Y=_[G][Q];U.remove(Y),j.add(Y)}}})},P.prototype.clearCompounds=function(){var D={},_={};this.performDFSOnCompounds();for(var R=0;RL?(M.rect.x-=(M.labelWidth-L)/2,M.setWidth(M.labelWidth),M.labelMarginLeft=(M.labelWidth-L)/2):M.labelPosHorizontal=="right"&&M.setWidth(L+M.labelWidth)),M.labelHeight&&(M.labelPosVertical=="top"?(M.rect.y-=M.labelHeight,M.setHeight(B+M.labelHeight),M.labelMarginTop=M.labelHeight):M.labelPosVertical=="center"&&M.labelHeight>B?(M.rect.y-=(M.labelHeight-B)/2,M.setHeight(M.labelHeight),M.labelMarginTop=(M.labelHeight-B)/2):M.labelPosVertical=="bottom"&&M.setHeight(B+M.labelHeight))}})},P.prototype.repopulateCompounds=function(){for(var D=this.compoundOrder.length-1;D>=0;D--){var _=this.compoundOrder[D],R=_.id,M=_.paddingLeft,L=_.paddingTop,B=_.labelMarginLeft,O=_.labelMarginTop;this.adjustLocations(this.tiledMemberPack[R],_.rect.x,_.rect.y,M,L,B,O)}},P.prototype.repopulateZeroDegreeMembers=function(){var D=this,_=this.tiledZeroDegreePack;Object.keys(_).forEach(function(R){var M=D.idToDummyNode[R],L=M.paddingLeft,B=M.paddingTop,O=M.labelMarginLeft,$=M.labelMarginTop;D.adjustLocations(_[R],M.rect.x,M.rect.y,L,B,O,$)})},P.prototype.getToBeTiled=function(D){var _=D.id;if(this.toBeTiled[_]!=null)return this.toBeTiled[_];var R=D.getChild();if(R==null)return this.toBeTiled[_]=!1,!1;for(var M=R.getNodes(),L=0;L0)return this.toBeTiled[_]=!1,!1;if(B.getChild()==null){this.toBeTiled[B.id]=!1;continue}if(!this.getToBeTiled(B))return this.toBeTiled[_]=!1,!1}return this.toBeTiled[_]=!0,!0},P.prototype.getNodeDegree=function(D){for(var _=D.id,R=D.getEdges(),M=0,L=0;LV&&(V=j.rect.height)}R+=V+D.verticalPadding}},P.prototype.tileCompoundMembers=function(D,_){var R=this;this.tiledMemberPack=[],Object.keys(D).forEach(function(M){var L=_[M];if(R.tiledMemberPack[M]=R.tileNodes(D[M],L.paddingLeft+L.paddingRight),L.rect.width=R.tiledMemberPack[M].width,L.rect.height=R.tiledMemberPack[M].height,L.setCenter(R.tiledMemberPack[M].centerX,R.tiledMemberPack[M].centerY),L.labelMarginLeft=0,L.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var B=L.rect.width,O=L.rect.height;L.labelWidth&&(L.labelPosHorizontal=="left"?(L.rect.x-=L.labelWidth,L.setWidth(B+L.labelWidth),L.labelMarginLeft=L.labelWidth):L.labelPosHorizontal=="center"&&L.labelWidth>B?(L.rect.x-=(L.labelWidth-B)/2,L.setWidth(L.labelWidth),L.labelMarginLeft=(L.labelWidth-B)/2):L.labelPosHorizontal=="right"&&L.setWidth(B+L.labelWidth)),L.labelHeight&&(L.labelPosVertical=="top"?(L.rect.y-=L.labelHeight,L.setHeight(O+L.labelHeight),L.labelMarginTop=L.labelHeight):L.labelPosVertical=="center"&&L.labelHeight>O?(L.rect.y-=(L.labelHeight-O)/2,L.setHeight(L.labelHeight),L.labelMarginTop=(L.labelHeight-O)/2):L.labelPosVertical=="bottom"&&L.setHeight(O+L.labelHeight))}})},P.prototype.tileNodes=function(D,_){var R=this.tileNodesByFavoringDim(D,_,!0),M=this.tileNodesByFavoringDim(D,_,!1),L=this.getOrgRatio(R),B=this.getOrgRatio(M),O;return B$&&($=Q.getWidth())});var G=B/L,F=O/L,V=Math.pow(R-M,2)+4*(G+M)*(F+R)*L,H=(M-R+Math.sqrt(V))/(2*(G+M)),j;_?(j=Math.ceil(H),j==H&&j++):j=Math.floor(H);var U=j*(G+M)-M;return $>U&&(U=$),U+=M*2,U},P.prototype.tileNodesByFavoringDim=function(D,_,R){var M=m.TILING_PADDING_VERTICAL,L=m.TILING_PADDING_HORIZONTAL,B=m.TILING_COMPARE_BY,O={rows:[],rowWidth:[],rowHeight:[],width:0,height:_,verticalPadding:M,horizontalPadding:L,centerX:0,centerY:0};B&&(O.idealRowWidth=this.calcIdealRowWidth(D,R));var $=o(function(Y){return Y.rect.width*Y.rect.height},"getNodeArea"),G=o(function(Y,ae){return $(ae)-$(Y)},"areaCompareFcn");D.sort(function(Q,Y){var ae=G;return O.idealRowWidth?(ae=B,ae(Q.id,Y.id)):ae(Q,Y)});for(var F=0,V=0,H=0;H0&&(O+=D.horizontalPadding),D.rowWidth[R]=O,D.width0&&($+=D.verticalPadding);var G=0;$>D.rowHeight[R]&&(G=D.rowHeight[R],D.rowHeight[R]=$,G=D.rowHeight[R]-G),D.height+=G,D.rows[R].push(_)},P.prototype.getShortestRowIndex=function(D){for(var _=-1,R=Number.MAX_VALUE,M=0;MR&&(_=M,R=D.rowWidth[M]);return _},P.prototype.canAddHorizontal=function(D,_,R){if(D.idealRowWidth){var M=D.rows.length-1,L=D.rowWidth[M];return L+_+D.horizontalPadding<=D.idealRowWidth}var B=this.getShortestRowIndex(D);if(B<0)return!0;var O=D.rowWidth[B];if(O+D.horizontalPadding+_<=D.width)return!0;var $=0;D.rowHeight[B]0&&($=R+D.verticalPadding-D.rowHeight[B]);var G;D.width-O>=_+D.horizontalPadding?G=(D.height+$)/(O+_+D.horizontalPadding):G=(D.height+$)/D.width,$=R+D.verticalPadding;var F;return D.width<_?F=(D.height+$)/_:F=(D.height+$)/D.width,F<1&&(F=1/F),G<1&&(G=1/G),GB&&_!=R){M.splice(-1,1),D.rows[R].push(L),D.rowWidth[_]=D.rowWidth[_]-B,D.rowWidth[R]=D.rowWidth[R]+B,D.width=D.rowWidth[instance.getLongestRowIndex(D)];for(var O=Number.MIN_VALUE,$=0;$O&&(O=M[$].height);_>0&&(O+=D.verticalPadding);var G=D.rowHeight[_]+D.rowHeight[R];D.rowHeight[_]=O,D.rowHeight[R]0)for(var U=L;U<=B;U++)j[0]+=this.grid[U][O-1].length+this.grid[U][O].length-1;if(B0)for(var U=O;U<=$;U++)j[3]+=this.grid[L-1][U].length+this.grid[L][U].length-1;for(var Q=C.MAX_VALUE,Y,ae,J=0;J{var u=l(551).FDLayoutNode,h=l(551).IMath;function d(p,m,g,y){u.call(this,p,m,g,y)}o(d,"CoSENode"),d.prototype=Object.create(u.prototype);for(var f in u)d[f]=u[f];d.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},d.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y0){var st=0;le.forEach(function(ot){fe=="horizontal"?(Oe.set(ot,x.has(ot)?b[x.get(ot)]:ce.get(ot)),st+=Oe.get(ot)):(Oe.set(ot,x.has(ot)?T[x.get(ot)]:ce.get(ot)),st+=Oe.get(ot))}),st=st/le.length,Ye.forEach(function(ot){W.has(ot)||Oe.set(ot,st)})}else{var me=0;Ye.forEach(function(ot){fe=="horizontal"?me+=x.has(ot)?b[x.get(ot)]:ce.get(ot):me+=x.has(ot)?T[x.get(ot)]:ce.get(ot)}),me=me/Ye.length,Ye.forEach(function(ot){Oe.set(ot,me)})}});for(var Ae=o(function(){var le=Be.shift(),st=ie.get(le);st.forEach(function(me){if(Oe.get(me.id)ot&&(ot=gt),etkt&&(kt=et)}}catch(lr){Tt=!0,Et=lr}finally{try{!Gt&&yt.return&&yt.return()}finally{if(Tt)throw Et}}var pe=(st+ot)/2-(me+kt)/2,Qe=!0,nt=!1,dt=void 0;try{for(var Ft=Ye[Symbol.iterator](),Rt;!(Qe=(Rt=Ft.next()).done);Qe=!0){var $t=Rt.value;Oe.set($t,Oe.get($t)+pe)}}catch(lr){nt=!0,dt=lr}finally{try{!Qe&&Ft.return&&Ft.return()}finally{if(nt)throw dt}}})}return Oe},"findAppropriatePositionForRelativePlacement"),I=o(function(ie){var fe=0,W=0,ce=0,K=0;if(ie.forEach(function(be){be.left?b[x.get(be.left)]-b[x.get(be.right)]>=0?fe++:W++:T[x.get(be.top)]-T[x.get(be.bottom)]>=0?ce++:K++}),fe>W&&ce>K)for(var Re=0;ReW)for(var xe=0;xeK)for(var Oe=0;Oe1)y.fixedNodeConstraint.forEach(function(ve,ie){M[ie]=[ve.position.x,ve.position.y],L[ie]=[b[x.get(ve.nodeId)],T[x.get(ve.nodeId)]]}),B=!0;else if(y.alignmentConstraint)(function(){var ve=0;if(y.alignmentConstraint.vertical){for(var ie=y.alignmentConstraint.vertical,fe=o(function(Oe){var be=new Set;ie[Oe].forEach(function(Ve){be.add(Ve)});var Be=new Set([].concat(u(be)).filter(function(Ve){return $.has(Ve)})),Ae=void 0;Be.size>0?Ae=b[x.get(Be.values().next().value)]:Ae=N(be).x,ie[Oe].forEach(function(Ve){M[ve]=[Ae,T[x.get(Ve)]],L[ve]=[b[x.get(Ve)],T[x.get(Ve)]],ve++})},"_loop2"),W=0;W0?Ae=b[x.get(Be.values().next().value)]:Ae=N(be).y,ce[Oe].forEach(function(Ve){M[ve]=[b[x.get(Ve)],Ae],L[ve]=[b[x.get(Ve)],T[x.get(Ve)]],ve++})},"_loop3"),Re=0;ReH&&(H=V[U].length,j=U);if(H0){var de={x:0,y:0};y.fixedNodeConstraint.forEach(function(ve,ie){var fe={x:b[x.get(ve.nodeId)],y:T[x.get(ve.nodeId)]},W=ve.position,ce=A(W,fe);de.x+=ce.x,de.y+=ce.y}),de.x/=y.fixedNodeConstraint.length,de.y/=y.fixedNodeConstraint.length,b.forEach(function(ve,ie){b[ie]+=de.x}),T.forEach(function(ve,ie){T[ie]+=de.y}),y.fixedNodeConstraint.forEach(function(ve){b[x.get(ve.nodeId)]=ve.position.x,T[x.get(ve.nodeId)]=ve.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var rt=y.alignmentConstraint.vertical,ke=o(function(ie){var fe=new Set;rt[ie].forEach(function(K){fe.add(K)});var W=new Set([].concat(u(fe)).filter(function(K){return $.has(K)})),ce=void 0;W.size>0?ce=b[x.get(W.values().next().value)]:ce=N(fe).x,fe.forEach(function(K){$.has(K)||(b[x.get(K)]=ce)})},"_loop4"),Fe=0;Fe0?ce=T[x.get(W.values().next().value)]:ce=N(fe).y,fe.forEach(function(K){$.has(K)||(T[x.get(K)]=ce)})},"_loop5"),qe=0;qe{a.exports=e})},r={};function i(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return t[a](l,l.exports,i),l.exports}o(i,"__webpack_require__");var n=i(45);return n})()})});var SRe=Js((dC,Uq)=>{"use strict";o((function(t,r){typeof dC=="object"&&typeof Uq=="object"?Uq.exports=r(qq()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof dC=="object"?dC.cytoscapeFcose=r(qq()):t.cytoscapeFcose=r(t.coseBase)}),"webpackUniversalModuleDefinition")(dC,function(e){return(()=>{"use strict";var t={658:(a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h{var u=(function(){function f(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),T;!(y=(T=b.next()).done)&&(g.push(T.value),!(m&&g.length===m));y=!0);}catch(w){v=!0,x=w}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(f,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return f(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),h=l(140).layoutBase.LinkedList,d={};d.getTopMostNodes=function(f){for(var p={},m=0;m0&&B.merge(F)});for(var O=0;O1){T=x[0],w=T.connectedEdges().length,x.forEach(function(L){L.connectedEdges().length0&&g.set("dummy"+(g.size+1),E),A},d.relocateComponent=function(f,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,T=!1,w=void 0;try{for(var C=p.nodeIndexes[Symbol.iterator](),k;!(b=(k=C.next()).done);b=!0){var E=k.value,A=u(E,2),N=A[0],P=A[1],I=m.cy.getElementById(N);if(I){var D=I.boundingBox(),_=p.xCoords[P]-D.w/2,R=p.xCoords[P]+D.w/2,M=p.yCoords[P]-D.h/2,L=p.yCoords[P]+D.h/2;_y&&(y=R),Mx&&(x=L)}}}catch(F){T=!0,w=F}finally{try{!b&&C.return&&C.return()}finally{if(T)throw w}}var B=f.x-(y+g)/2,O=f.y-(x+v)/2;p.xCoords=p.xCoords.map(function(F){return F+B}),p.yCoords=p.yCoords.map(function(F){return F+O})}else{Object.keys(p).forEach(function(F){var V=p[F],H=V.getRect().x,j=V.getRect().x+V.getRect().width,U=V.getRect().y,Q=V.getRect().y+V.getRect().height;Hy&&(y=j),Ux&&(x=Q)});var $=f.x-(y+g)/2,G=f.y-(x+v)/2;Object.keys(p).forEach(function(F){var V=p[F];V.setCenter(V.getCenterX()+$,V.getCenterY()+G)})}}},d.calcBoundingBox=function(f,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,T=void 0,w=void 0,C=void 0,k=void 0,E=f.descendants().not(":parent"),A=E.length,N=0;NT&&(y=T),vC&&(x=C),b{var u=l(548),h=l(140).CoSELayout,d=l(140).CoSENode,f=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,T){var w=b.cy,C=b.eles,k=C.nodes(),E=C.edges(),A=void 0,N=void 0,P=void 0,I={};b.randomize&&(A=T.nodeIndexes,N=T.xCoords,P=T.yCoords);var D=o(function(F){return typeof F=="function"},"isFn"),_=o(function(F,V){return D(F)?F(V):F},"optFn"),R=u.calcParentsWithoutChildren(w,C),M=o(function G(F,V,H,j){for(var U=V.length,Q=0;Q0){var ee=void 0;ee=H.getGraphManager().add(H.newGraph(),J),G(ee,ae,H,j)}}},"processChildrenList"),L=o(function(F,V,H){for(var j=0,U=0,Q=0;Q0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=j/U:D(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),B=o(function(F,V){V.fixedNodeConstraint&&(F.constraints.fixedNodeConstraint=V.fixedNodeConstraint),V.alignmentConstraint&&(F.constraints.alignmentConstraint=V.alignmentConstraint),V.relativePlacementConstraint&&(F.constraints.relativePlacementConstraint=V.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var O=new h,$=O.newGraphManager();return M($.addRoot(),u.getTopMostNodes(k),O,b),L(O,$,E),B(O,b),O.runLayout(),I},"coseLayout");a.exports={coseLayout:v}}),212:((a,s,l)=>{var u=(function(){function b(T,w){for(var C=0;C0)if(L){var $=f.getTopMostNodes(C.eles.nodes());if(D=f.connectComponents(k,C.eles,$),D.forEach(function(Ee){var we=Ee.boundingBox();_.push({x:we.x1+we.w/2,y:we.y1+we.h/2})}),C.randomize&&D.forEach(function(Ee){C.eles=Ee,A.push(m(C))}),C.quality=="default"||C.quality=="proof"){var G=k.collection();if(C.tile){var F=new Map,V=[],H=[],j=0,U={nodeIndexes:F,xCoords:V,yCoords:H},Q=[];if(D.forEach(function(Ee,we){Ee.edges().length==0&&(Ee.nodes().forEach(function(Me,$e){G.merge(Ee.nodes()[$e]),Me.isParent()||(U.nodeIndexes.set(Ee.nodes()[$e].id(),j++),U.xCoords.push(Ee.nodes()[0].position().x),U.yCoords.push(Ee.nodes()[0].position().y))}),Q.push(we))}),G.length>1){var Y=G.boundingBox();_.push({x:Y.x1+Y.w/2,y:Y.y1+Y.h/2}),D.push(G),A.push(U);for(var ae=Q.length-1;ae>=0;ae--)D.splice(Q[ae],1),A.splice(Q[ae],1),_.splice(Q[ae],1)}}D.forEach(function(Ee,we){C.eles=Ee,I.push(y(C,A[we])),f.relocateComponent(_[we],I[we],C)})}else D.forEach(function(Ee,we){f.relocateComponent(_[we],A[we],C)});var J=new Set;if(D.length>1){var te=[],re=E.filter(function(Ee){return Ee.css("display")=="none"});D.forEach(function(Ee,we){var Me=void 0;if(C.quality=="draft"&&(Me=A[we].nodeIndexes),Ee.nodes().not(re).length>0){var $e={};$e.edges=[],$e.nodes=[];var de=void 0;Ee.nodes().not(re).forEach(function(rt){if(C.quality=="draft")if(!rt.isParent())de=Me.get(rt.id()),$e.nodes.push({x:A[we].xCoords[de]-rt.boundingbox().w/2,y:A[we].yCoords[de]-rt.boundingbox().h/2,width:rt.boundingbox().w,height:rt.boundingbox().h});else{var ke=f.calcBoundingBox(rt,A[we].xCoords,A[we].yCoords,Me);$e.nodes.push({x:ke.topLeftX,y:ke.topLeftY,width:ke.width,height:ke.height})}else I[we][rt.id()]&&$e.nodes.push({x:I[we][rt.id()].getLeft(),y:I[we][rt.id()].getTop(),width:I[we][rt.id()].getWidth(),height:I[we][rt.id()].getHeight()})}),Ee.edges().forEach(function(rt){var ke=rt.source(),Fe=rt.target();if(ke.css("display")!="none"&&Fe.css("display")!="none")if(C.quality=="draft"){var He=Me.get(ke.id()),at=Me.get(Fe.id()),qe=[],Ue=[];if(ke.isParent()){var ye=f.calcBoundingBox(ke,A[we].xCoords,A[we].yCoords,Me);qe.push(ye.topLeftX+ye.width/2),qe.push(ye.topLeftY+ye.height/2)}else qe.push(A[we].xCoords[He]),qe.push(A[we].yCoords[He]);if(Fe.isParent()){var ve=f.calcBoundingBox(Fe,A[we].xCoords,A[we].yCoords,Me);Ue.push(ve.topLeftX+ve.width/2),Ue.push(ve.topLeftY+ve.height/2)}else Ue.push(A[we].xCoords[at]),Ue.push(A[we].yCoords[at]);$e.edges.push({startX:qe[0],startY:qe[1],endX:Ue[0],endY:Ue[1]})}else I[we][ke.id()]&&I[we][Fe.id()]&&$e.edges.push({startX:I[we][ke.id()].getCenterX(),startY:I[we][ke.id()].getCenterY(),endX:I[we][Fe.id()].getCenterX(),endY:I[we][Fe.id()].getCenterY()})}),$e.nodes.length>0&&(te.push($e),J.add(we))}});var ee=M.packComponents(te,C.randomize).shifts;if(C.quality=="draft")A.forEach(function(Ee,we){var Me=Ee.xCoords.map(function(de){return de+ee[we].dx}),$e=Ee.yCoords.map(function(de){return de+ee[we].dy});Ee.xCoords=Me,Ee.yCoords=$e});else{var Te=0;J.forEach(function(Ee){Object.keys(I[Ee]).forEach(function(we){var Me=I[Ee][we];Me.setCenter(Me.getCenterX()+ee[Te].dx,Me.getCenterY()+ee[Te].dy)}),Te++})}}}else{var B=C.eles.boundingBox();if(_.push({x:B.x1+B.w/2,y:B.y1+B.h/2}),C.randomize){var O=m(C);A.push(O)}C.quality=="default"||C.quality=="proof"?(I.push(y(C,A[0])),f.relocateComponent(_[0],I[0],C)):f.relocateComponent(_[0],A[0],C)}var ue=o(function(we,Me){if(C.quality=="default"||C.quality=="proof"){typeof we=="number"&&(we=Me);var $e=void 0,de=void 0,rt=we.data("id");return I.forEach(function(Fe){rt in Fe&&($e={x:Fe[rt].getRect().getCenterX(),y:Fe[rt].getRect().getCenterY()},de=Fe[rt])}),C.nodeDimensionsIncludeLabels&&(de.labelWidth&&(de.labelPosHorizontal=="left"?$e.x+=de.labelWidth/2:de.labelPosHorizontal=="right"&&($e.x-=de.labelWidth/2)),de.labelHeight&&(de.labelPosVertical=="top"?$e.y+=de.labelHeight/2:de.labelPosVertical=="bottom"&&($e.y-=de.labelHeight/2))),$e==null&&($e={x:we.position("x"),y:we.position("y")}),{x:$e.x,y:$e.y}}else{var ke=void 0;return A.forEach(function(Fe){var He=Fe.nodeIndexes.get(we.id());He!=null&&(ke={x:Fe.xCoords[He],y:Fe.yCoords[He]})}),ke==null&&(ke={x:we.position("x"),y:we.position("y")}),{x:ke.x,y:ke.y}}},"getPositions");if(C.quality=="default"||C.quality=="proof"||C.randomize){var De=f.calcParentsWithoutChildren(k,E),Ie=E.filter(function(Ee){return Ee.css("display")=="none"});C.eles=E.not(Ie),E.nodes().not(":parent").not(Ie).layoutPositions(w,C,ue),De.length>0&&De.forEach(function(Ee){Ee.position(ue(Ee))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b})();a.exports=x}),657:((a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,d=l(140).layoutBase.SVD,f=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,T=new Map,w=new Map,C=[],k=[],E=[],A=[],N=[],P=[],I=[],D=[],_=void 0,R=void 0,M=1e8,L=1e-9,B=m.piTol,O=m.samplingType,$=m.nodeSeparation,G=void 0,F=o(function(){for(var fe=0,W=0,ce=!1;W=Re;){Oe=K[Re++];for(var Ye=C[Oe],le=0;leAe&&(Ae=N[me],Ve=me)}return Ve},"BFS"),H=o(function(fe){var W=void 0;if(fe){W=Math.floor(Math.random()*R),_=W;for(var K=0;K=1)break;Ae=Be}for(var Ye=0;Ye=1)break;Ae=Be}for(var st=0;st0&&(W.isParent()?C[fe].push(w.get(W.id())):C[fe].push(W.id()))})});var De=o(function(fe){var W=T.get(fe),ce=void 0;b.get(fe).forEach(function(K){g.getElementById(K).isParent()?ce=w.get(K):ce=K,C[W].push(ce),C[T.get(ce)].push(fe)})},"_loop"),Ie=!0,Ee=!1,we=void 0;try{for(var Me=b.keys()[Symbol.iterator](),$e;!(Ie=($e=Me.next()).done);Ie=!0){var de=$e.value;De(de)}}catch(ie){Ee=!0,we=ie}finally{try{!Ie&&Me.return&&Me.return()}finally{if(Ee)throw we}}R=T.size;var rt=void 0;if(R>2){G=R{var u=l(212),h=o(function(f){f&&f("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h}),140:(a=>{a.exports=e})},r={};function i(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return t[a](l,l.exports,i),l.exports}o(i,"__webpack_require__");var n=i(579);return n})()})});var Oy,wm,Hq=z(()=>{"use strict";uc();Oy=o(e=>`${e}`,"wrapIcon"),wm={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:Oy('')},server:{body:Oy('')},disk:{body:Oy('')},internet:{body:Oy('')},cloud:{body:Oy('')},unknown:DD,blank:{body:Oy("")}}}});var ERe,ARe,_Re,DRe,RRe=z(()=>{"use strict";Ut();_s();uc();Ir();Hq();E_();Xt();ERe=o(async function(e,t,r,i){let n=r.getConfigField("padding"),a=r.getConfigField("iconSize"),s=a/2,l=a/6,u=l/2;await Promise.all(t.edges().map(async h=>{let{source:d,sourceDir:f,sourceArrow:p,sourceGroup:m,target:g,targetDir:y,targetArrow:v,targetGroup:x,label:b}=S_(h),{x:T,y:w}=h[0].sourceEndpoint(),{x:C,y:k}=h[0].midpoint(),{x:E,y:A}=h[0].targetEndpoint(),N=n+4;if(m&&(za(f)?T+=f==="L"?-N:N:w+=f==="T"?-N:N+18),x&&(za(y)?E+=y==="L"?-N:N:A+=y==="T"?-N:N+18),!m&&r.getNode(d)?.type==="junction"&&(za(f)?T+=f==="L"?s:-s:w+=f==="T"?s:-s),!x&&r.getNode(g)?.type==="junction"&&(za(y)?E+=y==="L"?s:-s:A+=y==="T"?s:-s),h[0]._private.rscratch){let P=e.insert("g");if(P.insert("path").attr("d",`M ${T},${w} L ${C},${k} L${E},${A} `).attr("class","edge").attr("id",`${i}-${bc(d,g,{prefix:"L"})}`),p){let I=za(f)?oC[f](T,l):T-u,D=uu(f)?oC[f](w,l):w-u;P.insert("polygon").attr("points",Bq[f](l)).attr("transform",`translate(${I},${D})`).attr("class","arrow")}if(v){let I=za(y)?oC[y](E,l):E-u,D=uu(y)?oC[y](A,l):A-u;P.insert("polygon").attr("points",Bq[y](l)).attr("transform",`translate(${I},${D})`).attr("class","arrow")}if(b){let I=lC(f,y)?"XY":za(f)?"X":"Y",D=0;I==="X"?D=Math.abs(T-E):I==="Y"?D=Math.abs(w-A)/1.5:D=Math.abs(T-E)/2;let _=P.append("g");if(await wi(_,b,{useHtmlLabels:!1,width:D,classes:"architecture-service-label"},ge()),_.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),I==="X")_.attr("transform","translate("+C+", "+k+")");else if(I==="Y")_.attr("transform","translate("+C+", "+k+") rotate(-90)");else if(I==="XY"){let R=cC(f,y);if(R&&gRe(R)){let M=_.node().getBoundingClientRect(),[L,B]=vRe(R);_.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*L*B*45})`);let O=_.node().getBoundingClientRect();_.attr("transform",` + translate(${C}, ${k-M.height/2}) + translate(${L*O.width/2}, ${B*O.height/2}) + rotate(${-1*L*B*45}, 0, ${M.height/2}) + `)}}}}}))},"drawEdges"),ARe=o(async function(e,t,r,i){let a=r.getConfigField("padding")*.75,s=r.getConfigField("fontSize"),u=r.getConfigField("iconSize")/2;await Promise.all(t.nodes().map(async h=>{let d=Nf(h);if(d.type==="group"){let{h:f,w:p,x1:m,y1:g}=h.boundingBox(),y=e.append("rect");y.attr("id",`${i}-group-${d.id}`).attr("x",m+u).attr("y",g+u).attr("width",p).attr("height",f).attr("class","node-bkg");let v=e.append("g"),x=m,b=g;if(d.icon){let T=v.append("g");T.html(`${await ks(d.icon,{height:a,width:a,fallbackPrefix:wm.prefix})}`),T.attr("transform","translate("+(x+u+1)+", "+(b+u+1)+")"),x+=a,b+=s/2-1-2}if(d.label){let T=v.append("g");await wi(T,d.label,{useHtmlLabels:!1,width:p,classes:"architecture-service-label"},ge()),T.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),T.attr("transform","translate("+(x+u+4)+", "+(b+u+2)+")")}r.setElementForId(d.id,y)}}))},"drawGroups"),_Re=o(async function(e,t,r,i){let n=ge();for(let a of r){let s=t.append("g"),l=e.getConfigField("iconSize");if(a.title){let f=s.append("g");await wi(f,a.title,{useHtmlLabels:!1,width:l*1.5,classes:"architecture-service-label"},n),f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),f.attr("transform","translate("+l/2+", "+l+")")}let u=s.append("g");if(a.icon)u.html(`${await ks(a.icon,{height:l,width:l,fallbackPrefix:wm.prefix})}`);else if(a.iconText){u.html(`${await ks("blank",{height:l,width:l,fallbackPrefix:wm.prefix})}`);let m=u.append("g").append("foreignObject").attr("width",l).attr("height",l).append("div").attr("class","node-icon-text").attr("style",`height: ${l}px;`).append("div").html(fr(a.iconText,n)),g=parseInt(window.getComputedStyle(m.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;m.attr("style",`-webkit-line-clamp: ${Math.floor((l-2)/g)};`)}else u.append("path").attr("class","node-bkg").attr("id",`${i}-node-${a.id}`).attr("d",`M0,${l} V5 Q0,0 5,0 H${l-5} Q${l},0 ${l},5 V${l} Z`);s.attr("id",`${i}-service-${a.id}`).attr("class","architecture-service");let{width:h,height:d}=s.node().getBBox();a.width=h,a.height=d,e.setElementForId(a.id,s)}return 0},"drawServices"),DRe=o(function(e,t,r,i){r.forEach(n=>{let a=t.append("g"),s=e.getConfigField("iconSize");a.append("g").append("rect").attr("id",`${i}-node-${n.id}`).attr("fill-opacity","0").attr("width",s).attr("height",s),a.attr("class","architecture-junction");let{width:u,height:h}=a._groups[0][0].getBBox();a.width=u,a.height=h,e.setElementForId(n.id,a)})},"drawJunctions")});function z3t(e,t,r){e.forEach(i=>{t.add({group:"nodes",data:{type:"service",id:i.id,icon:i.icon,label:i.title,parent:i.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-service"})})}function G3t(e,t,r){e.forEach(i=>{t.add({group:"nodes",data:{type:"junction",id:i.id,parent:i.in,width:r.getConfigField("iconSize"),height:r.getConfigField("iconSize")},classes:"node-junction"})})}function V3t(e,t){t.nodes().map(r=>{let i=Nf(r);if(i.type==="group")return;i.x=r.position().x,i.y=r.position().y,e.getElementById(i.id).attr("transform","translate("+(i.x||0)+","+(i.y||0)+")")})}function W3t(e,t){e.forEach(r=>{t.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function q3t(e,t){e.forEach(r=>{let{lhsId:i,rhsId:n,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:d,title:f}=r,p=lC(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${i}-${n}`,label:f,source:i,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:n,targetDir:h,targetArrow:l,targetGroup:d,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};t.add({group:"edges",data:m,classes:p})})}function U3t(e,t,r){let i=o((l,u)=>Object.entries(l).reduce((h,[d,f])=>{let p=0,m=Object.entries(f);if(m.length===1)return h[d]=m[0][1],h;for(let g=0;g{let u={},h={};return Object.entries(l).forEach(([d,[f,p]])=>{let m=e.getNode(d)?.in??"default";u[p]??={},u[p][m]??=[],u[p][m].push(d),h[f]??={},h[f][m]??=[],h[f][m].push(d)}),{horiz:Object.values(i(u,"horizontal")).filter(d=>d.length>1),vert:Object.values(i(h,"vertical")).filter(d=>d.length>1)}}),[a,s]=n.reduce(([l,u],{horiz:h,vert:d})=>[[...l,...h],[...u,...d]],[[],[]]);return{horizontal:a,vertical:s}}function H3t(e,t){let r=[],i=o(a=>`${a[0]},${a[1]}`,"posToStr"),n=o(a=>a.split(",").map(s=>parseInt(s)),"strToPos");return e.forEach(a=>{let s=Object.fromEntries(Object.entries(a).map(([d,f])=>[i(f),d])),l=[i([0,0])],u={},h={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;l.length>0;){let d=l.shift();if(d){u[d]=1;let f=s[d];if(f){let p=n(d);Object.entries(h).forEach(([m,g])=>{let y=i([p[0]+g[0],p[1]+g[1]]),v=s[y];v&&!u[y]&&(l.push(y),r.push({[Pq[m]]:v,[Pq[mRe(m)]]:f,gap:1.5*t.getConfigField("iconSize")}))})}}}}),r}function Y3t(e,t,r,i,n,{spatialMaps:a,groupAlignments:s}){return new Promise(l=>{let u=Je("body").append("div").attr("id","cy").attr("style","display:none"),h=Ko({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge[label]",style:{label:"data(label)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${n.getConfigField("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${n.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});u.remove(),W3t(r,h),z3t(e,h,n),G3t(t,h,n),q3t(i,h);let d=U3t(n,a,s),f=H3t(a,n),p=n.getConfigField("iconSize"),m=n.getConfigField("idealEdgeLengthMultiplier")*p,g=.5*p,y=n.getConfigField("edgeElasticity"),v=h.layout({name:"fcose",quality:"proof",randomize:n.getConfigField("randomize"),nodeSeparation:n.getConfigField("nodeSeparation"),numIter:n.getConfigField("numIter"),styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(x){let[b,T]=x.connectedNodes(),{parent:w}=Nf(b),{parent:C}=Nf(T);return w===C?m:g},edgeElasticity(x){let[b,T]=x.connectedNodes(),{parent:w}=Nf(b),{parent:C}=Nf(T);return w===C?y:.001},alignmentConstraint:d,relativePlacementConstraint:f});v.one("layoutstop",()=>{function x(b,T,w,C){let k,E,{x:A,y:N}=b,{x:P,y:I}=T;E=(C-N+(A-w)*(N-I)/(A-P))/Math.sqrt(1+Math.pow((N-I)/(A-P),2)),k=Math.sqrt(Math.pow(C-N,2)+Math.pow(w-A,2)-Math.pow(E,2));let D=Math.sqrt(Math.pow(P-A,2)+Math.pow(I-N,2));k=k/D;let _=(P-A)*(C-N)-(I-N)*(w-A);switch(!0){case _>=0:_=1;break;case _<0:_=-1;break}let R=(P-A)*(w-A)+(I-N)*(C-N);switch(!0){case R>=0:R=1;break;case R<0:R=-1;break}return E=Math.abs(E)*_,k=k*R,{distances:E,weights:k}}o(x,"getSegmentWeights"),h.startBatch();for(let b of Object.values(h.edges()))if(b.data?.()){let{x:T,y:w}=b.source().position(),{x:C,y:k}=b.target().position();if(T!==C&&w!==k){let E=b.sourceEndpoint(),A=b.targetEndpoint(),{sourceDir:N}=S_(b),[P,I]=uu(N)?[E.x,A.y]:[A.x,E.y],{weights:D,distances:_}=x(E,A,P,I);b.style("segment-distances",_),b.style("segment-weights",D)}}h.endBatch(),v.run()}),v.run(),h.ready(x=>{Z.info("Ready",x),l(h)})})}var LRe,j3t,MRe,NRe=z(()=>{"use strict";OP();LRe=ys(SRe(),1);Rr();St();uc();ps();Di();Hq();E_();RRe();dk([{name:wm.prefix,icons:wm}]);Ko.use(LRe.default);o(z3t,"addServices");o(G3t,"addJunctions");o(V3t,"positionNodes");o(W3t,"addGroups");o(q3t,"addEdges");o(U3t,"getAlignments");o(H3t,"getRelativeConstraints");o(Y3t,"layoutArchitecture");j3t=o(async(e,t,r,i)=>{let n=i.db;n.setDiagramId(t);let a=n.getServices(),s=n.getJunctions(),l=n.getGroups(),u=n.getEdges(),h=n.getDataStructures(),d=bi(t),f=d.append("g");f.attr("class","architecture-edges");let p=d.append("g");p.attr("class","architecture-services");let m=d.append("g");m.attr("class","architecture-groups"),await _Re(n,p,a,t),DRe(n,p,s,t);let g=await Y3t(a,s,l,u,n,h);await ERe(f,g,n,t),await ARe(m,g,n,t),V3t(n,g),Io(void 0,d,n.getConfigField("padding"),n.getConfigField("useMaxWidth"))},"draw"),MRe={draw:j3t}});var IRe={};xr(IRe,{diagram:()=>X3t});var X3t,ORe=z(()=>{"use strict";CRe();$q();wRe();NRe();X3t={parser:zq,get db(){return new Iy},renderer:MRe,styles:kRe}});var Yq,jq,A_,Xq,FRe=z(()=>{"use strict";Yq="position frame",jq="frame positioned",A_="position relation",Xq="relation positioned"});function rEt(){Qq={}}function aEt(){let e=oEt,{ast:t}=Qq,r=zRe();if(!t)throw new Error("No data for EventModel");return t.frames.forEach((i,n)=>{let a=fEt(i,t.dataEntities,r);e=Zq(e,{$kind:Yq,index:n,frame:i,textProps:a});let s;xEt(i)?(Z.debug("source frame",i.sourceFrames),s=t.frames.filter(l=>i.sourceFrames.some(u=>u.$refText===l.name)),s.forEach(l=>{e=Zq(e,{$kind:A_,index:n,frame:i,sourceFrame:l})})):e=Zq(e,{$kind:A_,index:n,frame:i})}),e={...e,sortedSwimlanesArray:GRe(e.swimlanes)},e}function sEt(e){Qq.ast=e}function zRe(){return ti}function lEt(e){let t=e.split(".");if(t.length===2)return t[0]}function cEt(e){let t=e.split(".");return t.length===2?t[1]:e}function uEt(e,t){if(!(!t||t.length===0))return Object.values(e).find(r=>r.namespace===t)}function Kq(e,t,r){return Math.max(t,...Object.keys(e).filter(i=>{let n=Number.parseInt(i);return n>t&&nNumber.parseInt(i)))+1}function hEt(e,t){let r=lEt(e.entityIdentifier),i=uEt(t,r);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||ti.labelUiAutomation}:r?{index:Kq(t,0,100),label:ti.labelUiAutomationPrefix+r}:{index:0,label:ti.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||ti.labelCommandReadModel}:r?{index:Kq(t,100,200),label:ti.labelCommandReadModelPrefix+r}:{index:100,label:ti.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||ti.labelEvents}:r?{index:Kq(t,200,300),label:ti.labelEventsPrefix+r}:{index:200,label:ti.labelEvents}}}function dEt(e){let{themeVariables:t}=Nt();switch(e.modelEntityType){case"ui":return{fill:t.emUiFill??"white",stroke:t.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:t.emProcessorFill??"#edb3f6",stroke:t.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:t.emReadModelFill??"#d3f1a2",stroke:t.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:t.emCommandFill??"#bcd6fe",stroke:t.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:t.emEventFill??"#ffb778",stroke:t.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}function fEt(e,t,r){let i=Nt(),n=fr(cEt(e.entityIdentifier)??"",i),a,s={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"
    "},u=`${Tp(n,r.textMaxWidth,s)}`;if(e.dataInlineValue&&(a=e.dataInlineValue,a=a.substring(a.indexOf("{")+1),a=a.substring(0,a.lastIndexOf("}")-1),a=fr(a,i),a=Tp(a,r.textMaxWidth,s),a=a.replaceAll(" "," ")),e.dataReference){let g=t.find(y=>y.name===e.dataReference?.$refText);g&&(a=g.dataBlockValue,a=a.substring(a.indexOf(`{ +`)+2),a=a.substring(0,a.lastIndexOf("}")-1),a=fr(a,i),a=Tp(a,r.textMaxWidth,s),a=a.replaceAll(" "," "),a+="
    ")}let h=a!==void 0;h&&(u+=`

    ${a}`);let d={fontSize:s.fontSize,fontWeight:s.fontWeight,fontFamily:s.fontFamily},f=Px(u,d),p=h?f.width/3:f.width,m={content:u,width:p,height:f.height};return Z.debug(`[${e.name}] ${e.entityIdentifier} text`,m),m}function pEt(e,t){let r=t,i=dEt(r.frame),n={width:r.textProps.width+2*ti.boxTextPadding,height:r.textProps.height+2*ti.boxTextPadding};return[{$kind:jq,frame:r.frame,index:r.index,visual:i,dimension:n,textProps:r.textProps}]}function mEt(e,t,r){return t===void 0?ti.contentStartX:t.index===e.index&&e.r?e.r+ti.boxPadding:r===void 0?ti.contentStartX:r.r-ti.boxOverlap+ti.boxPadding}function gEt(e,t){let r=[...e.map(i=>i.r),t];return Math.max(...r)}function GRe(e){return Object.values(e).sort((t,r)=>t.index-r.index)}function yEt(e,t){let r=t,i=hEt(r.frame,e.swimlanes),n;i.index in e.swimlanes?n=e.swimlanes[i.index]:n={index:i.index,label:i.label,r:0,y:i.index*ti.swimlaneMinHeight+ti.swimlaneGap,height:ti.swimlaneMinHeight,maxHeight:ti.swimlaneMinHeight};let a=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,s=e.previousSwimlaneNumber!==void 0?e.swimlanes[e.previousSwimlaneNumber]:void 0,l={width:Math.max(ti.boxMinWidth,Math.min(ti.boxMaxWidth,r.dimension.width))+2*ti.boxPadding,height:Math.max(ti.boxMinHeight,Math.min(ti.boxMaxHeight,r.dimension.height))+2*ti.boxPadding},u=mEt(n,s,a),h=u+l.width+ti.boxPadding,d=gEt(Object.values(e.swimlanes),h);n.r=u+l.width,n.maxHeight=Math.max(n.maxHeight,l.height),n.height=Math.max(ti.swimlaneMinHeight,n.maxHeight)+2*ti.swimlanePadding;let f={x:u,y:ti.swimlanePadding+n.y,r:h,dimension:l,leftSibling:!1,swimlane:n,visual:r.visual,text:r.textProps.content,frame:r.frame,index:r.index},p={...e,boxes:[...e.boxes,f],swimlanes:{...e.swimlanes,[`${n.index}`]:n},previousSwimlaneNumber:i.index,previousFrame:r.frame,maxR:d},m=GRe(p.swimlanes);m.length>0&&(m[0].y=0);for(let g=1;g0}function $Re(e,t){if(t!=null)return e.find(r=>r.frame.name===t.name)}function bEt(e,t,r){if(!(r<0))for(let i=r;i>=0;i--){let n=e[i];if(n.swimlane.index!==t)return n}}function TEt(e,t){let r=t;if(JA(r.frame)||vEt(r.index,r.frame))return[];let i=$Re(e.boxes,r.frame);if(i===void 0)throw new Error(`Target box not found for frame ${r.frame.name}`);let n;return r.sourceFrame?n=$Re(e.boxes,r.sourceFrame):n=bEt(e.boxes,i.swimlane.index,r.index-1),n===void 0?[]:[{$kind:Xq,frame:r.frame,index:r.index,sourceBox:n,targetBox:i}]}function CEt(e,t){let r=t,i={visual:{fill:"none",stroke:"#000"},source:{x:r.sourceBox.x,y:r.sourceBox.y},target:{x:r.targetBox.x,y:r.targetBox.y},sourceBox:r.sourceBox,targetBox:r.targetBox};return{...e,relations:[...e.relations,i]}}function SEt(e,t){let r=kEt[t.$kind];if(r==null)return[];let i=r(e,t);return Z.debug("decided events",i),i}function EEt(e,t){let r=t.reduce((i,n)=>{let a=wEt[n.$kind];return a==null?i:a(i,n)},e);return Z.debug("evolve events",{state:e,newState:r,events:t}),r}function Zq(e,t){let r=SEt(e,t);return EEt(e,r)}var J3t,eEt,tEt,iEt,nEt,Qq,ti,oEt,kEt,wEt,fC,Jq=z(()=>{"use strict";St();Xt();Xt();br();Ci();Ir();Bn();sl();FRe();J3t=o(function(e){Z.debug("options str",e)},"setOptions"),eEt=o(function(){return{}},"getOptions"),tEt=o(function(){rEt(),gr()},"clear");o(rEt,"reset");iEt=or.eventmodeling,nEt=o(()=>Gr({...iEt,...Nt().eventmodeling}),"getConfig"),Qq={};o(aEt,"getState");o(sEt,"setAst");ti={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};o(zRe,"getDiagramProps");oEt={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};o(lEt,"extractNamespace");o(cEt,"extractName");o(uEt,"findSwimlaneByNamespace");o(Kq,"findNextAvailableIndex");o(hEt,"calculateSwimlaneProps");o(dEt,"calculateEntityVisualProps");o(fEt,"calculateTextProps");o(pEt,"decidePositionFrame");o(mEt,"calculateX");o(gEt,"calculateMaxRight");o(GRe,"sortedSwimlanesArray");o(yEt,"evolveFramePositioned");o(vEt,"isFirstFrame");o(xEt,"hasSourceFrame");o($Re,"findBoxByFrame");o(bEt,"findBoxByLineIndex");o(TEt,"decidePositionRelation");o(CEt,"evolveRelationPositioned");kEt={[Yq]:pEt,[A_]:TEt},wEt={[jq]:yEt,[Xq]:CEt};o(SEt,"decide");o(EEt,"evolve");o(Zq,"dispatch");fC={getConfig:nEt,setOptions:J3t,getOptions:eEt,clear:tEt,setAccTitle:Cr,getAccTitle:kr,getAccDescription:Sr,setAccDescription:wr,setDiagramTitle:Ar,getDiagramTitle:Er,setAst:sEt,getDiagramProps:zRe,getState:aEt}});var VRe,WRe=z(()=>{"use strict";sl();St();au();Jq();VRe={parse:o(async e=>{let t=await bn("eventmodeling",e);Z.debug(t),fC.setAst(t),ca(t,fC)},"parse")}});function DEt(e,t){return r=>{let i=r.swimlane.y+t.swimlanePadding,n=e.append("g").attr("class","em-box");n.append("rect").attr("x",r.x).attr("y",i).attr("rx","3").attr("width",r.dimension.width).attr("height",r.dimension.height).attr("stroke",r.visual.stroke).attr("fill",r.visual.fill),n.append("foreignObject").attr("x",r.x+t.boxPadding).attr("y",i+10).attr("width",r.dimension.width-2*t.boxPadding).attr("height",r.dimension.height-2*t.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(r.text)}}function REt(e,t){return e>t}function LEt(e,t,r,i){return n=>{let a=n.sourceBox.swimlane.y+t.swimlanePadding,s=n.targetBox.swimlane.y+t.swimlanePadding,l=REt(a,s),u=n.sourceBox.x+n.sourceBox.dimension.width*2/3,h=n.targetBox.x+n.targetBox.dimension.width/3,d,f;Z.debug(`rendering relation up=${l} for `,{sourceBox:n.sourceBox,targetBox:n.targetBox}),l?(d=a,f=s+n.targetBox.dimension.height):(d=a+n.sourceBox.dimension.height,f=s);let p=i.emRelationStroke??n.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",n.visual.fill).attr("stroke",p).attr("stroke-width","1").attr("marker-end",`url(#${r})`).attr("d",`M${u} ${d} L${h} ${f}`)}}function MEt(e,t,r,i){return n=>{let a=e.append("g").attr("class","em-swimlane"),s=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";a.append("rect").attr("x",0).attr("y",n.y).attr("rx","3").attr("width",t+r.swimlanePadding).attr("height",n.height).attr("fill",s).attr("stroke",l),a.append("text").attr("font-weight",r.swimlaneTextFontWeight).attr("x",30).attr("y",n.y+30).text(n.label)}}var AEt,_Et,NEt,qRe,URe=z(()=>{"use strict";Rr();Ut();St();AEt=ge(),_Et=AEt?.eventmodeling;o(DEt,"renderD3Box");o(REt,"dirUpwards");o(LEt,"renderD3Relation");o(MEt,"renderD3Swimlane");NEt=o(function(e,t,r,i){if(Z.debug("in eventmodeling renderer",e+` +`,"id:",t,r),!_Et)throw new Error("EventModeling config not found");let n=i.db,{themeVariables:a,eventmodeling:s}=ge(),l=Je(`[id="${t}"]`),u=n.getDiagramProps(),h=n.getState(),d=`em-arrowhead-${t}`,f=a.emArrowhead??"#000000";h.sortedSwimlanesArray.forEach(MEt(l,h.maxR,u,a)),h.boxes.forEach(DEt(l,u)),h.relations.forEach(LEt(l,u,d,a)),l.append("defs").append("marker").attr("id",d).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",f),Av(void 0,l,s?.padding??30,s?.useMaxWidth)},"draw"),qRe={draw:NEt}});var IEt,HRe,YRe=z(()=>{"use strict";IEt=o(e=>"","getStyles"),HRe=IEt});var jRe={};xr(jRe,{diagram:()=>OEt});var OEt,XRe=z(()=>{"use strict";WRe();Jq();URe();YRe();OEt={parser:VRe,db:fC,renderer:qRe,styles:HRe}});var eU,QRe,JRe=z(()=>{"use strict";eU=(function(){var e=o(function(x,b,T,w){for(T=T||{},w=x.length;w--;T[x[w]]=b);return T},"o"),t=[1,4],r=[1,14],i=[1,12],n=[1,13],a=[6,7,8],s=[1,20],l=[1,18],u=[1,19],h=[6,7,11],d=[1,6,13,14],f=[1,23],p=[1,24],m=[1,6,7,11,13,14],g={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(b,T,w,C,k,E,A){var N=E.length-1;switch(k){case 6:case 7:return C;case 15:C.addNode(E[N-1].length,E[N].trim());break;case 16:C.addNode(0,E[N].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:r,7:[1,10],9:9,12:11,13:i,14:n},e(a,[2,3]),{1:[2,2]},e(a,[2,4]),e(a,[2,5]),{1:[2,6],6:r,12:15,13:i,14:n},{6:r,9:16,12:11,13:i,14:n},{6:s,7:l,10:17,11:u},e(h,[2,18],{14:[1,21]}),e(h,[2,16]),e(h,[2,17]),{6:s,7:l,10:22,11:u},{1:[2,7],6:r,12:15,13:i,14:n},e(d,[2,14],{7:f,11:p}),e(m,[2,8]),e(m,[2,9]),e(m,[2,10]),e(h,[2,15]),e(d,[2,13],{7:f,11:p}),e(m,[2,11]),e(m,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(b,T){if(T.recoverable)this.trace(b);else{var w=new Error(b);throw w.hash=T,w}},"parseError"),parse:o(function(b){var T=this,w=[0],C=[],k=[null],E=[],A=this.table,N="",P=0,I=0,D=0,_=2,R=1,M=E.slice.call(arguments,1),L=Object.create(this.lexer),B={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(B.yy[O]=this.yy[O]);L.setInput(b,B.yy),B.yy.lexer=L,B.yy.parser=this,typeof L.yylloc>"u"&&(L.yylloc={});var $=L.yylloc;E.push($);var G=L.options&&L.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function F(De){w.length=w.length-2*De,k.length=k.length-De,E.length=E.length-De}o(F,"popStack");function V(){var De;return De=C.pop()||L.lex()||R,typeof De!="number"&&(De instanceof Array&&(C=De,De=C.pop()),De=T.symbols_[De]||De),De}o(V,"lex");for(var H,j,U,Q,Y,ae,J={},te,re,ee,Te;;){if(U=w[w.length-1],this.defaultActions[U]?Q=this.defaultActions[U]:((H===null||typeof H>"u")&&(H=V()),Q=A[U]&&A[U][H]),typeof Q>"u"||!Q.length||!Q[0]){var ue="";Te=[];for(te in A[U])this.terminals_[te]&&te>_&&Te.push("'"+this.terminals_[te]+"'");L.showPosition?ue="Parse error on line "+(P+1)+`: +`+L.showPosition()+` +Expecting `+Te.join(", ")+", got '"+(this.terminals_[H]||H)+"'":ue="Parse error on line "+(P+1)+": Unexpected "+(H==R?"end of input":"'"+(this.terminals_[H]||H)+"'"),this.parseError(ue,{text:L.match,token:this.terminals_[H]||H,line:L.yylineno,loc:$,expected:Te})}if(Q[0]instanceof Array&&Q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+U+", token: "+H);switch(Q[0]){case 1:w.push(H),k.push(L.yytext),E.push(L.yylloc),w.push(Q[1]),H=null,j?(H=j,j=null):(I=L.yyleng,N=L.yytext,P=L.yylineno,$=L.yylloc,D>0&&D--);break;case 2:if(re=this.productions_[Q[1]][1],J.$=k[k.length-re],J._$={first_line:E[E.length-(re||1)].first_line,last_line:E[E.length-1].last_line,first_column:E[E.length-(re||1)].first_column,last_column:E[E.length-1].last_column},G&&(J._$.range=[E[E.length-(re||1)].range[0],E[E.length-1].range[1]]),ae=this.performAction.apply(J,[N,I,P,B.yy,Q[1],k,E].concat(M)),typeof ae<"u")return ae;re&&(w=w.slice(0,-1*re*2),k=k.slice(0,-1*re),E=E.slice(0,-1*re)),w.push(this.productions_[Q[1]][0]),k.push(J.$),E.push(J._$),ee=A[w[w.length-2]][w[w.length-1]],w.push(ee);break;case 3:return!0}}return!0},"parse")},y=(function(){var x={EOF:1,parseError:o(function(T,w){if(this.yy.parser)this.yy.parser.parseError(T,w);else throw new Error(T)},"parseError"),setInput:o(function(b,T){return this.yy=T||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var T=b.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},"input"),unput:o(function(b){var T=b.length,w=b.split(/(?:\r\n?|\n)/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var C=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),w.length-1&&(this.yylineno-=w.length-1);var k=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:w?(w.length===C.length?this.yylloc.first_column:0)+C[C.length-w.length].length-w[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[k[0],k[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(b){this.unput(this.match.slice(b))},"less"),pastInput:o(function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var b=this.pastInput(),T=new Array(b.length+1).join("-");return b+this.upcomingInput()+` +`+T+"^"},"showPosition"),test_match:o(function(b,T){var w,C,k;if(this.options.backtrack_lexer&&(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(k.yylloc.range=this.yylloc.range.slice(0))),C=b[0].match(/(?:\r\n?|\n).*/g),C&&(this.yylineno+=C.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:C?C[C.length-1].length-C[C.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],w=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),w)return w;if(this._backtrack){for(var E in k)this[E]=k[E];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,T,w,C;this._more||(this.yytext="",this.match="");for(var k=this._currentRules(),E=0;ET[0].length)){if(T=w,C=E,this.options.backtrack_lexer){if(b=this.test_match(w,k[E]),b!==!1)return b;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(b=this.test_match(T,k[C]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(T,w,C,k){var E=k;switch(C){case 0:return 6;case 1:return 8;case 2:return 8;case 3:return 6;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return x})();g.lexer=y;function v(){this.yy={}}return o(v,"Parser"),v.prototype=g,g.Parser=v,new v})();eU.parser=eU;QRe=eU});var __,eLe=z(()=>{"use strict";Ut();Ir();Ci();__=class{constructor(){this.stack=[];this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}static{o(this,"IshikawaDB")}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,gr()}getRoot(){return this.root}addNode(t,r){let i=vt.sanitizeText(r,ge());if(!this.root){this.root={text:i,children:[]},this.stack=[{level:0,node:this.root}],Ar(i);return}this.baseLevel??=t;let n=t-this.baseLevel+1;for(n<=0&&(n=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=n;)this.stack.pop();let a=this.stack[this.stack.length-1].node,s={text:i,children:[]};a.children.push(s),this.stack.push({level:n,node:s})}getAccTitle(){return kr()}setAccTitle(t){Cr(t)}getAccDescription(){return Sr()}setAccDescription(t){wr(t)}getDiagramTitle(){return Er()}setDiagramTitle(t){Ar(t)}}});var $Et,Py,zEt,GEt,VEt,sLe,tLe,rLe,iLe,WEt,nLe,qEt,UEt,HEt,tU,YEt,jEt,oLe,D_,aLe,By,lLe,cLe=z(()=>{"use strict";Ut();ps();Di();Xt();jt();$Et=14,Py=250,zEt=30,GEt=60,VEt=5,sLe=82*Math.PI/180,tLe=Math.cos(sLe),rLe=Math.sin(sLe),iLe=o((e,t,r)=>{let i=e.node().getBBox(),n=i.width+t*2,a=i.height+t*2;Br(e,a,n,r),e.attr("viewBox",`${i.x-t} ${i.y-t} ${n} ${a}`)},"applyPaddedViewBox"),WEt=o((e,t,r,i)=>{let a=i.db.getRoot();if(!a)return;let s=ge(),{look:l,handDrawnSeed:u,themeVariables:h}=s,d=Za(s.fontSize)[0]??$Et,f=l==="handDrawn",p=a.children??[],m=s.ishikawa?.diagramPadding??20,g=s.ishikawa?.useMaxWidth??!1,y=bi(t),v=y.append("g").attr("class","ishikawa"),x=f?ut.svg(y.node()):void 0,b=x?{roughSvg:x,seed:u??0,lineColor:h?.lineColor??"#333",fillColor:h?.mainBkg??"#fff"}:void 0,T=`ishikawa-arrow-${t}`;f||v.append("defs").append("marker").attr("id",T).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 Z").attr("class","ishikawa-arrow");let w=0,C=Py,k=f?void 0:By(v,w,C,w,C,"ishikawa-spine");if(qEt(v,w,C,a.text,d,b),!p.length){f&&By(v,w,C,w,C,"ishikawa-spine",b),iLe(y,m,g);return}w-=20;let E=p.filter((L,B)=>B%2===0),A=p.filter((L,B)=>B%2===1),N=nLe(E),P=nLe(A),I=N.total+P.total,D=Py,_=Py;if(I>0){let L=Py*2,B=Py*.3;D=Math.max(B,L*(N.total/I)),_=Math.max(B,L*(P.total/I))}let R=d*2;D=Math.max(D,N.max*R),_=Math.max(_,P.max*R),C=Math.max(D,Py),k&&k.attr("y1",C).attr("y2",C),v.select(".ishikawa-head-group").attr("transform",`translate(0,${C})`);let M=Math.ceil(p.length/2);for(let L=0;LMath.min(O,$.getBBox().x),1/0)}if(f)By(v,w,C,0,C,"ishikawa-spine",b);else{k.attr("x1",w);let L=`url(#${T})`;v.selectAll("line.ishikawa-branch, line.ishikawa-sub-branch").attr("marker-start",L)}iLe(y,m,g)},"draw"),nLe=o(e=>{let t=o(r=>r.children.reduce((i,n)=>i+1+t(n),0),"countDescendants");return e.reduce((r,i)=>{let n=t(i);return r.total+=n,r.max=Math.max(r.max,n),r},{total:0,max:0})},"sideStats"),qEt=o((e,t,r,i,n,a)=>{let s=Math.max(6,Math.floor(110/(n*.6))),l=e.append("g").attr("class","ishikawa-head-group").attr("transform",`translate(${t},${r})`),u=D_(l,oLe(i,s),0,0,"ishikawa-head-label","start",n),h=u.node().getBBox(),d=Math.max(60,h.width+6),f=Math.max(40,h.height*2+40),p=`M 0 ${-f/2} L 0 ${f/2} Q ${d*2.4} 0 0 ${-f/2} Z`;if(a){let m=a.roughSvg.path(p,{roughness:1.5,seed:a.seed,fill:a.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:a.lineColor,strokeWidth:2});l.insert(()=>m,":first-child").attr("class","ishikawa-head")}else l.insert("path",":first-child").attr("class","ishikawa-head").attr("d",p);u.attr("transform",`translate(${(d-h.width)/2-h.x+3},${-h.y-h.height/2})`)},"drawHead"),UEt=o((e,t)=>{let r=[],i=[],n=o((a,s,l)=>{let u=t===-1?[...a].reverse():a;for(let h of u){let d=r.length,f=h.children??[];r.push({depth:l,text:oLe(h.text,15),parentIndex:s,childCount:f.length}),l%2===0?(i.push(d),f.length&&n(f,d,l+1)):(f.length&&n(f,d,l+1),i.push(d))}},"walk");return n(e,-1,2),{entries:r,yOrder:i}},"flattenTree"),HEt=o((e,t,r,i,n,a,s)=>{let l=e.append("g").attr("class","ishikawa-label-group"),h=D_(l,t,r,i+11*n,"ishikawa-label cause","middle",a).node().getBBox();if(s){let d=s.roughSvg.rectangle(h.x-20,h.y-2,h.width+40,h.height+4,{roughness:1.5,seed:s.seed,fill:s.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:s.lineColor,strokeWidth:2});l.insert(()=>d,":first-child").attr("class","ishikawa-label-box")}else l.insert("rect",":first-child").attr("class","ishikawa-label-box").attr("x",h.x-20).attr("y",h.y-2).attr("width",h.width+40).attr("height",h.height+4)},"drawCauseLabel"),tU=o((e,t,r,i,n,a)=>{let s=Math.sqrt(i*i+n*n);if(s===0)return;let l=i/s,u=n/s,h=6,d=-u*h,f=l*h,p=t,m=r,g=`M ${p} ${m} L ${p-l*h*2+d} ${m-u*h*2+f} L ${p-l*h*2-d} ${m-u*h*2-f} Z`,y=a.roughSvg.path(g,{roughness:1,seed:a.seed,fill:a.lineColor,fillStyle:"solid",stroke:a.lineColor,strokeWidth:1});e.append(()=>y)},"drawArrowMarker"),YEt=o((e,t,r,i,n,a,s,l)=>{let u=t.children??[],h=a*(u.length?1:.2),d=-tLe*h,f=rLe*h*n,p=r+d,m=i+f;if(By(e,r,i,p,m,"ishikawa-branch",l),l&&tU(e,r,i,r-p,i-m,l),HEt(e,t.text,p,m,n,s,l),!u.length)return;let{entries:g,yOrder:y}=UEt(u,n),v=g.length,x=new Array(v);for(let[k,E]of y.entries())x[E]=i+f*((k+1)/(v+1));let b=new Map;b.set(-1,{x0:r,y0:i,x1:p,y1:m,childCount:u.length,childrenDrawn:0});let T=-tLe,w=rLe*n,C=n<0?"ishikawa-label up":"ishikawa-label down";for(let[k,E]of g.entries()){let A=x[k],N=b.get(E.parentIndex),P=e.append("g").attr("class","ishikawa-sub-group"),I=0,D=0,_=0;if(E.depth%2===0){let R=N.y1-N.y0;I=aLe(N.x0,N.x1,R?(A-N.y0)/R:.5),D=A,_=I-(E.childCount>0?GEt+E.childCount*VEt:zEt),By(P,I,A,_,A,"ishikawa-sub-branch",l),l&&tU(P,I,A,1,0,l),D_(P,E.text,_,A,"ishikawa-label align","end",s)}else{let R=N.childrenDrawn++;I=aLe(N.x0,N.x1,(N.childCount-R)/(N.childCount+1)),D=N.y0,_=I+T*((A-D)/w),By(P,I,D,_,A,"ishikawa-sub-branch",l),l&&tU(P,I,D,I-_,D-A,l),D_(P,E.text,_,A,C,"end",s)}E.childCount>0&&b.set(k,{x0:I,y0:D,x1:_,y1:A,childCount:E.childCount,childrenDrawn:0})}},"drawBranch"),jEt=o(e=>e.split(/|\n/),"splitLines"),oLe=o((e,t)=>{if(e.length<=t)return e;let r=[];for(let i of e.split(/\s+/)){let n=r.length-1;n>=0&&r[n].length+1+i.length<=t?r[n]+=" "+i:r.push(i)}return r.join(` +`)},"wrapText"),D_=o((e,t,r,i,n,a,s)=>{let l=jEt(t),u=s*1.05,h=e.append("text").attr("class",n).attr("text-anchor",a).attr("x",r).attr("y",i-(l.length-1)*u/2);for(let[d,f]of l.entries())h.append("tspan").attr("x",r).attr("dy",d===0?0:u).text(f);return h},"drawMultilineText"),aLe=o((e,t,r)=>e+(t-e)*r,"lerp"),By=o((e,t,r,i,n,a,s)=>{if(s){let l=s.roughSvg.line(t,r,i,n,{roughness:1.5,seed:s.seed,stroke:s.lineColor,strokeWidth:2});e.append(()=>l).attr("class",a);return}return e.append("line").attr("class",a).attr("x1",t).attr("y1",r).attr("x2",i).attr("y2",n)},"drawLine"),lLe={draw:WEt}});var XEt,uLe,hLe=z(()=>{"use strict";XEt=o(e=>` +.ishikawa .ishikawa-spine, +.ishikawa .ishikawa-branch, +.ishikawa .ishikawa-sub-branch { + stroke: ${e.lineColor}; + stroke-width: 2; + fill: none; +} + +.ishikawa .ishikawa-sub-branch { + stroke-width: 1; +} + +.ishikawa .ishikawa-arrow { + fill: ${e.lineColor}; +} + +.ishikawa .ishikawa-head { + fill: ${e.mainBkg}; + stroke: ${e.lineColor}; + stroke-width: 2; +} + +.ishikawa .ishikawa-label-box { + fill: ${e.mainBkg}; + stroke: ${e.lineColor}; + stroke-width: 2; +} + +.ishikawa text { + font-family: ${e.fontFamily}; + font-size: ${e.fontSize}; + fill: ${e.textColor}; +} + +.ishikawa .ishikawa-head-label { + font-weight: 600; + text-anchor: middle; + dominant-baseline: middle; + font-size: 14px; +} + +.ishikawa .ishikawa-label { + text-anchor: end; +} + +.ishikawa .ishikawa-label.cause { + text-anchor: middle; + dominant-baseline: middle; +} + +.ishikawa .ishikawa-label.align { + text-anchor: end; + dominant-baseline: middle; +} + +.ishikawa .ishikawa-label.up { + dominant-baseline: baseline; +} + +.ishikawa .ishikawa-label.down { + dominant-baseline: hanging; +} +`,"getStyles"),uLe=XEt});var dLe={};xr(dLe,{diagram:()=>KEt});var KEt,fLe=z(()=>{"use strict";JRe();eLe();cLe();hLe();KEt={parser:QRe,get db(){return new __},renderer:lLe,styles:uLe}});var rU,gLe,yLe=z(()=>{"use strict";rU=(function(){var e=o(function(b,T,w,C){for(w=w||{},C=b.length;C--;w[b[C]]=T);return w},"o"),t=[5,8],r=[7,8,11,12,17,19,22,24],i=[1,17],n=[1,18],a=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],s=[1,31],l=[1,39],u=[7,8,11,12,17,19,22,24,27],h=[1,57],d=[1,56],f=[1,58],p=[1,59],m=[1,60],g=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],y={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:o(function(T,w,C,k,E,A,N){var P=A.length-1;switch(E){case 1:return A[P-1];case 2:case 3:case 4:this.$=[];break;case 5:A[P-1].push(A[P]),this.$=A[P-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=A[P];break;case 8:k.setDiagramTitle(A[P].substr(6)),this.$=A[P].substr(6);break;case 9:k.addSubsetData([A[P]],void 0,void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 10:k.addSubsetData([A[P-1]],A[P],void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 11:k.addSubsetData([A[P-2]],void 0,parseFloat(A[P])),k.setIndentMode&&k.setIndentMode(!0);break;case 12:k.addSubsetData([A[P-3]],A[P-2],parseFloat(A[P])),k.setIndentMode&&k.setIndentMode(!0);break;case 13:if(A[P].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[P]),k.addSubsetData(A[P],void 0,void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 14:if(A[P-1].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[P-1]),k.addSubsetData(A[P-1],A[P],void 0),k.setIndentMode&&k.setIndentMode(!0);break;case 15:if(A[P-2].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[P-2]),k.addSubsetData(A[P-2],void 0,parseFloat(A[P])),k.setIndentMode&&k.setIndentMode(!0);break;case 16:if(A[P-3].length<2)throw new Error("union requires multiple identifiers");k.validateUnionIdentifiers&&k.validateUnionIdentifiers(A[P-3]),k.addSubsetData(A[P-3],A[P-2],parseFloat(A[P])),k.setIndentMode&&k.setIndentMode(!0);break;case 17:case 18:case 19:k.addTextData(A[P-1],A[P],void 0);break;case 20:case 21:k.addTextData(A[P-2],A[P-1],A[P]);break;case 23:k.addStyleData(A[P-1],A[P]);break;case 24:case 25:case 26:var I=k.getCurrentSets();if(!I)throw new Error("text requires set");k.addTextData(I,A[P],void 0);break;case 27:case 28:var I=k.getCurrentSets();if(!I)throw new Error("text requires set");k.addTextData(I,A[P-1],A[P]);break;case 29:case 41:this.$=[A[P]];break;case 30:case 42:this.$=[...A[P-2],A[P]];break;case 31:this.$=[A[P-2],A[P]];break;case 33:this.$=A[P].join(" ");break;case 34:this.$=[A[P]];break;case 35:A[P-1].push(A[P]),this.$=A[P-1];break;case 43:case 44:this.$=A[P];break}},"anonymous"),table:[e(t,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},e(r,[2,4],{6:5}),e(t,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},e(r,[2,5]),e(r,[2,6]),e(r,[2,7]),e(r,[2,8]),{13:16,20:i,21:n},{13:20,18:19,20:i,21:n},{13:20,18:21,20:i,21:n},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:i,21:n},e(r,[2,9],{14:[1,27],15:[1,28]}),e(a,[2,43]),e(a,[2,44]),e(r,[2,13],{14:[1,29],15:[1,30],27:s}),e(a,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:s},e(r,[2,22]),e(r,[2,24],{14:[1,35]}),e(r,[2,25],{14:[1,36]}),e(r,[2,26]),{20:l,25:37,26:38,27:s},e(r,[2,10],{15:[1,40]}),{16:[1,41]},e(r,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:i,21:n},e(r,[2,17],{14:[1,45]}),e(r,[2,18],{14:[1,46]}),e(r,[2,19]),e(r,[2,27]),e(r,[2,28]),e(r,[2,23],{27:[1,47]}),e(u,[2,29]),{15:[1,48]},{16:[1,49]},e(r,[2,11]),{16:[1,50]},e(r,[2,15]),e(a,[2,42]),e(r,[2,20]),e(r,[2,21]),{20:l,26:51},{16:h,20:d,21:[1,53],28:52,29:54,30:55,31:f,32:p,33:m},e(r,[2,12]),e(r,[2,16]),e(u,[2,30]),e(u,[2,31]),e(u,[2,32]),e(u,[2,33],{30:61,16:h,20:d,31:f,32:p,33:m}),e(g,[2,34]),e(g,[2,36]),e(g,[2,37]),e(g,[2,38]),e(g,[2,39]),e(g,[2,40]),e(g,[2,35])],defaultActions:{6:[2,1]},parseError:o(function(T,w){if(w.recoverable)this.trace(T);else{var C=new Error(T);throw C.hash=w,C}},"parseError"),parse:o(function(T){var w=this,C=[0],k=[],E=[null],A=[],N=this.table,P="",I=0,D=0,_=0,R=2,M=1,L=A.slice.call(arguments,1),B=Object.create(this.lexer),O={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(O.yy[$]=this.yy[$]);B.setInput(T,O.yy),O.yy.lexer=B,O.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var G=B.yylloc;A.push(G);var F=B.options&&B.options.ranges;typeof O.yy.parseError=="function"?this.parseError=O.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function V(Ie){C.length=C.length-2*Ie,E.length=E.length-Ie,A.length=A.length-Ie}o(V,"popStack");function H(){var Ie;return Ie=k.pop()||B.lex()||M,typeof Ie!="number"&&(Ie instanceof Array&&(k=Ie,Ie=k.pop()),Ie=w.symbols_[Ie]||Ie),Ie}o(H,"lex");for(var j,U,Q,Y,ae,J,te={},re,ee,Te,ue;;){if(Q=C[C.length-1],this.defaultActions[Q]?Y=this.defaultActions[Q]:((j===null||typeof j>"u")&&(j=H()),Y=N[Q]&&N[Q][j]),typeof Y>"u"||!Y.length||!Y[0]){var De="";ue=[];for(re in N[Q])this.terminals_[re]&&re>R&&ue.push("'"+this.terminals_[re]+"'");B.showPosition?De="Parse error on line "+(I+1)+`: +`+B.showPosition()+` +Expecting `+ue.join(", ")+", got '"+(this.terminals_[j]||j)+"'":De="Parse error on line "+(I+1)+": Unexpected "+(j==M?"end of input":"'"+(this.terminals_[j]||j)+"'"),this.parseError(De,{text:B.match,token:this.terminals_[j]||j,line:B.yylineno,loc:G,expected:ue})}if(Y[0]instanceof Array&&Y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Q+", token: "+j);switch(Y[0]){case 1:C.push(j),E.push(B.yytext),A.push(B.yylloc),C.push(Y[1]),j=null,U?(j=U,U=null):(D=B.yyleng,P=B.yytext,I=B.yylineno,G=B.yylloc,_>0&&_--);break;case 2:if(ee=this.productions_[Y[1]][1],te.$=E[E.length-ee],te._$={first_line:A[A.length-(ee||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(ee||1)].first_column,last_column:A[A.length-1].last_column},F&&(te._$.range=[A[A.length-(ee||1)].range[0],A[A.length-1].range[1]]),J=this.performAction.apply(te,[P,D,I,O.yy,Y[1],E,A].concat(L)),typeof J<"u")return J;ee&&(C=C.slice(0,-1*ee*2),E=E.slice(0,-1*ee),A=A.slice(0,-1*ee)),C.push(this.productions_[Y[1]][0]),E.push(te.$),A.push(te._$),Te=N[C[C.length-2]][C[C.length-1]],C.push(Te);break;case 3:return!0}}return!0},"parse")},v=(function(){var b={EOF:1,parseError:o(function(w,C){if(this.yy.parser)this.yy.parser.parseError(w,C);else throw new Error(w)},"parseError"),setInput:o(function(T,w){return this.yy=w||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var w=T.match(/(?:\r\n?|\n).*/g);return w?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var w=T.length,C=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-w),this.offset-=w;var k=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),C.length-1&&(this.yylineno-=C.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:C?(C.length===k.length?this.yylloc.first_column:0)+k[k.length-C.length].length-C[0].length:this.yylloc.first_column-w},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-w]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),w=new Array(T.length+1).join("-");return T+this.upcomingInput()+` +`+w+"^"},"showPosition"),test_match:o(function(T,w){var C,k,E;if(this.options.backtrack_lexer&&(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(E.yylloc.range=this.yylloc.range.slice(0))),k=T[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],C=this.performAction.call(this,this.yy,this,w,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),C)return C;if(this._backtrack){for(var A in E)this[A]=E[A];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,w,C,k;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),A=0;Aw[0].length)){if(w=C,k=A,this.options.backtrack_lexer){if(T=this.test_match(C,E[A]),T!==!1)return T;if(this._backtrack){w=!1;continue}else return!1}else if(!this.options.flex)break}return w?(T=this.test_match(w,E[k]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var w=this.next();return w||this.lex()},"lex"),begin:o(function(w){this.conditionStack.push(w)},"begin"),popState:o(function(){var w=this.conditionStack.length-1;return w>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(w){return w=this.conditionStack.length-1-Math.abs(w||0),w>=0?this.conditionStack[w]:"INITIAL"},"topState"),pushState:o(function(w){this.begin(w)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(w,C,k,E){var A=E;switch(k){case 0:break;case 1:break;case 2:break;case 3:if(w.getIndentMode&&w.getIndentMode())return w.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 4:break;case 5:w.setIndentMode&&w.setIndentMode(!1),this.begin("INITIAL"),this.unput(C.yytext);break;case 6:return this.begin("bol"),8;break;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(w.consumeIndentText)w.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return C.yytext=C.yytext.slice(2,-2),14;break;case 17:return C.yytext=C.yytext.slice(1,-1).trim(),14;break;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};return b})();y.lexer=v;function x(){this.yy={}}return o(x,"Parser"),x.prototype=y,y.Parser=x,new x})();rU.parser=rU;gLe=rU});function h5t(){return Gr(u5t,Nt().venn)}var iU,nU,aU,sU,oU,lU,JEt,e5t,pC,t5t,r5t,i5t,n5t,R_,a5t,s5t,o5t,l5t,c5t,u5t,d5t,vLe,xLe=z(()=>{"use strict";Xt();br();Ci();Bn();iU=[],nU=[],aU=[],sU=new Set,lU=!1,JEt=o((e,t,r)=>{let i=R_(e).sort(),n=r??10/Math.pow(e.length,2);oU=i,i.length===1&&sU.add(i[0]),iU.push({sets:i,size:n,label:t?pC(t):void 0})},"addSubsetData"),e5t=o(()=>iU,"getSubsetData"),pC=o(e=>{let t=e.trim();return t.length>=2&&t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t},"normalizeText"),t5t=o(e=>e&&pC(e),"normalizeStyleValue"),r5t=o((e,t,r)=>{let i=pC(t);nU.push({sets:R_(e).sort(),id:i,label:r?pC(r):void 0})},"addTextData"),i5t=o((e,t)=>{let r=R_(e).sort(),i={};for(let[n,a]of t)i[n]=t5t(a)??a;aU.push({targets:r,styles:i})},"addStyleData"),n5t=o(()=>aU,"getStyleData"),R_=o(e=>e.map(t=>pC(t)),"normalizeIdentifierList"),a5t=o(e=>{let r=R_(e).filter(i=>!sU.has(i));if(r.length>0)throw new Error(`unknown set identifier: ${r.join(", ")}`)},"validateUnionIdentifiers"),s5t=o(()=>nU,"getTextData"),o5t=o(()=>oU,"getCurrentSets"),l5t=o(()=>lU,"getIndentMode"),c5t=o(e=>{lU=e},"setIndentMode"),u5t=or.venn;o(h5t,"getConfig");d5t=o(()=>{gr(),iU.length=0,nU.length=0,aU.length=0,sU.clear(),oU=void 0,lU=!1},"customClear"),vLe={getConfig:h5t,clear:d5t,setAccTitle:Cr,getAccTitle:kr,setDiagramTitle:Ar,getDiagramTitle:Er,getAccDescription:Sr,setAccDescription:wr,addSubsetData:JEt,getSubsetData:e5t,addTextData:r5t,addStyleData:i5t,validateUnionIdentifiers:a5t,getTextData:s5t,getStyleData:n5t,getCurrentSets:o5t,getIndentMode:l5t,setIndentMode:c5t}});var f5t,bLe,TLe=z(()=>{"use strict";f5t=o(e=>` + .venn-title { + font-size: 32px; + fill: ${e.vennTitleTextColor}; + font-family: ${e.fontFamily}; + } + + .venn-circle text { + font-size: 48px; + font-family: ${e.fontFamily}; + } + + .venn-intersection text { + font-size: 48px; + fill: ${e.vennSetTextColor}; + font-family: ${e.fontFamily}; + } + + .venn-text-node { + font-family: ${e.fontFamily}; + color: ${e.vennSetTextColor}; + } +`,"getStyles"),bLe=f5t});function L_(e,t){let r=m5t(e),i=r.filter(l=>p5t(l,e)),n=0,a=0,s=[];if(i.length>1){let l=SLe(i);for(let h=0;hd.angle-h.angle);let u=i[i.length-1];for(let h=0;hg.radius*2&&(T=g.radius*2),(p==null||p.width>T)&&(p={circle:g,width:T,p1:d,p2:u,large:T>g.radius,sweep:!0})}p!=null&&(s.push(p),n+=hU(p.circle.radius,p.width),u=d)}}else{let l=e[0];for(let h=1;hMath.abs(l.radius-e[h].radius)){u=!0;break}u?n=a=0:(n=l.radius*l.radius*Math.PI,s.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-1e-10,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return a/=2,t&&(t.area=n+a,t.arcArea=n,t.polygonArea=a,t.arcs=s,t.innerPoints=i,t.intersectionPoints=r),n+a}function p5t(e,t){return t.every(r=>Xs(e,r)=e+t)return 0;if(r<=Math.abs(e-t))return Math.PI*Math.min(e,t)*Math.min(e,t);let i=e-(r*r-t*t+e*e)/(2*r),n=t-(r*r-e*e+t*t)/(2*r);return hU(e,i)+hU(t,n)}function wLe(e,t){let r=Xs(e,t),i=e.radius,n=t.radius;if(r>=i+n||r<=Math.abs(i-n))return[];let a=(i*i-n*n+r*r)/(2*r),s=Math.sqrt(i*i-a*a),l=e.x+a*(t.x-e.x)/r,u=e.y+a*(t.y-e.y)/r,h=-(t.y-e.y)*(s/r),d=-(t.x-e.x)*(s/r);return[{x:l+h,y:u-d},{x:l-h,y:u+d}]}function SLe(e){let t={x:0,y:0};for(let r of e)t.x+=r.x,t.y+=r.y;return t.x/=e.length,t.y/=e.length,t}function g5t(e,t,r,i){i=i||{};let n=i.maxIterations||100,a=i.tolerance||1e-10,s=e(t),l=e(r),u=r-t;if(s*l>0)throw"Initial bisect points must have opposite signs";if(s===0)return t;if(l===0)return r;for(let h=0;h=0&&(t=d),Math.abs(u)dU(t))}function Fy(e,t){let r=0;for(let i=0;iC.fx-k.fx,"sortOrder"),x=t.slice(),b=t.slice(),T=t.slice(),w=t.slice();for(let C=0;C{let N=A.slice();return N.fx=A.fx,N.id=A.id,N});E.sort((A,N)=>A.id-N.id),r.history.push({x:g[0].slice(),fx:g[0].fx,simplex:E})}p=0;for(let E=0;E=g[m-1].fx){let E=!1;if(b.fx>k.fx?(Rh(T,1+d,x,-d,k),T.fx=e(T),T.fx=1)break;for(let A=1;Al+a*n*u||h>=v)y=n;else{if(Math.abs(f)<=-s*u)return n;f*(y-g)>=0&&(y=g),g=n,v=h}return 0}o(m,"zoom");for(let g=0;g<10;++g){if(Rh(i.x,1,r.x,n,t),h=i.fx=e(i.x,i.fxprime),f=Fy(i.fxprime,t),h>l+a*n*u||g&&h>=d)return m(p,n,d);if(Math.abs(f)<=-s*u)return n;if(f>=0)return m(n,p,h);d=h,p=n,n*=2}return n}function v5t(e,t,r){let i={x:t.slice(),fx:0,fxprime:t.slice()},n={x:t.slice(),fx:0,fxprime:t.slice()},a=t.slice(),s,l,u=1,h;r=r||{},h=r.maxIterations||t.length*20,i.fx=e(i.x,i.fxprime),s=i.fxprime.slice(),pU(s,i.fxprime,-1);for(let d=0;d{let f={};for(let p=0;pyU(e,t,i)-r,0,e+t)}function x5t(e,t={}){let r=t.distinct,i=e.map(l=>Object.assign({},l));function n(l){return l.join(";")}if(o(n,"toKey"),r){let l=new Map;for(let u of i)for(let h=0;hl===u?0:la.sets.length===2).forEach(a=>{let s=r[a.sets[0]],l=r[a.sets[1]],u=Math.sqrt(t[s].size/Math.PI),h=Math.sqrt(t[l].size/Math.PI),d=mU(u,h,a.size);i[s][l]=i[l][s]=d;let f=0;a.size+1e-10>=Math.min(t[s].size,t[l].size)?f=1:a.size<=1e-10&&(f=-1),n[s][l]=n[l][s]=f}),{distances:i,constraints:n}}function T5t(e,t,r,i){for(let a=0;a0&&g<=f||p<0&&g>=f||(n+=2*y*y,t[2*a]+=4*y*(s-h),t[2*a+1]+=4*y*(l-d),t[2*u]+=4*y*(h-s),t[2*u+1]+=4*y*(d-l))}}return n}function C5t(e,t={}){let r=w5t(e,t),i=t.lossFunction||$y;if(e.length>=8){let n=k5t(e,t),a=i(n,e),s=i(r,e);a+1e-8p.map(m=>m/l));let u=o((p,m)=>T5t(p,m,a,s),"obj"),h=null;for(let p=0;pf.sets.length===2);for(let f of e){let p=f.weight!=null?f.weight:1,m=f.sets[0],g=f.sets[1];f.size+_Le>=Math.min(i[m].size,i[g].size)&&(p=0),n[m].push({set:g,size:f.size,weight:p}),n[g].push({set:m,size:f.size,weight:p})}let a=[];Object.keys(n).forEach(f=>{let p=0;for(let m=0;me[s]));let a=i.weight!=null?i.weight:1;r+=a*(n-i.size)*(n-i.size)}return r}function DLe(e,t){let r=0;for(let i of t){if(i.sets.length===1)continue;let n;if(i.sets.length===2){let l=e[i.sets[0]],u=e[i.sets[1]];n=yU(l.radius,u.radius,Xs(l,u))}else n=L_(i.sets.map(l=>e[l]));let a=i.weight!=null?i.weight:1,s=Math.log((n+1)/(i.size+1));r+=a*s*s}return r}function S5t(e,t,r){if(r==null?e.sort((n,a)=>a.radius-n.radius):e.sort(r),e.length>0){let n=e[0].x,a=e[0].y;for(let s of e)s.x-=n,s.y-=a}if(e.length===2&&Xs(e[0],e[1])1){let n=Math.atan2(e[1].x,e[1].y)-t,a=Math.cos(n),s=Math.sin(n);for(let l of e){let u=l.x,h=l.y;l.x=a*u-s*h,l.y=s*u+a*h}}if(e.length>2){let n=Math.atan2(e[2].x,e[2].y)-t;for(;n<0;)n+=2*Math.PI;for(;n>2*Math.PI;)n-=2*Math.PI;if(n>Math.PI){let a=e[1].y/(1e-10+e[1].x);for(let s of e){var i=(s.x+a*s.y)/(1+a*a);s.x=2*i-s.x,s.y=2*i*a-s.y}}}}function E5t(e){e.forEach(n=>{n.parent=n});function t(n){return n.parent!==n&&(n.parent=t(n.parent)),n.parent}o(t,"find");function r(n,a){let s=t(n),l=t(a);s.parent=l}o(r,"union");for(let n=0;n{delete n.parent}),Array.from(i.values())}function gU(e){let t=o(r=>{let i=e.reduce((a,s)=>Math.max(a,s[r]+s.radius),Number.NEGATIVE_INFINITY),n=e.reduce((a,s)=>Math.min(a,s[r]-s.radius),Number.POSITIVE_INFINITY);return{max:i,min:n}},"minMax");return{xRange:t("x"),yRange:t("y")}}function RLe(e,t,r){t==null&&(t=Math.PI/2);let i=NLe(e).map(h=>Object.assign({},h)),n=E5t(i);for(let h of n){S5t(h,t,r);let d=gU(h);h.size=(d.xRange.max-d.xRange.min)*(d.yRange.max-d.yRange.min),h.bounds=d}n.sort((h,d)=>d.size-h.size),i=n[0];let a=i.bounds,s=(a.xRange.max-a.xRange.min)/50;function l(h,d,f){if(!h)return;let p=h.bounds,m,g;if(d)m=a.xRange.max-p.xRange.min+s;else{m=a.xRange.max-p.xRange.max;let y=(p.xRange.max-p.xRange.min)/2-(a.xRange.max-a.xRange.min)/2;y<0&&(m+=y)}if(f)g=a.yRange.max-p.yRange.min+s;else{g=a.yRange.max-p.yRange.max;let y=(p.yRange.max-p.yRange.min)/2-(a.yRange.max-a.yRange.min)/2;y<0&&(g+=y)}for(let y of h)y.x+=m,y.y+=g,i.push(y)}o(l,"addCluster");let u=1;for(;u({radius:d*m.radius,x:i+f+(m.x-s.min)*d,y:i+p+(m.y-l.min)*d,setid:m.setid})))}function MLe(e){let t={};for(let r of e)t[r.setid]=r;return t}function NLe(e){return Object.keys(e).map(r=>Object.assign(e[r],{setid:r}))}function ILe(e={}){let t=!1,r=600,i=350,n=15,a=1e3,s=Math.PI/2,l=!0,u=null,h=!0,d=!0,f=null,p=null,m=!1,g=null,y=e&&e.symmetricalTextCentre?e.symmetricalTextCentre:!1,v={},x=e&&e.colourScheme?e.colourScheme:e&&e.colorScheme?e.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],b=0,T=o(function(E){if(E in v)return v[E];var A=v[E]=x[b];return b+=1,b>=x.length&&(b=0),A},"colours"),w=ALe,C=$y;function k(E){let A=E.datum(),N=new Set;A.forEach(Y=>{Y.size==0&&Y.sets.length==1&&N.add(Y.sets[0])}),A=A.filter(Y=>!Y.sets.some(ae=>N.has(ae)));let P={},I={};if(A.length>0){let Y=w(A,{lossFunction:C,distinct:m});l&&(Y=RLe(Y,s,p)),P=LLe(Y,r,i,n,u),I=PLe(P,A,y)}let D={};A.forEach(Y=>{Y.label&&(D[Y.sets]=Y.label)});function _(Y){if(Y.sets in D)return D[Y.sets];if(Y.sets.length==1)return""+Y.sets[0]}o(_,"label"),E.selectAll("svg").data([P]).enter().append("svg");let R=E.select("svg");t?R.attr("viewBox",`0 0 ${r} ${i}`):R.attr("width",r).attr("height",i);let M={},L=!1;R.selectAll(".venn-area path").each(function(Y){let ae=this.getAttribute("d");Y.sets.length==1&&ae&&!m&&(L=!0,M[Y.sets[0]]=D5t(ae))});function B(Y){return ae=>{let J=Y.sets.map(te=>{let re=M[te],ee=P[te];return re||(re={x:r/2,y:i/2,radius:1}),ee||(ee={x:r/2,y:i/2,radius:1}),{x:re.x*(1-ae)+ee.x*ae,y:re.y*(1-ae)+ee.y*ae,radius:re.radius*(1-ae)+ee.radius*ae}});return kLe(J,g)}}o(B,"pathTween");let O=R.selectAll(".venn-area").data(A,Y=>Y.sets),$=O.enter().append("g").attr("class",Y=>`venn-area venn-${Y.sets.length==1?"circle":"intersection"}${Y.colour||Y.color?" venn-coloured":""}`).attr("data-venn-sets",Y=>Y.sets.join("_")),G=$.append("path"),F=$.append("text").attr("class","label").text(Y=>_(Y)).attr("text-anchor","middle").attr("dy",".35em").attr("x",r/2).attr("y",i/2);d&&(G.style("fill-opacity","0").filter(Y=>Y.sets.length==1).style("fill",Y=>Y.colour?Y.colour:Y.color?Y.color:T(Y.sets)).style("fill-opacity",".25"),F.style("fill",Y=>Y.colour||Y.color?"#FFF":e.textFill?e.textFill:Y.sets.length==1?T(Y.sets):"#444"));function V(Y){return typeof Y.transition=="function"?Y.transition("venn").duration(a):Y}o(V,"asTransition");let H=E;L&&typeof H.transition=="function"?(H=V(E),H.selectAll("path").attrTween("d",B)):H.selectAll("path").attr("d",Y=>kLe(Y.sets.map(ae=>P[ae])),g);let j=H.selectAll("text").filter(Y=>Y.sets in I).text(Y=>_(Y)).attr("x",Y=>Math.floor(I[Y.sets].x)).attr("y",Y=>Math.floor(I[Y.sets].y));h&&(L?"on"in j?j.on("end",cU(P,_)):j.each("end",cU(P,_)):j.each(cU(P,_)));let U=V(O.exit()).remove();typeof O.transition=="function"&&U.selectAll("path").attrTween("d",B);let Q=U.selectAll("text").attr("x",r/2).attr("y",i/2);return f!==null&&(F.style("font-size","0px"),j.style("font-size",f),Q.style("font-size","0px")),{circles:P,textCentres:I,nodes:O,enter:$,update:H,exit:U}}return o(k,"chart"),k.wrap=function(E){return arguments.length?(h=E,k):h},k.useViewBox=function(){return t=!0,k},k.width=function(E){return arguments.length?(r=E,k):r},k.height=function(E){return arguments.length?(i=E,k):i},k.padding=function(E){return arguments.length?(n=E,k):n},k.distinct=function(E){return arguments.length?(m=E,k):m},k.colours=function(E){return arguments.length?(T=E,k):T},k.colors=function(E){return arguments.length?(T=E,k):T},k.fontSize=function(E){return arguments.length?(f=E,k):f},k.round=function(E){return arguments.length?(g=E,k):g},k.duration=function(E){return arguments.length?(a=E,k):a},k.layoutFunction=function(E){return arguments.length?(w=E,k):w},k.normalize=function(E){return arguments.length?(l=E,k):l},k.scaleToFit=function(E){return arguments.length?(u=E,k):u},k.styled=function(E){return arguments.length?(d=E,k):d},k.orientation=function(E){return arguments.length?(s=E,k):s},k.orientationOrder=function(E){return arguments.length?(p=E,k):p},k.lossFunction=function(E){return arguments.length?(C=E==="default"?$y:E==="logRatio"?DLe:E,k):C},k}function cU(e,t){return function(r){let i=this,n=e[r.sets[0]].radius||50,a=t(r)||"",s=a.split(/\s+/).reverse(),u=(a.length+s.length)/3,h=s.pop(),d=[h],f=0,p=1.1;i.textContent=null;let m=[];function g(T){let w=i.ownerDocument.createElementNS(i.namespaceURI,"tspan");return w.textContent=T,m.push(w),i.append(w),w}o(g,"append");let y=g(h);for(;h=s.pop(),!!h;){d.push(h);let T=d.join(" ");y.textContent=T,T.length>u&&y.getComputedTextLength()>n&&(d.pop(),y.textContent=d.join(" "),d=[h],y=g(h),f++)}let v=.35-f*p/2,x=i.getAttribute("x"),b=i.getAttribute("y");m.forEach((T,w)=>{T.setAttribute("x",x),T.setAttribute("y",b),T.setAttribute("dy",`${v+w*p}em`)})}}function uU(e,t,r){let i=t[0].radius-Xs(t[0],e);for(let n=1;n=a&&(n=i[d],a=f)}let s=ELe(d=>-1*uU({x:d[0],y:d[1]},e,t),[n.x,n.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:r?0:s[0],y:s[1]},u=!0;for(let d of e)if(Xs(l,d)>d.radius){u=!1;break}for(let d of t)if(Xs(l,d)d.p1))}function A5t(e){let t={},r=Object.keys(e);for(let i of r)t[i]=[];for(let i=0;i0&&console.log("WARNING: area "+s+" not represented on screen")}return i}function _5t(e,t,r){let i=[];return i.push(` +M`,e,t),i.push(` +m`,-r,0),i.push(` +a`,r,r,0,1,0,r*2,0),i.push(` +a`,r,r,0,1,0,-r*2,0),i.join(" ")}function D5t(e){let t=e.split(" ");return{x:Number.parseFloat(t[1]),y:Number.parseFloat(t[2]),radius:-Number.parseFloat(t[4])}}function BLe(e){if(e.length===0)return[];let t={};return L_(e,t),t.arcs}function FLe(e,t){if(e.length===0)return"M 0 0";let r=Math.pow(10,t||0),i=t!=null?a=>Math.round(a*r)/r:a=>a;if(e.length==1){let a=e[0].circle;return _5t(i(a.x),i(a.y),i(a.radius))}let n=[` +M`,i(e[0].p2.x),i(e[0].p2.y)];for(let a of e){let s=i(a.circle.radius);n.push(` +A`,s,s,0,a.large?1:0,a.sweep?1:0,i(a.p1.x),i(a.p1.y))}return n.join(" ")}function kLe(e,t){return FLe(BLe(e),t)}function $Le(e,t={}){let{lossFunction:r,layoutFunction:i=ALe,normalize:n=!0,orientation:a=Math.PI/2,orientationOrder:s,width:l=600,height:u=350,padding:h=15,scaleToFit:d=!1,symmetricalTextCentre:f=!1,distinct:p,round:m=2}=t,g=i(e,{lossFunction:r==="default"||!r?$y:r==="logRatio"?DLe:r,distinct:p});n&&(g=RLe(g,a,s));let y=LLe(g,l,u,h,d),v=PLe(y,e,f),x=new Map(Object.keys(y).map(w=>[w,{set:w,x:y[w].x,y:y[w].y,radius:y[w].radius}])),b=e.map(w=>{let C=w.sets.map(A=>x.get(A)),k=BLe(C),E=FLe(k,m);return{circles:C,arcs:k,path:E,area:w,has:new Set(w.sets)}});function T(w){let C="";for(let k of b)k.has.size>w.length&&w.every(E=>k.has.has(E))&&(C+=" "+k.path);return C}return o(T,"genDistinctPath"),b.map(({circles:w,arcs:C,path:k,area:E})=>({data:E,text:v[E.sets],circles:w,arcs:C,path:k,distinctPath:k+T(E.sets)}))}var _Le,zLe=z(()=>{"use strict";o(L_,"intersectionArea");o(p5t,"containedInCircles");o(m5t,"getIntersectionPoints");o(hU,"circleArea");o(Xs,"distance");o(yU,"circleOverlap");o(wLe,"circleCircleIntersection");o(SLe,"getCenter");o(g5t,"bisect");o(dU,"zeros");o(CLe,"zerosM");o(Fy,"dot");o(fU,"norm2");o(pU,"scale");o(Rh,"weightedSum");o(ELe,"nelderMead");o(y5t,"wolfeLineSearch");o(v5t,"conjugateGradient");o(ALe,"venn");_Le=1e-10;o(mU,"distanceFromIntersectArea");o(x5t,"addMissingAreas");o(b5t,"getDistanceMatrices");o(T5t,"constrainedMDSGradient");o(C5t,"bestInitialLayout");o(k5t,"constrainedMDSLayout");o(w5t,"greedyLayout");o($y,"lossFunction");o(DLe,"logRatioLossFunction");o(S5t,"orientateCircles");o(E5t,"disjointCluster");o(gU,"getBoundingBox");o(RLe,"normalizeSolution");o(LLe,"scaleSolution");o(MLe,"toObjectNotation");o(NLe,"fromObjectNotation");o(ILe,"VennDiagram");o(cU,"wrapText");o(uU,"circleMargin");o(OLe,"computeTextCentre");o(A5t,"getOverlappingCircles");o(PLe,"computeTextCentres");o(_5t,"circlePath");o(D5t,"circleFromPath");o(BLe,"intersectionAreaArcs");o(FLe,"arcsToPath");o(kLe,"intersectionAreaPath");o($Le,"layout")});function L5t(e){let t=new Map;for(let r of e){let i=r.targets.join("|"),n=t.get(i);n?Object.assign(n,r.styles):t.set(i,{...r.styles})}return t}function Sm(e){return e.join("|")}function N5t(e,t,r,i,n,a){let s=e?.useDebugLayout??!1,u=r.select("svg").append("g").attr("class","venn-text-nodes"),h=new Map;for(let d of i){let f=Sm(d.sets),p=h.get(f);p?p.push(d):h.set(f,[d])}for(let[d,f]of h.entries()){let p=t.get(d);if(!p?.text)continue;let m=p.text.x,g=p.text.y,y=Math.min(...p.circles.map(R=>R.radius)),v=Math.min(...p.circles.map(R=>R.radius-Math.hypot(m-R.x,g-R.y))),x=Number.isFinite(v)?Math.max(0,v):0;x===0&&Number.isFinite(y)&&(x=y*.6);let b=u.append("g").attr("class","venn-text-area").attr("font-size",`${40*n}px`);s&&b.append("circle").attr("class","venn-text-debug-circle").attr("cx",m).attr("cy",g).attr("r",x).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*n).attr("stroke-dasharray",`${6*n} ${4*n}`);let T=Math.max(80*n,x*2*.95),w=Math.max(60*n,x*2*.95),E=(p.data.label&&p.data.label.length>0?Math.min(32*n,x*.25):0)+(f.length<=2?30*n:0),A=m-T/2,N=g-w/2+E,P=Math.max(1,Math.ceil(Math.sqrt(f.length))),I=Math.max(1,Math.ceil(f.length/P)),D=T/P,_=w/I;for(let[R,M]of f.entries()){let L=R%P,B=Math.floor(R/P),O=A+D*(L+.5),$=N+_*(B+.5);s&&b.append("rect").attr("class","venn-text-debug-cell").attr("x",A+D*L).attr("y",N+_*B).attr("width",D).attr("height",_).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*n).attr("stroke-dasharray",`${4*n} ${3*n}`);let G=D*.9,F=_*.9,V=b.append("foreignObject").attr("class","venn-text-node-fo").attr("width",G).attr("height",F).attr("x",O-G/2).attr("y",$-F/2).attr("overflow","visible"),H=a.get(M.id)?.color,j=V.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(M.label??M.id);H&&j.style("color",H)}}}var M5t,GLe,VLe=z(()=>{"use strict";Rr();Cn();br();ps();zLe();Di();jt();o(L5t,"buildStyleByKey");M5t=o((e,t,r,i)=>{let n=i.db,a=n.getConfig?.(),{themeVariables:s,look:l,handDrawnSeed:u}=Nt(),h=l==="handDrawn",d=[s.venn1,s.venn2,s.venn3,s.venn4,s.venn5,s.venn6,s.venn7,s.venn8].filter(Boolean),f=n.getDiagramTitle?.(),p=n.getSubsetData(),m=n.getTextData(),g=L5t(n.getStyleData()),y=a?.width??800,v=a?.height??450,b=y/1600,T=f?48*b:0,w=s.primaryTextColor??s.textColor,C=bi(t);C.attr("viewBox",`0 0 ${y} ${v}`),f&&C.append("text").text(f).attr("class","venn-title").attr("font-size",`${32*b}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*b).style("fill",s.vennTitleTextColor||s.titleColor);let k=Je(document.createElement("div")),E=ILe().width(y).height(v-T);k.datum(p).call(E);let A=h?ut.svg(k.select("svg").node()):void 0,N=$Le(p,{width:y,height:v-T,padding:a?.padding??15}),P=new Map;for(let R of N){let M=Sm([...R.data.sets].sort());P.set(M,R)}m.length>0&&N5t(a,P,k,m,b,g);let I=ri(s.background||"#f4f4f4");k.selectAll(".venn-circle").each(function(R,M){let L=Je(this),O=Sm([...R.sets].sort()),$=g.get(O),G=$?.fill||d[M%d.length]||s.primaryColor;L.classed(`venn-set-${M%8}`,!0);let F=$?.["fill-opacity"]??.1,V=$?.stroke||G,H=$?.["stroke-width"]||`${5*b}`;if(h&&A){let U=P.get(O);if(U&&U.circles.length>0){let Q=U.circles[0],Y=A.circle(Q.x,Q.y,Q.radius*2,{roughness:.7,seed:u,fill:RC(G,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+M*60,stroke:V,strokeWidth:parseFloat(String(H))});L.select("path").remove(),L.node()?.insertBefore(Y,L.select("text").node())}}else L.select("path").style("fill",G).style("fill-opacity",F).style("stroke",V).style("stroke-width",H).style("stroke-opacity",.95);let j=$?.color||(I?je(G,30):Xe(G,30));L.select("text").style("font-size",`${48*b}px`).style("fill",j)}),h&&A?k.selectAll(".venn-intersection").each(function(R){let M=Je(this),B=Sm([...R.sets].sort()),O=g.get(B),$=O?.fill;if($){let G=M.select("path"),F=G.attr("d");if(F){let V=A.path(F,{roughness:.7,seed:u,fill:RC($,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),H=G.node();H?.parentNode?.insertBefore(V,H),G.remove()}}else M.select("path").style("fill-opacity",0);M.select("text").style("font-size",`${48*b}px`).style("fill",O?.color??s.vennSetTextColor??w)}):(k.selectAll(".venn-intersection text").style("font-size",`${48*b}px`).style("fill",R=>{let L=Sm([...R.sets].sort());return g.get(L)?.color??s.vennSetTextColor??w}),k.selectAll(".venn-intersection path").style("fill-opacity",R=>{let L=Sm([...R.sets].sort());return g.get(L)?.fill?1:0}).style("fill",R=>{let L=Sm([...R.sets].sort());return g.get(L)?.fill??"transparent"}));let D=C.append("g").attr("transform",`translate(0, ${T})`),_=k.select("svg").node();if(_&&"childNodes"in _)for(let R of[..._.childNodes])D.node()?.appendChild(R);Br(C,v,y,a?.useMaxWidth??!0)},"draw");o(Sm,"stableSetsKey");o(N5t,"renderTextNodes");GLe={draw:M5t}});var WLe={};xr(WLe,{diagram:()=>I5t});var I5t,qLe=z(()=>{"use strict";yLe();xLe();TLe();VLe();I5t={parser:gLe,db:vLe,renderer:GLe,styles:bLe}});var zy,vU=z(()=>{"use strict";Bn();br();Xt();Ht();Ci();zy=class{constructor(){this.nodes=[];this.levels=new Map;this.outerNodes=[];this.classes=new Map;this.setAccTitle=Cr;this.getAccTitle=kr;this.setDiagramTitle=Ar;this.getDiagramTitle=Er;this.getAccDescription=Sr;this.setAccDescription=wr}static{o(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let t=or,r=Nt();return Gr({...t.treemap,...r.treemap??{}})}addNode(t,r){this.nodes.push(t),this.levels.set(t,r),r===0&&(this.outerNodes.push(t),this.root??=t)}getRoot(){return{name:"",children:this.outerNodes}}addClass(t,r){let i=this.classes.get(t)??{id:t,styles:[],textStyles:[]},n=r.replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");n&&n.forEach(a=>{Xx(a)&&(i?.textStyles?i.textStyles.push(a):i.textStyles=[a]),i?.styles?i.styles.push(a):i.styles=[a]}),this.classes.set(t,i)}getClasses(){return this.classes}getStylesForClass(t){return this.classes.get(t)?.styles??[]}clear(){gr(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}}});function YLe(e){if(!e.length)return[];let t=[],r=[];return e.forEach(i=>{let n={name:i.name,children:i.type==="Leaf"?void 0:[]};for(n.classSelector=i?.classSelector,i?.cssCompiledStyles&&(n.cssCompiledStyles=i.cssCompiledStyles),i.type==="Leaf"&&i.value!==void 0&&(n.value=i.value);r.length>0&&r[r.length-1].level>=i.level;)r.pop();if(r.length===0)t.push(n);else{let a=r[r.length-1].node;a.children?a.children.push(n):a.children=[n]}i.type!=="Leaf"&&r.push({node:n,level:i.level})}),t}var jLe=z(()=>{"use strict";o(YLe,"buildHierarchy")});var F5t,$5t,xU,XLe=z(()=>{"use strict";sl();St();au();jLe();vU();F5t=o((e,t)=>{ca(e,t);let r=[];for(let a of e.TreemapRows??[])a.$type==="ClassDefStatement"&&t.addClass(a.className??"",a.styleText??"");for(let a of e.TreemapRows??[]){let s=a.item;if(!s)continue;let l=a.indent?parseInt(a.indent):0,u=$5t(s),h=s.classSelector?t.getStylesForClass(s.classSelector):[],d=h.length>0?h:void 0,f={level:l,name:u,type:s.$type,value:s.value,classSelector:s.classSelector,cssCompiledStyles:d};r.push(f)}let i=YLe(r),n=o((a,s)=>{for(let l of a)t.addNode(l,s),l.children&&l.children.length>0&&n(l.children,s+1)},"addNodesRecursively");n(i,0)},"populate"),$5t=o(e=>e.name?String(e.name):"","getItemName"),xU={parser:{yy:void 0},parse:o(async e=>{try{let r=await bn("treemap",e);Z.debug("Treemap AST:",r);let i=xU.parser?.yy;if(!(i instanceof zy))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");F5t(r,i)}catch(t){throw Z.error("Error parsing treemap:",t),t}},"parse")}});var z5t,Gy,mC,G5t,V5t,KLe,ZLe=z(()=>{"use strict";ps();rf();Di();Rr();Ht();br();St();z5t=10,Gy=10,mC=25,G5t=o((e,t,r,i)=>{let n=i.db,a=n.getConfig(),s=a.padding??z5t,l=n.getDiagramTitle(),u=n.getRoot(),{themeVariables:h}=Nt();if(!u)return;let d=l?30:0,f=bi(t),p=a.nodeWidth?a.nodeWidth*Gy:960,m=a.nodeHeight?a.nodeHeight*Gy:500,g=p,y=m+d;f.attr("viewBox",`0 0 ${g} ${y}`),Br(f,y,g,a.useMaxWidth);let v;try{let R=a.valueFormat||",";if(R==="$0,0")v=o(M=>"$"+mc(",")(M),"valueFormat");else if(R.startsWith("$")&&R.includes(",")){let M=/\.\d+/.exec(R),L=M?M[0]:"";v=o(B=>"$"+mc(","+L)(B),"valueFormat")}else if(R.startsWith("$")){let M=R.substring(1);v=o(L=>"$"+mc(M||"")(L),"valueFormat")}else v=mc(R)}catch(R){Z.error("Error creating format function:",R),v=mc(",")}let x=ro().range(["transparent",h.cScale0,h.cScale1,h.cScale2,h.cScale3,h.cScale4,h.cScale5,h.cScale6,h.cScale7,h.cScale8,h.cScale9,h.cScale10,h.cScale11]),b=ro().range(["transparent",h.cScalePeer0,h.cScalePeer1,h.cScalePeer2,h.cScalePeer3,h.cScalePeer4,h.cScalePeer5,h.cScalePeer6,h.cScalePeer7,h.cScalePeer8,h.cScalePeer9,h.cScalePeer10,h.cScalePeer11]),T=ro().range([h.cScaleLabel0,h.cScaleLabel1,h.cScaleLabel2,h.cScaleLabel3,h.cScaleLabel4,h.cScaleLabel5,h.cScaleLabel6,h.cScaleLabel7,h.cScaleLabel8,h.cScaleLabel9,h.cScaleLabel10,h.cScaleLabel11]);l&&f.append("text").attr("x",g/2).attr("y",d/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(l);let w=f.append("g").attr("transform",`translate(0, ${d})`).attr("class","treemapContainer"),C=tg(u).sum(R=>R.value??0).sort((R,M)=>(M.value??0)-(R.value??0)),E=lw().size([p,m]).paddingTop(R=>R.children&&R.children.length>0?mC+Gy:0).paddingInner(s).paddingLeft(R=>R.children&&R.children.length>0?Gy:0).paddingRight(R=>R.children&&R.children.length>0?Gy:0).paddingBottom(R=>R.children&&R.children.length>0?Gy:0).round(!0)(C),A=E.descendants().filter(R=>R.children&&R.children.length>0),N=w.selectAll(".treemapSection").data(A).enter().append("g").attr("class","treemapSection").attr("transform",R=>`translate(${R.x0},${R.y0})`);N.append("rect").attr("width",R=>R.x1-R.x0).attr("height",mC).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",R=>R.depth===0?"display: none;":""),N.append("clipPath").attr("id",(R,M)=>`clip-section-${t}-${M}`).append("rect").attr("width",R=>Math.max(0,R.x1-R.x0-12)).attr("height",mC),N.append("rect").attr("width",R=>R.x1-R.x0).attr("height",R=>R.y1-R.y0).attr("class",(R,M)=>`treemapSection section${M}`).attr("fill",R=>x(R.data.name)).attr("fill-opacity",.6).attr("stroke",R=>b(R.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",R=>{if(R.depth===0)return"display: none;";let M=ct({cssCompiledStyles:R.data.cssCompiledStyles});return M.nodeStyles+";"+M.borderStyles.join(";")}),N.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",mC/2).attr("dominant-baseline","middle").text(R=>R.depth===0?"":R.data.name).attr("font-weight","bold").attr("style",R=>{if(R.depth===0)return"display: none;";let M="dominant-baseline: middle; font-size: 12px; fill:"+T(R.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",L=ct({cssCompiledStyles:R.data.cssCompiledStyles});return M+L.labelStyles.replace("color:","fill:")}).each(function(R){if(R.depth===0)return;let M=Je(this),L=R.data.name;M.text(L);let B=R.x1-R.x0,O=6,$;a.showValues!==!1&&R.value?$=B-10-30-10-O:$=B-O-6;let F=Math.max(15,$),V=M.node();if(V.getComputedTextLength()>F){let U=L;for(;U.length>0;){if(U=L.substring(0,U.length-1),U.length===0){M.text("..."),V.getComputedTextLength()>F&&M.text("");break}if(M.text(U+"..."),V.getComputedTextLength()<=F)break}}}),a.showValues!==!1&&N.append("text").attr("class","treemapSectionValue").attr("x",R=>R.x1-R.x0-10).attr("y",mC/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(R=>R.value?v(R.value):"").attr("font-style","italic").attr("style",R=>{if(R.depth===0)return"display: none;";let M="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+T(R.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",L=ct({cssCompiledStyles:R.data.cssCompiledStyles});return M+L.labelStyles.replace("color:","fill:")});let P=E.leaves(),I=w.selectAll(".treemapLeafGroup").data(P).enter().append("g").attr("class",(R,M)=>`treemapNode treemapLeafGroup leaf${M}${R.data.classSelector?` ${R.data.classSelector}`:""}x`).attr("transform",R=>`translate(${R.x0},${R.y0})`);I.append("rect").attr("width",R=>R.x1-R.x0).attr("height",R=>R.y1-R.y0).attr("class","treemapLeaf").attr("fill",R=>R.parent?x(R.parent.data.name):x(R.data.name)).attr("style",R=>ct({cssCompiledStyles:R.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",R=>R.parent?x(R.parent.data.name):x(R.data.name)).attr("stroke-width",3),I.append("clipPath").attr("id",(R,M)=>`clip-${t}-${M}`).append("rect").attr("width",R=>Math.max(0,R.x1-R.x0-4)).attr("height",R=>Math.max(0,R.y1-R.y0-4)),I.append("text").attr("class","treemapLabel").attr("x",R=>(R.x1-R.x0)/2).attr("y",R=>(R.y1-R.y0)/2).attr("style",R=>{let M="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+T(R.data.name)+";",L=ct({cssCompiledStyles:R.data.cssCompiledStyles});return M+L.labelStyles.replace("color:","fill:")}).attr("clip-path",(R,M)=>`url(#clip-${t}-${M})`).text(R=>R.data.name).each(function(R){let M=Je(this),L=R.x1-R.x0,B=R.y1-R.y0,O=M.node(),$=4,G=L-2*$,F=B-2*$;if(G<10||F<10){M.style("display","none");return}let V=parseInt(M.style("font-size"),10),H=8,j=28,U=.6,Q=6,Y=2;for(;O.getComputedTextLength()>G&&V>H;)V--,M.style("font-size",`${V}px`);let ae=Math.max(Q,Math.min(j,Math.round(V*U))),J=V+Y+ae;for(;J>F&&V>H&&(V--,ae=Math.max(Q,Math.min(j,Math.round(V*U))),!(aeF;M.style("font-size",`${V}px`),(O.getComputedTextLength()>G||V(M.x1-M.x0)/2).attr("y",function(M){return(M.y1-M.y0)/2}).attr("style",M=>{let L="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+T(M.data.name)+";",B=ct({cssCompiledStyles:M.data.cssCompiledStyles});return L+B.labelStyles.replace("color:","fill:")}).attr("clip-path",(M,L)=>`url(#clip-${t}-${L})`).text(M=>M.value?v(M.value):"").each(function(M){let L=Je(this),B=this.parentNode;if(!B){L.style("display","none");return}let O=Je(B).select(".treemapLabel");if(O.empty()||O.style("display")==="none"){L.style("display","none");return}let $=parseFloat(O.style("font-size")),G=28,F=.6,V=6,H=2,j=Math.max(V,Math.min(G,Math.round($*F)));L.style("font-size",`${j}px`);let Q=(M.y1-M.y0)/2+$/2+H;L.attr("y",Q);let Y=M.x1-M.x0,te=M.y1-M.y0-4,re=Y-8;L.node().getComputedTextLength()>re||Q+j>te||j{"use strict";Xt();$f();br();W5t={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},q5t=o(({treemap:e}={})=>{let t=Ao(),r=Nt(),i=Gr(t,r.themeVariables),n=Gr(W5t,e),a=n.titleColor??i.titleColor,s=n.labelColor??i.textColor,l=n.valueColor??i.textColor;return` + .treemapNode.section { + stroke: ${n.sectionStrokeColor}; + stroke-width: ${n.sectionStrokeWidth}; + fill: ${n.sectionFillColor}; + } + .treemapNode.leaf { + stroke: ${n.leafStrokeColor}; + stroke-width: ${n.leafStrokeWidth}; + fill: ${n.leafFillColor}; + } + .treemapLabel { + fill: ${s}; + font-size: ${n.labelFontSize}; + } + .treemapValue { + fill: ${l}; + font-size: ${n.valueFontSize}; + } + .treemapTitle { + fill: ${a}; + font-size: ${n.titleFontSize}; + } + `},"getStyles"),QLe=q5t});var eMe={};xr(eMe,{diagram:()=>U5t});var U5t,tMe=z(()=>{"use strict";vU();XLe();ZLe();JLe();U5t={parser:xU,get db(){return new zy},renderer:KLe,styles:QLe}});var M_,Em,nMe,j5t,X5t,bU,aMe=z(()=>{"use strict";sl();St();au();M_=o((e,t)=>{let r=e<=1?e*100:e;if(r<0||r>100)throw new Error(`${t} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return r},"toPercent"),Em=o((e,t,r)=>({x:M_(t,`${r} evolution`),y:M_(e,`${r} visibility`)}),"toCoordinates"),nMe=o(e=>{if(e){if(e==="+<>")return"bidirectional";if(e==="+<")return"backward";if(e==="+>")return"forward"}},"getFlowFromPort"),j5t=o(e=>{if(!e?.startsWith("+"))return{};let r=/^\+'([^']*)'/.exec(e)?.[1];return e.includes("<>")?{flow:"bidirectional",label:r}:e.includes("<")?{flow:"backward",label:r}:e.includes(">")?{flow:"forward",label:r}:{label:r}},"extractFlowFromArrow"),X5t=o((e,t)=>{if(ca(e,t),e.size&&t.setSize(e.size.width,e.size.height),e.evolution){let r=e.evolution.stages.map(n=>n.secondName?`${n.name.trim()} / ${n.secondName.trim()}`:n.name.trim()),i=e.evolution.stages.filter(n=>n.boundary!==void 0).map(n=>n.boundary);t.updateAxes({stages:r,stageBoundaries:i})}if(e.anchors.forEach(r=>{let i=Em(r.visibility,r.evolution,`Anchor "${r.name}"`);t.addNode(r.name,r.name,i.x,i.y,"anchor")}),e.components.forEach(r=>{let i=Em(r.visibility,r.evolution,`Component "${r.name}"`),n=r.label?(r.label.negX?-1:1)*r.label.offsetX:void 0,a=r.label?(r.label.negY?-1:1)*r.label.offsetY:void 0,s=r.decorator?.strategy;t.addNode(r.name,r.name,i.x,i.y,"component",n,a,r.inertia,s)}),e.notes.forEach(r=>{let i=Em(r.visibility,r.evolution,`Note "${r.text}"`);t.addNote(r.text,i.x,i.y)}),e.pipelines.forEach(r=>{let i=t.getNode(r.parent);if(!i||typeof i.y!="number")throw new Error(`Pipeline "${r.parent}" must reference an existing component with coordinates.`);let n=i.y;t.startPipeline(r.parent),r.components.forEach(a=>{let s=`${r.parent}_${a.name}`,l=a.label?(a.label.negX?-1:1)*a.label.offsetX:void 0,u=a.label?(a.label.negY?-1:1)*a.label.offsetY:void 0,h=M_(a.evolution,`Pipeline component "${a.name}" evolution`);t.addNode(s,a.name,h,n,"pipeline-component",l,u),t.addPipelineComponent(r.parent,s)})}),e.links.forEach(r=>{let i=!!r.arrow&&(r.arrow.includes("-.->")||r.arrow.includes(".-.")),n=nMe(r.fromPort)??nMe(r.toPort),{flow:a,label:s}=j5t(r.arrow);!n&&a&&(n=a);let l=r.linkLabel,u=s??l;t.addLink(t.resolveNodeId(r.from),t.resolveNodeId(r.to),i,u,n)}),e.evolves.forEach(r=>{let i=t.getNode(r.component);if(i?.y!==void 0){let n=M_(r.target,`Evolve target for "${r.component}"`);t.addTrend(r.component,n,i.y)}}),e.annotations.length>0){let r=e.annotations[0],i=Em(r.x,r.y,"Annotations box");t.setAnnotationsBox(i.x,i.y)}e.annotation.forEach(r=>{let i=Em(r.x,r.y,`Annotation ${r.number}`);t.addAnnotation(r.number,[{x:i.x,y:i.y}],r.text)}),e.accelerators.forEach(r=>{let i=Em(r.x,r.y,`Accelerator "${r.name}"`);t.addAccelerator(r.name,i.x,i.y)}),e.deaccelerators.forEach(r=>{let i=Em(r.x,r.y,`Deaccelerator "${r.name}"`);t.addDeaccelerator(r.name,i.x,i.y)})},"populateDb"),bU={parser:{yy:void 0},parse:o(async e=>{let t=await bn("wardley",e);Z.debug(t);let r=bU.parser?.yy;if(!r||typeof r.addNode!="function")throw new Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");X5t(t,r)},"parse")}});var N_,sMe=z(()=>{"use strict";N_=class{constructor(){this.nodes=new Map;this.links=[];this.trends=new Map;this.pipelines=new Map;this.annotations=[];this.notes=[];this.accelerators=[];this.deaccelerators=[];this.axes={}}static{o(this,"WardleyBuilder")}addNode(t){let r=this.nodes.get(t.id)??{id:t.id,label:t.label},i={...r,...t,className:t.className??r.className,labelOffsetX:t.labelOffsetX??r.labelOffsetX,labelOffsetY:t.labelOffsetY??r.labelOffsetY};this.nodes.set(t.id,i)}addLink(t){this.links.push(t)}addTrend(t){this.trends.set(t.nodeId,t)}startPipeline(t){this.pipelines.set(t,{nodeId:t,componentIds:[]});let r=this.nodes.get(t);r&&(r.isPipelineParent=!0)}addPipelineComponent(t,r){let i=this.pipelines.get(t);i&&i.componentIds.push(r);let n=this.nodes.get(r);n&&(n.inPipeline=!0)}addAnnotation(t){this.annotations.push(t)}addNote(t){this.notes.push(t)}addAccelerator(t){this.accelerators.push(t)}addDeaccelerator(t){this.deaccelerators.push(t)}setAnnotationsBox(t,r){this.annotationsBox={x:t,y:r}}setAxes(t){this.axes={...this.axes,...t}}setSize(t,r){this.size={width:t,height:r}}getNode(t){return this.nodes.get(t)}resolveNodeId(t){if(this.nodes.has(t))return t;for(let[r,i]of this.nodes)if(i.label===t)return r;return t}build(){let t=[];for(let r of this.nodes.values()){if(typeof r.x!="number"||typeof r.y!="number")throw new Error(`Node "${r.label}" is missing coordinates`);t.push(r)}return{nodes:t,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}}});function K5t(){return ge()["wardley-beta"]}function Z5t(e,t,r,i,n,a,s,l,u){Ga.addNode({id:e,label:t,x:r,y:i,className:n,labelOffsetX:a,labelOffsetY:s,inertia:l,sourceStrategy:u})}function Q5t(e,t,r=!1,i,n){Ga.addLink({source:e,target:t,dashed:r,label:i,flow:n})}function J5t(e,t,r){Ga.addTrend({nodeId:e,targetX:t,targetY:r})}function eAt(e,t,r){Ga.addAnnotation({number:e,coordinates:t,text:r})}function tAt(e,t,r){Ga.addNote({text:e,x:t,y:r})}function rAt(e,t,r){Ga.addAccelerator({name:e,x:t,y:r})}function iAt(e,t,r){Ga.addDeaccelerator({name:e,x:t,y:r})}function nAt(e,t){Ga.setAnnotationsBox(e,t)}function aAt(e,t){Ga.setSize(e,t)}function sAt(e){Ga.startPipeline(e)}function oAt(e,t){Ga.addPipelineComponent(e,t)}function lAt(e){Ga.setAxes(e)}function cAt(e){return Ga.getNode(e)}function uAt(e){return Ga.resolveNodeId(e)}function hAt(){return Ga.build()}function dAt(){Ga.clear(),gr()}var Ga,oMe,lMe=z(()=>{"use strict";Ut();Ci();sMe();Ga=new N_;o(K5t,"getConfig");o(Z5t,"addNode");o(Q5t,"addLink");o(J5t,"addTrend");o(eAt,"addAnnotation");o(tAt,"addNote");o(rAt,"addAccelerator");o(iAt,"addDeaccelerator");o(nAt,"setAnnotationsBox");o(aAt,"setSize");o(sAt,"startPipeline");o(oAt,"addPipelineComponent");o(lAt,"updateAxes");o(cAt,"getNode");o(uAt,"resolveNodeId");o(hAt,"getWardleyData");o(dAt,"clear");oMe={getConfig:K5t,addNode:Z5t,addLink:Q5t,addTrend:J5t,addAnnotation:eAt,addNote:tAt,addAccelerator:rAt,addDeaccelerator:iAt,setAnnotationsBox:nAt,setSize:aAt,startPipeline:sAt,addPipelineComponent:oAt,updateAxes:lAt,getNode:cAt,resolveNodeId:uAt,getWardleyData:hAt,clear:dAt,setAccTitle:Cr,getAccTitle:kr,setDiagramTitle:Ar,getDiagramTitle:Er,getAccDescription:Sr,setAccDescription:wr}});var fAt,pAt,mAt,gAt,cMe,uMe=z(()=>{"use strict";Ut();St();ps();Di();fAt=["Genesis","Custom Built","Product","Commodity"],pAt=o(()=>{let{themeVariables:e}=ge();return{backgroundColor:e.wardley?.backgroundColor??e.background??"#fff",axisColor:e.wardley?.axisColor??"#000",axisTextColor:e.wardley?.axisTextColor??e.primaryTextColor??"#222",gridColor:e.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:e.wardley?.componentFill??"#fff",componentStroke:e.wardley?.componentStroke??"#000",componentLabelColor:e.wardley?.componentLabelColor??e.primaryTextColor??"#222",linkStroke:e.wardley?.linkStroke??"#000",evolutionStroke:e.wardley?.evolutionStroke??"#dc3545",annotationStroke:e.wardley?.annotationStroke??"#000",annotationTextColor:e.wardley?.annotationTextColor??e.primaryTextColor??"#222",annotationFill:e.wardley?.annotationFill??e.background??"#fff"}},"getTheme"),mAt=o(()=>{let e=ge()["wardley-beta"];return{width:e?.width??900,height:e?.height??600,padding:e?.padding??48,nodeRadius:e?.nodeRadius??6,nodeLabelOffset:e?.nodeLabelOffset??8,axisFontSize:e?.axisFontSize??12,labelFontSize:e?.labelFontSize??10,showGrid:e?.showGrid??!1,useMaxWidth:e?.useMaxWidth??!0}},"getConfigValues"),gAt=o((e,t,r,i)=>{Z.debug(`Rendering Wardley map +`+e);let n=mAt(),a=pAt(),s=n.nodeRadius*1.6,l=i.db,u=l.getWardleyData(),h=l.getDiagramTitle(),d=u.size?.width??n.width,f=u.size?.height??n.height,p=bi(t);p.selectAll("*").remove(),Br(p,f,d,n.useMaxWidth),p.attr("viewBox",`0 0 ${d} ${f}`);let m=p.append("g").attr("class","wardley-map"),g=p.append("defs");g.append("marker").attr("id",`arrow-${t}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",a.evolutionStroke).attr("stroke","none"),g.append("marker").attr("id",`link-arrow-end-${t}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",a.linkStroke).attr("stroke","none"),g.append("marker").attr("id",`link-arrow-start-${t}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",a.linkStroke).attr("stroke","none"),m.append("rect").attr("class","wardley-background").attr("width",d).attr("height",f).attr("fill",a.backgroundColor);let y=d-n.padding*2,v=f-n.padding*2;h&&m.append("text").attr("class","wardley-title").attr("x",d/2).attr("y",n.padding/2).attr("fill",a.axisTextColor).attr("font-size",n.axisFontSize*1.05).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);let x=o(O=>n.padding+O/100*y,"projectX"),b=o(O=>f-n.padding-O/100*v,"projectY"),T=m.append("g").attr("class","wardley-axes");T.append("line").attr("x1",n.padding).attr("x2",d-n.padding).attr("y1",f-n.padding).attr("y2",f-n.padding).attr("stroke",a.axisColor).attr("stroke-width",1),T.append("line").attr("x1",n.padding).attr("x2",n.padding).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",a.axisColor).attr("stroke-width",1);let w=u.axes.xLabel??"Evolution",C=u.axes.yLabel??"Visibility";T.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",n.padding+y/2).attr("y",f-n.padding/4).attr("fill",a.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(w),T.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",n.padding/3).attr("y",n.padding+v/2).attr("fill",a.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${n.padding/3} ${n.padding+v/2})`).text(C);let k=u.axes.stages&&u.axes.stages.length>0?u.axes.stages:fAt;if(k.length>0){let O=m.append("g").attr("class","wardley-stages"),$=u.axes.stageBoundaries,G=[];if($&&$.length===k.length){let F=0;$.forEach(V=>{G.push({start:F,end:V}),F=V})}else{let F=1/k.length;k.forEach((V,H)=>{G.push({start:H*F,end:(H+1)*F})})}k.forEach((F,V)=>{let H=G[V],j=n.padding+H.start*y,U=n.padding+H.end*y,Q=(j+U)/2;V>0&&O.append("line").attr("x1",j).attr("x2",j).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),O.append("text").attr("class","wardley-stage-label").attr("x",Q).attr("y",f-n.padding/1.5).attr("fill",a.axisTextColor).attr("font-size",n.axisFontSize-2).attr("text-anchor","middle").text(F)})}if(n.showGrid){let O=m.append("g").attr("class","wardley-grid");for(let $=1;$<4;$++){let G=$/4,F=n.padding+y*G;O.append("line").attr("x1",F).attr("x2",F).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",a.gridColor).attr("stroke-dasharray","2 6"),O.append("line").attr("x1",n.padding).attr("x2",d-n.padding).attr("y1",f-n.padding-v*G).attr("y2",f-n.padding-v*G).attr("stroke",a.gridColor).attr("stroke-dasharray","2 6")}}let E=new Map;if(u.nodes.forEach(O=>{E.set(O.id,{x:x(O.x),y:b(O.y),node:O})}),u.pipelines.length>0){let O=m.append("g").attr("class","wardley-pipelines"),$=m.append("g").attr("class","wardley-pipeline-links");u.pipelines.forEach(G=>{if(G.componentIds.length===0)return;let F=G.componentIds.map(U=>({id:U,pos:E.get(U),node:u.nodes.find(Q=>Q.id===U)})).filter(U=>U.pos&&U.node).sort((U,Q)=>U.node.x-Q.node.x);for(let U=0;U{let Q=E.get(U);Q&&(V=Math.min(V,Q.x),H=Math.max(H,Q.x),j=Q.y)}),V!==1/0&&H!==-1/0){let Q=n.nodeRadius*4,Y=j-Q/2,ae=E.get(G.nodeId);if(ae){let J=(V+H)/2;ae.x=J,ae.y=Y-s/6}O.append("rect").attr("class","wardley-pipeline-box").attr("x",V-15).attr("y",Y).attr("width",H-V+30).attr("height",Q).attr("fill","none").attr("stroke",a.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}let A=m.append("g").attr("class","wardley-links"),N=new Map;u.pipelines.forEach(O=>{N.set(O.nodeId,new Set(O.componentIds))});let P=u.links.filter(O=>!(!E.has(O.source)||!E.has(O.target)||N.get(O.target)?.has(O.source)));A.selectAll("line").data(P).enter().append("line").attr("class",O=>`wardley-link${O.dashed?" wardley-link--dashed":""}`).attr("x1",O=>{let $=E.get(O.source),G=E.get(O.target),V=u.nodes.find(Q=>Q.id===O.source).isPipelineParent?s/Math.sqrt(2):n.nodeRadius,H=G.x-$.x,j=G.y-$.y,U=Math.sqrt(H*H+j*j);return $.x+H/U*V}).attr("y1",O=>{let $=E.get(O.source),G=E.get(O.target),V=u.nodes.find(Q=>Q.id===O.source).isPipelineParent?s/Math.sqrt(2):n.nodeRadius,H=G.x-$.x,j=G.y-$.y,U=Math.sqrt(H*H+j*j);return $.y+j/U*V}).attr("x2",O=>{let $=E.get(O.source),G=E.get(O.target),V=u.nodes.find(Q=>Q.id===O.target).isPipelineParent?s/Math.sqrt(2):n.nodeRadius,H=$.x-G.x,j=$.y-G.y,U=Math.sqrt(H*H+j*j);return G.x+H/U*V}).attr("y2",O=>{let $=E.get(O.source),G=E.get(O.target),V=u.nodes.find(Q=>Q.id===O.target).isPipelineParent?s/Math.sqrt(2):n.nodeRadius,H=$.x-G.x,j=$.y-G.y,U=Math.sqrt(H*H+j*j);return G.y+j/U*V}).attr("stroke",a.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",O=>O.dashed?"6 6":null).attr("marker-end",O=>O.flow==="forward"||O.flow==="bidirectional"?`url(#link-arrow-end-${t})`:null).attr("marker-start",O=>O.flow==="backward"||O.flow==="bidirectional"?`url(#link-arrow-start-${t})`:null),A.selectAll("text").data(P.filter(O=>O.label)).enter().append("text").attr("class","wardley-link-label").attr("x",O=>{let $=E.get(O.source),G=E.get(O.target),F=($.x+G.x)/2,V=G.y-$.y,H=G.x-$.x,j=Math.sqrt(H*H+V*V),U=8,Q=V/j;return F+Q*U}).attr("y",O=>{let $=E.get(O.source),G=E.get(O.target),F=($.y+G.y)/2,V=G.x-$.x,H=G.y-$.y,j=Math.sqrt(V*V+H*H),U=8,Q=-V/j;return F+Q*U}).attr("fill",a.axisTextColor).attr("font-size",n.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",O=>{let $=E.get(O.source),G=E.get(O.target),F=($.x+G.x)/2,V=($.y+G.y)/2,H=G.x-$.x,j=G.y-$.y,U=Math.sqrt(H*H+j*j),Q=8,Y=j/U,ae=-H/U,J=F+Y*Q,te=V+ae*Q,re=Math.atan2(j,H)*180/Math.PI;return(re>90||re<-90)&&(re+=180),`rotate(${re} ${J} ${te})`}).text(O=>O.label);let I=m.append("g").attr("class","wardley-trends"),D=u.trends.map(O=>{let $=E.get(O.nodeId);if(!$)return null;let G=x(O.targetX),F=b(O.targetY),V=G-$.x,H=F-$.y,j=Math.sqrt(V*V+H*H),U=n.nodeRadius+2,Q=j>U?G-V/j*U:G,Y=j>U?F-H/j*U:F;return{origin:$,targetX:G,targetY:F,adjustedX2:Q,adjustedY2:Y}}).filter(O=>O!==null);I.selectAll("line").data(D).enter().append("line").attr("class","wardley-trend").attr("x1",O=>O.origin.x).attr("y1",O=>O.origin.y).attr("x2",O=>O.adjustedX2).attr("y2",O=>O.adjustedY2).attr("stroke",a.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${t})`);let R=m.append("g").attr("class","wardley-nodes").selectAll("g").data(u.nodes).enter().append("g").attr("class",O=>["wardley-node",O.className?`wardley-node--${O.className}`:""].filter(Boolean).join(" "));R.filter(O=>O.sourceStrategy==="outsource").append("circle").attr("class","wardley-outsource-overlay").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius*2).attr("fill","#666").attr("stroke",a.componentStroke).attr("stroke-width",1),R.filter(O=>O.sourceStrategy==="buy").append("circle").attr("class","wardley-buy-overlay").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius*2).attr("fill","#ccc").attr("stroke",a.componentStroke).attr("stroke-width",1),R.filter(O=>O.sourceStrategy==="build").append("circle").attr("class","wardley-build-overlay").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius*2).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);let M=R.filter(O=>O.sourceStrategy==="market");M.append("circle").attr("class","wardley-market-overlay").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius*2).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",1),R.filter(O=>!O.isPipelineParent&&O.sourceStrategy!=="market"&&O.className!=="anchor").append("circle").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y).attr("r",n.nodeRadius).attr("fill",a.componentFill).attr("stroke",a.componentStroke).attr("stroke-width",1);let L=n.nodeRadius*.7,B=n.nodeRadius*1.2;if(M.append("line").attr("class","wardley-market-line").attr("x1",O=>E.get(O.id).x).attr("y1",O=>E.get(O.id).y-B).attr("x2",O=>E.get(O.id).x-B*Math.cos(Math.PI/6)).attr("y2",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("stroke",a.componentStroke).attr("stroke-width",1),M.append("line").attr("class","wardley-market-line").attr("x1",O=>E.get(O.id).x-B*Math.cos(Math.PI/6)).attr("y1",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("x2",O=>E.get(O.id).x+B*Math.cos(Math.PI/6)).attr("y2",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("stroke",a.componentStroke).attr("stroke-width",1),M.append("line").attr("class","wardley-market-line").attr("x1",O=>E.get(O.id).x+B*Math.cos(Math.PI/6)).attr("y1",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("x2",O=>E.get(O.id).x).attr("y2",O=>E.get(O.id).y-B).attr("stroke",a.componentStroke).attr("stroke-width",1),M.append("circle").attr("class","wardley-market-dot").attr("cx",O=>E.get(O.id).x).attr("cy",O=>E.get(O.id).y-B).attr("r",L).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",2),M.append("circle").attr("class","wardley-market-dot").attr("cx",O=>E.get(O.id).x-B*Math.cos(Math.PI/6)).attr("cy",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("r",L).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",2),M.append("circle").attr("class","wardley-market-dot").attr("cx",O=>E.get(O.id).x+B*Math.cos(Math.PI/6)).attr("cy",O=>E.get(O.id).y+B*Math.sin(Math.PI/6)).attr("r",L).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",2),R.filter(O=>O.isPipelineParent===!0).append("rect").attr("x",O=>E.get(O.id).x-s/2).attr("y",O=>E.get(O.id).y-s/2).attr("width",s).attr("height",s).attr("fill",a.componentFill).attr("stroke",a.componentStroke).attr("stroke-width",1),R.filter(O=>O.inertia===!0).append("line").attr("class","wardley-inertia").attr("x1",O=>{let $=E.get(O.id),G=O.isPipelineParent?s/2+15:n.nodeRadius+15;return O.sourceStrategy&&(G+=n.nodeRadius+10),$.x+G}).attr("y1",O=>{let $=E.get(O.id),G=O.isPipelineParent?s:n.nodeRadius*2;return $.y-G/2}).attr("x2",O=>{let $=E.get(O.id),G=O.isPipelineParent?s/2+15:n.nodeRadius+15;return O.sourceStrategy&&(G+=n.nodeRadius+10),$.x+G}).attr("y2",O=>{let $=E.get(O.id),G=O.isPipelineParent?s:n.nodeRadius*2;return $.y+G/2}).attr("stroke",a.componentStroke).attr("stroke-width",6),R.append("text").attr("x",O=>{let $=E.get(O.id);if(O.className==="anchor")return O.labelOffsetX!==void 0?$.x+O.labelOffsetX:$.x;let G=n.nodeLabelOffset;O.sourceStrategy&&O.labelOffsetX===void 0&&(G+=10);let F=O.labelOffsetX??G;return $.x+F}).attr("y",O=>{let $=E.get(O.id);if(O.className==="anchor")return O.labelOffsetY!==void 0?$.y+O.labelOffsetY:$.y-3;let G=-n.nodeLabelOffset;O.sourceStrategy&&O.labelOffsetY===void 0&&(G-=10);let F=O.labelOffsetY??G;return $.y+F}).attr("class","wardley-node-label").attr("fill",O=>O.className==="evolved"?a.evolutionStroke:O.className==="anchor"?"#000":a.componentLabelColor).attr("font-size",n.labelFontSize).attr("font-weight",O=>O.className==="anchor"?"bold":"normal").attr("text-anchor",O=>O.className==="anchor"?"middle":"start").attr("dominant-baseline",O=>O.className==="anchor"?"middle":"auto").text(O=>O.label),u.annotations.length>0){let O=m.append("g").attr("class","wardley-annotations");if(u.annotations.forEach($=>{let G=$.coordinates.map(F=>({x:x(F.x),y:b(F.y)}));if(G.length>1)for(let F=0;F{let V=O.append("g").attr("class","wardley-annotation");V.append("circle").attr("cx",F.x).attr("cy",F.y).attr("r",10).attr("fill","white").attr("stroke",a.axisColor).attr("stroke-width",1.5),V.append("text").attr("x",F.x).attr("y",F.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",a.axisTextColor).attr("font-weight","bold").text($.number)})}),u.annotationsBox){let $=x(u.annotationsBox.x),G=b(u.annotationsBox.y),F=10,V=16,H=11,j=O.append("g").attr("class","wardley-annotations-box"),U=[...u.annotations].filter(Y=>Y.text).sort((Y,ae)=>Y.number-ae.number),Q=[];if(U.forEach((Y,ae)=>{let J=j.append("text").attr("x",$+F).attr("y",G+F+(ae+1)*V).attr("font-size",H).attr("fill",a.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${Y.number}. ${Y.text}`);Q.push(J)}),Q.length>0){let Y=0,ae=0;Q.forEach(De=>{let Ie=De.node(),Ee=Ie.getComputedTextLength();Y=Math.max(Y,Ee);let we=Ie.getBBox();ae=Math.max(ae,we.height)});let J=Y+F*2+105,te=U.length*V+F*2+ae/2,re=n.padding,ee=d-n.padding-J,Te=n.padding,ue=f-n.padding-te;$=Math.max(re,Math.min($,ee)),G=Math.max(Te,Math.min(G,ue)),Q.forEach((De,Ie)=>{De.attr("x",$+F).attr("y",G+F+(Ie+1)*V)}),j.insert("rect","text").attr("x",$).attr("y",G).attr("width",J).attr("height",te).attr("fill","white").attr("stroke",a.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(u.notes.length>0){let O=m.append("g").attr("class","wardley-notes");u.notes.forEach($=>{let G=x($.x),F=b($.y);O.append("text").attr("x",G).attr("y",F).attr("text-anchor","start").attr("font-size",11).attr("fill",a.axisTextColor).attr("font-weight","bold").text($.text)})}if(u.accelerators.length>0){let O=m.append("g").attr("class","wardley-accelerators");u.accelerators.forEach($=>{let G=x($.x),F=b($.y),V=60,H=30,j=20,U=` + M ${G} ${F-H/2} + L ${G+V-j} ${F-H/2} + L ${G+V-j} ${F-H/2-8} + L ${G+V} ${F} + L ${G+V-j} ${F+H/2+8} + L ${G+V-j} ${F+H/2} + L ${G} ${F+H/2} + Z + `;O.append("path").attr("d",U).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",1),O.append("text").attr("x",G+V/2).attr("y",F+H/2+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",a.axisTextColor).attr("font-weight","bold").text($.name)})}if(u.deaccelerators.length>0){let O=m.append("g").attr("class","wardley-deaccelerators");u.deaccelerators.forEach($=>{let G=x($.x),F=b($.y),V=60,H=30,j=20,U=` + M ${G+V} ${F-H/2} + L ${G+j} ${F-H/2} + L ${G+j} ${F-H/2-8} + L ${G} ${F} + L ${G+j} ${F+H/2+8} + L ${G+j} ${F+H/2} + L ${G+V} ${F+H/2} + Z + `;O.append("path").attr("d",U).attr("fill","white").attr("stroke",a.componentStroke).attr("stroke-width",1),O.append("text").attr("x",G+V/2).attr("y",F+H/2+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",a.axisTextColor).attr("font-weight","bold").text($.name)})}},"draw"),cMe={draw:gAt}});var hMe,dMe=z(()=>{"use strict";Xt();$f();br();hMe=o(({wardley:e}={})=>{let t=Ao(),r=Nt(),i=Gr(t,r.themeVariables),n=Gr(i.wardley,e);return` + .wardley-background { + fill: ${n.backgroundColor}; + } + .wardley-axes line, .wardley-axes path { + stroke: ${n.axisColor}; + } + .wardley-axis-label { + fill: ${n.axisTextColor}; + } + .wardley-stage-label { + fill: ${n.axisTextColor}; + } + .wardley-grid line { + stroke: ${n.gridColor}; + } + .wardley-node circle { + fill: ${n.componentFill}; + stroke: ${n.componentStroke}; + } + .wardley-node-label { + fill: ${n.componentLabelColor}; + } + .wardley-link { + stroke: ${n.linkStroke}; + } + .wardley-link--dashed { + stroke-dasharray: 4 4; + } + .wardley-link-label { + fill: ${n.axisTextColor}; + } + .wardley-trend line { + stroke: ${n.evolutionStroke}; + } + .wardley-annotation-line { + stroke: ${n.annotationStroke}; + } + .wardley-annotation circle { + fill: ${n.annotationFill}; + stroke: ${n.annotationStroke}; + } + .wardley-annotation text { + fill: ${n.annotationTextColor}; + } + .wardley-annotations-box rect { + fill: ${n.annotationFill}; + stroke: ${n.annotationStroke}; + } + .wardley-annotations-box text { + fill: ${n.annotationTextColor}; + } + .wardley-pipeline-box { + stroke: ${n.componentStroke}; + } + .wardley-notes text { + fill: ${n.axisTextColor}; + } + `},"styles")});var fMe={};xr(fMe,{diagram:()=>yAt});var yAt,pMe=z(()=>{"use strict";aMe();lMe();uMe();dMe();yAt={parser:bU,db:oMe,renderer:cMe,styles:hMe}});var s6t={};xr(s6t,{default:()=>a6t});uc();RD();Xf();var Yze=o(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),jze=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(cte(),lte));return{id:"c4",diagram:e}},"loader"),Xze={id:"c4",detector:Yze,loader:jze},ute=Xze;var t1e="flowchart",Jot=o((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),elt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dE(),hE));return{id:t1e,diagram:e}},"loader"),tlt={id:t1e,detector:Jot,loader:elt},r1e=tlt;var i1e="flowchart-v2",rlt=o((e,t)=>t?.flowchart?.defaultRenderer==="dagre-d3"?!1:(t?.flowchart?.defaultRenderer==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(e)),"detector"),ilt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dE(),hE));return{id:i1e,diagram:e}},"loader"),nlt={id:i1e,detector:rlt,loader:ilt},n1e=nlt;var clt=o(e=>/^\s*erDiagram/.test(e),"detector"),ult=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(f1e(),d1e));return{id:"er",diagram:e}},"loader"),hlt={id:"er",detector:clt,loader:ult},p1e=hlt;var s5e="gitGraph",vbt=o(e=>/^\s*gitGraph/.test(e),"detector"),xbt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(a5e(),n5e));return{id:s5e,diagram:e}},"loader"),bbt={id:s5e,detector:vbt,loader:xbt},o5e=bbt;var $5e="gantt",l2t=o(e=>/^\s*gantt/.test(e),"detector"),c2t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(F5e(),B5e));return{id:$5e,diagram:e}},"loader"),u2t={id:$5e,detector:l2t,loader:c2t},z5e=u2t;var X5e="info",m2t=o(e=>/^\s*info/.test(e),"detector"),g2t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(j5e(),Y5e));return{id:X5e,diagram:e}},"loader"),K5e={id:X5e,detector:m2t,loader:g2t};var D2t=o(e=>/^\s*pie/.test(e),"detector"),R2t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(aAe(),nAe));return{id:"pie",diagram:e}},"loader"),sAe={id:"pie",detector:D2t,loader:R2t};var xAe="quadrantChart",j2t=o(e=>/^\s*quadrantChart/.test(e),"detector"),X2t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(vAe(),yAe));return{id:xAe,diagram:e}},"loader"),K2t={id:xAe,detector:j2t,loader:X2t},bAe=K2t;var YAe="xychart",fTt=o(e=>/^\s*xychart(-beta)?/.test(e),"detector"),pTt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(HAe(),UAe));return{id:YAe,diagram:e}},"loader"),mTt={id:YAe,detector:fTt,loader:pTt},jAe=mTt;var i6e="requirement",bTt=o(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),TTt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(r6e(),t6e));return{id:i6e,diagram:e}},"loader"),CTt={id:i6e,detector:bTt,loader:TTt},n6e=CTt;var C6e="sequence",vCt=o(e=>/^\s*sequenceDiagram/.test(e),"detector"),xCt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(T6e(),b6e));return{id:C6e,diagram:e}},"loader"),bCt={id:C6e,detector:vCt,loader:xCt},k6e=bCt;var D6e="class",ECt=o((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),ACt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(_6e(),A6e));return{id:D6e,diagram:e}},"loader"),_Ct={id:D6e,detector:ECt,loader:ACt},R6e=_Ct;var N6e="classDiagram",RCt=o((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),LCt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(M6e(),L6e));return{id:N6e,diagram:e}},"loader"),MCt={id:N6e,detector:RCt,loader:LCt},I6e=MCt;var d_e="state",nkt=o((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),akt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(h_e(),u_e));return{id:d_e,diagram:e}},"loader"),skt={id:d_e,detector:nkt,loader:akt},f_e=skt;var g_e="stateDiagram",lkt=o((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),ckt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(m_e(),p_e));return{id:g_e,diagram:e}},"loader"),ukt={id:g_e,detector:lkt,loader:ckt},y_e=ukt;var M_e="journey",Lkt=o(e=>/^\s*journey/.test(e),"detector"),Mkt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(L_e(),R_e));return{id:M_e,diagram:e}},"loader"),Nkt={id:M_e,detector:Lkt,loader:Mkt},N_e=Nkt;St();ps();Di();var Ikt=o((e,t,r)=>{Z.debug(`rendering svg for syntax error +`);let i=bi(t),n=i.append("g");i.attr("viewBox","0 0 2412 512"),Br(i,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),VW={draw:Ikt},I_e=VW;var Okt={db:{},renderer:VW,parser:{parse:o(()=>{},"parse")}},O_e=Okt;var P_e="flowchart-elk",Pkt=o((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),Bkt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dE(),hE));return{id:P_e,diagram:e}},"loader"),Fkt={id:P_e,detector:Pkt,loader:Bkt},B_e=Fkt;var v7e="timeline",cwt=o(e=>/^\s*timeline/.test(e),"detector"),uwt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(y7e(),g7e));return{id:v7e,diagram:e}},"loader"),hwt={id:v7e,detector:cwt,loader:uwt},x7e=hwt;var P7e="mindmap",bwt=o(e=>/^\s*mindmap/.test(e),"detector"),Twt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(O7e(),I7e));return{id:P7e,diagram:e}},"loader"),Cwt={id:P7e,detector:bwt,loader:Twt},B7e=Cwt;var X7e="kanban",Fwt=o(e=>/^\s*kanban/.test(e),"detector"),$wt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(j7e(),Y7e));return{id:X7e,diagram:e}},"loader"),zwt={id:X7e,detector:Fwt,loader:$wt},K7e=zwt;var LDe="sankey",u4t=o(e=>/^\s*sankey(-beta)?/.test(e),"detector"),h4t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(RDe(),DDe));return{id:LDe,diagram:e}},"loader"),d4t={id:LDe,detector:u4t,loader:h4t},MDe=d4t;var zDe="packet",T4t=o(e=>/^\s*packet(-beta)?/.test(e),"detector"),C4t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>($De(),FDe));return{id:zDe,diagram:e}},"loader"),GDe={id:zDe,detector:T4t,loader:C4t};var QDe="radar",q4t=o(e=>/^\s*radar-beta/.test(e),"detector"),U4t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(ZDe(),KDe));return{id:QDe,diagram:e}},"loader"),JDe={id:QDe,detector:q4t,loader:U4t};var rRe="block",m3t=o(e=>/^\s*block(-beta)?/.test(e),"detector"),g3t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(tRe(),eRe));return{id:rRe,diagram:e}},"loader"),y3t={id:rRe,detector:m3t,loader:g3t},iRe=y3t;var fRe="treeView",N3t=o(e=>/^\s*treeView-beta/.test(e),"detector"),I3t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dRe(),hRe));return{id:fRe,diagram:e}},"loader"),O3t={id:fRe,detector:N3t,loader:I3t},pRe=O3t;var PRe="architecture",K3t=o(e=>/^\s*architecture/.test(e),"detector"),Z3t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(ORe(),IRe));return{id:PRe,diagram:e}},"loader"),Q3t={id:PRe,detector:K3t,loader:Z3t},BRe=Q3t;var KRe="eventmodeling",PEt=o(e=>/^\s*eventmodeling/.test(e),"detector"),BEt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(XRe(),jRe));return{id:KRe,diagram:e}},"loader"),FEt={id:KRe,detector:PEt,loader:BEt},ZRe=FEt;var pLe="ishikawa",ZEt=o(e=>/^\s*ishikawa(-beta)?\b/i.test(e),"detector"),QEt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(fLe(),dLe));return{id:pLe,diagram:e}},"loader"),mLe={id:pLe,detector:ZEt,loader:QEt};var ULe="venn",O5t=o(e=>/^\s*venn-beta/.test(e),"detector"),P5t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(qLe(),WLe));return{id:ULe,diagram:e}},"loader"),B5t={id:ULe,detector:O5t,loader:P5t},HLe=B5t;Xf();Ut();var rMe="treemap",H5t=o(e=>/^\s*treemap/.test(e),"detector"),Y5t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(tMe(),eMe));return{id:rMe,diagram:e}},"loader"),iMe={id:rMe,detector:H5t,loader:Y5t};var mMe="wardley-beta",vAt=o(e=>/^\s*wardley-beta/i.test(e),"detector"),xAt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(pMe(),fMe));return{id:mMe,diagram:e}},"loader"),bAt={id:mMe,detector:vAt,loader:xAt},gMe=bAt;var yMe=!1,Vy=o(()=>{yMe||(yMe=!0,Kf("error",O_e,e=>e.toLowerCase().trim()==="error"),Kf("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:o(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),Cv(B_e,B7e,BRe),Cv(ute,K7e,I6e,R6e,p1e,z5e,K5e,sAe,n6e,k6e,n1e,r1e,x7e,o5e,y_e,f_e,N_e,bAe,MDe,GDe,jAe,iRe,ZRe,pRe,JDe,mLe,iMe,HLe,gMe))},"addDiagrams");St();Xf();Ut();var vMe=o(async()=>{Z.debug("Loading registered diagrams");let t=(await Promise.allSettled(Object.entries(ku).map(async([r,{detector:i,loader:n}])=>{if(n)try{_v(r)}catch{try{let{diagram:a,id:s}=await n();Kf(s,a,i)}catch(a){throw Z.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete ku[r],a}}}))).filter(r=>r.status==="rejected");if(t.length>0){Z.error(`Failed to load ${t.length} external diagrams`);for(let r of t)Z.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams");St();Rr();var Wy="comm",I_="rule",O_="decl";var xMe="@media",bMe="@import";var TMe="@supports";var CMe="@namespace",gC="@keyframes";var P_="@layer",kMe="@scope";var TU=Math.abs,yC=String.fromCharCode;function B_(e){return e.trim()}o(B_,"trim");function qy(e,t,r){return e.replace(t,r)}o(qy,"replace");function wMe(e,t,r){return e.indexOf(t,r)}o(wMe,"indexof");function Lh(e,t){return e.charCodeAt(t)|0}o(Lh,"charat");function Mh(e,t,r){return e.slice(t,r)}o(Mh,"substr");function Ks(e){return e.length}o(Ks,"strlen");function F_(e){return e.length}o(F_,"sizeof");function Uy(e,t){return t.push(e),e}o(Uy,"append");var $_=1,Hy=1,SMe=0,ul=0,Nn=0,jy="";function z_(e,t,r,i,n,a,s,l){return{value:e,root:t,parent:r,type:i,props:n,children:a,line:$_,column:Hy,length:s,return:"",siblings:l}}o(z_,"node");function EMe(){return Nn}o(EMe,"char");function AMe(){return Nn=ul>0?Lh(jy,--ul):0,Hy--,Nn===10&&(Hy=1,$_--),Nn}o(AMe,"prev");function hl(){return Nn=ul2||Yy(Nn)>3?"":" "}o(RMe,"whitespace");function LMe(e,t){for(;--t&&hl()&&!(Nn<48||Nn>102||Nn>57&&Nn<65||Nn>70&&Nn<97););return G_(e,vC()+(t<6&&Nh()==32&&hl()==32))}o(LMe,"escaping");function CU(e){for(;hl();)switch(Nn){case e:return ul;case 34:case 39:e!==34&&e!==39&&CU(Nn);break;case 40:e===41&&CU(e);break;case 92:hl();break}return ul}o(CU,"delimiter");function MMe(e,t){for(;hl()&&e+Nn!==57;)if(e+Nn===84&&Nh()===47)break;return"/*"+G_(t,ul-1)+"*"+yC(e===47?e:hl())}o(MMe,"commenter");function NMe(e){for(;!Yy(Nh());)hl();return G_(e,ul)}o(NMe,"identifier");function PMe(e){return DMe(W_("",null,null,null,[""],e=_Me(e),0,[0],e))}o(PMe,"compile");function W_(e,t,r,i,n,a,s,l,u){for(var h=0,d=0,f=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,T="",w=n,C=a,k=i,E=T;v;)switch(g=b,b=hl()){case 40:if(g!=108&&Lh(E,f-1)==58){wMe(E+=qy(V_(b),"&","&\f"),"&\f",TU(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:E+=V_(b);break;case 9:case 10:case 13:case 32:E+=RMe(g);break;case 92:E+=LMe(vC()-1,7);continue;case 47:switch(Nh()){case 42:case 47:Uy(CAt(MMe(hl(),vC()),t,r,u),u),(Yy(g||1)==5||Yy(Nh()||1)==5)&&Ks(E)&&Mh(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*y:l[h++]=Ks(E)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+d:x==-1&&(E=qy(E,/\f/g,"")),m>0&&(Ks(E)-f||y===0&&g===47)&&Uy(m>32?OMe(E+";",i,r,f-1,u):OMe(qy(E," ","")+";",i,r,f-2,u),u);break;case 59:E+=";";default:if(Uy(k=IMe(E,t,r,h,d,n,l,T,w=[],C=[],f,a),a),b===123)if(d===0)W_(E,t,k,k,w,a,f,l,C);else{switch(p){case 99:if(Lh(E,3)===110)break;case 108:if(Lh(E,2)===97)break;default:d=0;case 100:case 109:case 115:}d?W_(e,k,k,i&&Uy(IMe(e,k,k,0,0,n,l,T,n,w=[],f,C),C),n,C,f,l,i?w:C):W_(E,k,k,k,[""],C,0,l,C)}}h=d=m=0,y=x=1,T=E="",f=s;break;case 58:f=1+Ks(E),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&AMe()==125)continue}switch(E+=yC(b),b*y){case 38:x=d>0?1:(E+="\f",-1);break;case 44:l[h++]=(Ks(E)-1)*x,x=1;break;case 64:Nh()===45&&(E+=V_(hl())),p=Nh(),d=f=Ks(T=E+=NMe(vC())),b++;break;case 45:g===45&&Ks(E)==2&&(y=0)}}return a}o(W_,"parse");function IMe(e,t,r,i,n,a,s,l,u,h,d,f){for(var p=n-1,m=n===0?a:[""],g=F_(m),y=0,v=0,x=0;y0?m[b]+" "+T:qy(T,/&\f/g,m[b])))&&(u[x++]=w);return z_(e,t,r,n===0?I_:l,u,h,d,f)}o(IMe,"ruleset");function CAt(e,t,r,i){return z_(e,t,r,Wy,yC(EMe()),Mh(e,2,-2),0,i)}o(CAt,"comment");function OMe(e,t,r,i,n){return z_(e,t,r,O_,Mh(e,0,i),Mh(e,i+1,-1),i,n)}o(OMe,"declaration");function q_(e,t){for(var r="",i=0;i{GMe.forEach(e=>{e()}),GMe=[]},"attachFunctions");St();var WMe=o(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");mk();Wx();function qMe(e){let t=e.match(pk);if(!t)return{text:e,metadata:{}};let r=ld(t[1],{schema:od})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let i={};return r.displayMode&&(i.displayMode=r.displayMode.toString()),r.title&&(i.title=r.title.toString()),r.config&&(i.config=r.config),{text:e.slice(t[0].length),metadata:i}}o(qMe,"extractFrontMatter");Xt();var wAt=o(e=>e.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(t,r,i)=>"<"+r+i.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),SAt=o(e=>{let{text:t,metadata:r}=qMe(e),{displayMode:i,title:n,config:a={}}=r;return i&&(a.gantt||(a.gantt={}),a.gantt.displayMode=i),{title:n,config:a,text:t}},"processFrontmatter"),EAt=o(e=>{let t=Zt.detectInit(e)??{},r=Zt.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:i})=>i==="wrap"):r?.type==="wrap"&&(t.wrap=!0),{text:Zee(e),directive:t}},"processDirectives");function kU(e){let t=wAt(e),r=SAt(t),i=EAt(r.text),n=Gr(r.config,i.directive);return e=WMe(i.text),{code:e,title:r.title,config:n}}o(kU,"preprocessDiagram");OD();LC();Xt();function UMe(e){let t=new TextEncoder().encode(e),r=Array.from(t,i=>String.fromCodePoint(i)).join("");return btoa(r)}o(UMe,"toBase64");MC();var AAt=5e4,_At="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",DAt="sandbox",RAt="loose",LAt="http://www.w3.org/2000/svg",MAt="http://www.w3.org/1999/xlink",NAt="http://www.w3.org/1999/xhtml",IAt="100%",OAt="100%",PAt="border:0;margin:0;",BAt="margin:0",FAt="allow-top-navigation-by-user-activation allow-popups",$At='The "iframe" tag is not supported by your browser.',zAt=["foreignobject"],GAt=["dominant-baseline"];function XMe(e){let t=kU(e);return iv(),KH(t.config??{}),t}o(XMe,"processAndSetConfigs");async function VAt(e,t){Vy();try{let{code:r,config:i}=XMe(e);return{diagramType:(await KMe(r)).type,config:i}}catch(r){if(t?.suppressErrors)return!1;throw r}}o(VAt,"parse");var HMe=o((e,t,r=[])=>{let i=A7(`{ ${r.join(" !important; ")} !important; }`);return`.${e} ${t} ${i}`},"cssImportantStyles"),WAt=o((e,t=new Map)=>{let r=new CSSStyleSheet;if(e.fontFamily!==void 0&&r.insertRule(`:root { --mermaid-font-family: ${e.fontFamily}}`,r.cssRules.length),e.altFontFamily!==void 0&&r.insertRule(`:root { --mermaid-alt-font-family: ${e.altFontFamily}}`,r.cssRules.length),t instanceof Map){let l=Mr(e)?["> *","span"]:["rect","polygon","ellipse","circle","path"];t.forEach(u=>{a4(u.styles)||l.forEach(h=>{r.insertRule(HMe(u.id,h,u.styles),r.cssRules.length)}),a4(u.textStyles)||r.insertRule(HMe(u.id,"tspan",(u?.textStyles||[]).map(h=>h.replace("color","fill"))),r.cssRules.length)})}let i="";if(e.themeCSS!==void 0)if(typeof r.replaceSync=="function"){let n=new CSSStyleSheet;n.replaceSync(e.themeCSS),i=ID(n)+` +`}else i+=`${e.themeCSS} +`;return i+ID(r)},"createCssStyles"),qAt=o((e,t)=>q_(PMe(`${e}{${t}}`),FMe([o(function(i,n,a,s){if(i.type==="rule"&&Array.isArray(i.props)){if(i.parent&&i.parent.type===gC)return;i.props=i.props.map(l=>l.startsWith(e)?l:`${e} ${l}`)}else i.type.startsWith("@")&&([...[xMe,TMe,P_,kMe,"@container","@starting-style"],gC].includes(i.type)||(Z.warn(`Removing unsupported at-rule ${i.type} from CSS`),i.type=Wy))},"addNamespace"),BMe])),"compileCSS"),UAt=o((e,t,r,i)=>{let n=WAt(e,r),a=rX(t,n,{...e.themeVariables,theme:e.theme,look:e.look},i);return qAt(i,a)},"createUserStyles"),HAt=o((e="",t,r)=>{let i=e;return!r&&!t&&(i=i.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),i=Qa(i),i=i.replace(/
    /g,"
    "),i},"cleanUpSvgCode"),YAt=o((e="",t)=>{let r=t?.viewBox?.baseVal?.height?t.viewBox.baseVal.height+"px":OAt,i=UMe(`${e}`);return``},"putIntoIFrame"),YMe=o((e,t,r,i,n)=>{let a=e.append("div");a.attr("id",r),i&&a.attr("style",i);let s=a.append("svg").attr("id",t).attr("width","100%").attr("xmlns",LAt);return n&&s.attr("xmlns:xlink",n),s.append("g"),e},"appendDivSvgG");function jMe(e,t){return e.append("iframe").attr("id",t).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(jMe,"sandboxedIframe");var jAt=o((e,t,r,i)=>{e.getElementById(t)?.remove(),e.getElementById(r)?.remove(),e.getElementById(i)?.remove()},"removeExistingElements"),XAt=o(async function(e,t,r){Vy();let i=XMe(t);t=i.code;let n=Nt();Z.debug(n),t.length>(n?.maxTextSize??AAt)&&(t=_At);let a=`#${e}`,s="i"+e,l="#"+s,u="d"+e,h="#"+u,d=o(()=>{let _=Je(p?l:h).node();_&&"remove"in _&&_.remove()},"removeTempElements"),f=Je(document.body),p=n.securityLevel===DAt,m=n.securityLevel===RAt,g=n.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let D=jMe(Je(r),s);f=Je(D.nodes()[0].contentDocument.body),f.node().style.margin="0"}else f=Je(r);YMe(f,e,u,`font-family: ${g}`,MAt)}else{if(jAt(document,e,u,s),p){let D=jMe(Je(document.body),s);f=Je(D.nodes()[0].contentDocument.body),f.node().style.margin="0"}else f=Je("body");YMe(f,e,u)}let y,v;try{y=await Xy.fromText(t,{title:i.title})}catch(D){if(n.suppressErrorRendering)throw d(),D;y=await Xy.fromText("error"),v=D}let x=f.select(h).node(),b=y.type,T=x.firstChild,w=T.firstChild,C=y.renderer.getClasses?.(t,y),k=UAt(n,b,C,a),E=document.createElement("style");E.innerHTML=k,T.insertBefore(E,w);try{await y.renderer.draw(t,e,"11.15.0",y)}catch(D){throw n.suppressErrorRendering?d():I_e.draw(t,e,"11.15.0"),D}let A=f.select(`${h} svg`),N=y.db.getAccTitle?.(),P=y.db.getAccDescription?.();ZAt(b,A,N,P),f.select(`[id="${e}"]`).selectAll("foreignobject > *").attr("xmlns",NAt);let I=f.select(h).node().innerHTML;if(Z.debug("config.arrowMarkerAbsolute",n.arrowMarkerAbsolute),I=HAt(I,p,Aa(n.arrowMarkerAbsolute)),p){let D=f.select(h+" svg").node();I=YAt(I,D)}else m||(I=Ro.sanitize(I,{ADD_TAGS:zAt,ADD_ATTR:GAt,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(VMe(),v)throw v;return d(),{diagramType:b,svg:I,bindFunctions:y.db.bindFunctions}},"render");function KAt(e={}){let t=Ai({},e);t?.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),YH(t),t?.theme&&t.theme in _o?t.themeVariables=_o[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=_o.default.getThemeVariables(t.themeVariables));let r=typeof t=="object"?_7(t):D7();Zy(r.logLevel),Vy()}o(KAt,"initialize");var KMe=o((e,t={})=>{let{code:r}=kU(e);return Xy.fromText(r,t)},"getDiagramFromText");function ZAt(e,t,r,i){$Me(t,e),zMe(t,r,i,t.attr("id"))}o(ZAt,"addA11yInfo");var If=Object.freeze({render:XAt,parse:VAt,getDiagramFromText:KMe,initialize:KAt,getConfig:Nt,setConfig:OC,getSiteConfig:D7,updateSiteConfig:jH,reset:o(()=>{iv()},"reset"),globalReset:o(()=>{iv(Ph)},"globalReset"),defaultConfig:Ph});Zy(Nt().logLevel);iv(Nt());tf();Xt();var QAt=o((e,t,r)=>{Z.warn(e),LM(e)?(r&&r(e.str,e.hash),t.push({...e,message:e.str,error:e})):(r&&r(e),e instanceof Error&&t.push({str:e.message,message:e.message,hash:e.name,error:e}))},"handleError"),ZMe=o(async function(e={querySelector:".mermaid"}){try{await JAt(e)}catch(t){if(LM(t)&&Z.error(t.str),Ih.parseError&&Ih.parseError(t),!e.suppressErrors)throw Z.error("Use the suppressErrors option to suppress these errors"),t}},"run"),JAt=o(async function({postRenderCallback:e,querySelector:t,nodes:r}={querySelector:".mermaid"}){let i=If.getConfig();Z.debug(`${e?"":"No "}Callback function found`);let n;if(r)n=r;else if(t)n=document.querySelectorAll(t);else throw new Error("Nodes and querySelector are both undefined");Z.debug(`Found ${n.length} diagrams`),i?.startOnLoad!==void 0&&(Z.debug("Start On Load: "+i?.startOnLoad),If.updateSiteConfig({startOnLoad:i?.startOnLoad}));let a=new Zt.InitIDGenerator(i.deterministicIds,i.deterministicIDSeed),s,l=[];for(let u of Array.from(n)){Z.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=fk(Zt.entityDecode(s)).trim().replace(//gi,"
    ");let d=Zt.detectInit(s);d&&Z.debug("Detected early reinit: ",d);try{let{svg:f,bindFunctions:p}=await tNe(h,s,u);u.innerHTML=f,e&&await e(h),p&&p(u)}catch(f){QAt(f,l,Ih.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),QMe=o(function(e){If.initialize(e)},"initialize"),e6t=o(async function(e,t,r){Z.warn("mermaid.init is deprecated. Please use run instead."),e&&QMe(e);let i={postRenderCallback:r,querySelector:".mermaid"};typeof t=="string"?i.querySelector=t:t&&(t instanceof HTMLElement?i.nodes=[t]:i.nodes=t),await ZMe(i)},"init"),t6t=o(async(e,{lazyLoad:t=!0}={})=>{Vy(),Cv(...e),t===!1&&await vMe()},"registerExternalDiagrams"),JMe=o(function(){if(Ih.startOnLoad){let{startOnLoad:e}=If.getConfig();e&&Ih.run().catch(t=>Z.error("Mermaid failed to initialize",t))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",JMe,!1)}var r6t=o(function(e){Ih.parseError=e},"setParseErrorHandler"),U_=[],wU=!1,eNe=o(async()=>{if(!wU){for(wU=!0;U_.length>0;){let e=U_.shift();if(e)try{await e()}catch(t){Z.error("Error executing queue",t)}}wU=!1}},"executeQueue"),i6t=o(async(e,t)=>new Promise((r,i)=>{let n=o(()=>new Promise((a,s)=>{If.parse(e,t).then(l=>{a(l),r(l)},l=>{Z.error("Error parsing",l),Ih.parseError?.(l),s(l),i(l)})}),"performCall");U_.push(n),eNe().catch(i)}),"parse"),tNe=o((e,t,r)=>new Promise((i,n)=>{let a=o(()=>new Promise((s,l)=>{If.render(e,t,r).then(u=>{s(u),i(u)},u=>{Z.error("Error parsing",u),Ih.parseError?.(u),l(u),n(u)})}),"performCall");U_.push(a),eNe().catch(n)}),"render"),n6t=o(()=>Object.keys(ku).map(e=>({id:e})),"getRegisteredDiagramsMetadata"),Ih={startOnLoad:!0,mermaidAPI:If,parse:i6t,render:tNe,init:e6t,run:ZMe,registerExternalDiagrams:t6t,registerLayoutLoaders:GP,initialize:QMe,parseError:void 0,contentLoaded:JMe,setParseErrorHandler:r6t,detectType:zm,registerIconPacks:dk,getRegisteredDiagramsMetadata:n6t},a6t=Ih;return hNe(s6t);})(); +/*! Bundled license information: + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) +*/ +/*! Check if previously processed */ +/*! + * Wait for document loaded before starting the execution + */ +/*! Bundled license information: + +dompurify/dist/purify.es.mjs: + (*! @license DOMPurify 3.4.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.0/LICENSE *) + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" --repo lodash/lodash#4.18.1 -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +cytoscape/dist/cytoscape.esm.mjs: + (*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + *) + (*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + *) + (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) +*/ +globalThis["mermaid"] = globalThis.__esbuild_esm_mermaid_nm["mermaid"].default; diff --git a/templates/page.html b/templates/page.html index 8e82e26f..fe4162db 100644 --- a/templates/page.html +++ b/templates/page.html @@ -145,4 +145,8 @@

    — {{ page.extra.subtitle }}

    "snippets/codecrafters.html" %} {% endif %} -{% endblock content %} +{# Load Mermaid only on pages that actually contain a diagram. #} {%- if +'class="mermaid"' in page.content %} + + +{%- endif %} {% endblock content %} diff --git a/templates/shortcodes/mermaid.html b/templates/shortcodes/mermaid.html new file mode 100644 index 00000000..cc9ab8c6 --- /dev/null +++ b/templates/shortcodes/mermaid.html @@ -0,0 +1 @@ +
    {{ body }}
    From 77ab5474ab0f0a153b6def03f56bd7e05e2bece4 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 12:42:43 +0200 Subject: [PATCH 03/14] mermaid --- content/2026/how-other-link-checkers-recurse/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md index 525a7ace..d756d804 100644 --- a/content/2026/how-other-link-checkers-recurse/index.md +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -26,7 +26,7 @@ Before the individual teardowns, here's the punchline. Every recursive checker I Diagrammatically, lychee and the crawlers are different *shapes*: -```mermaid +{% mermaid() %} graph TD subgraph crawler["Everyone else: a worklist (a cycle)"] direction TB @@ -41,13 +41,13 @@ graph TD LB --> LC[Checker] LC --> LD[Results] end -``` +{% end %} The crawler shape has a back-edge baked in. The pipeline shape doesn't, and every one of my failed attempts was an effort to bend that back-edge into a graph that was never designed to hold one. The crucial design decision they all share, stated more precisely: -```mermaid +{% mermaid() %} graph TD Seed[Seed URLs] --> Enq["Enqueue step: is URL in visited set?"] Enq -->|yes| Skip[Drop] @@ -58,7 +58,7 @@ graph TD FP -->|discovered links| Enq FP --> Rec[Record result] Q -.->|empty AND no worker busy| Stop[Terminate] -``` +{% end %} Note *where* the visited check happens: at the **enqueue** step, atomically with the mark, before the worker ever touches the network. That ordering is the entire fix to the deduplication race that haunted lychee's attempts 1–4, where the cache was written *after* checking. From 7630de0d4787399b464cd7fc2017d77c990bacf4 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 12:51:24 +0200 Subject: [PATCH 04/14] edit --- .../how-other-link-checkers-recurse/index.md | 106 +++++++++--------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md index d756d804..7f23b95d 100644 --- a/content/2026/how-other-link-checkers-recurse/index.md +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -12,7 +12,7 @@ After I published [Five Years of Trying to Add Recursion to lychee](@/2026/lyche It's a great question, and a slightly uncomfortable one, because the honest answer is: **they didn't find a clever trick I missed.** They were built as crawlers from the very first commit, and I built lychee as a stream. -So I went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features) — [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it would have cost me to do the same. +So I went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features): [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it would have cost me to do the same. If you haven't read the [first post](@/2026/lychee-recursion/index.md), the one-paragraph recap: lychee was architected as a one-shot, unidirectional pipeline (`inputs → extract → check → output`). Recursion needs a *cycle* (responses create new inputs), and cycles in an async, channel-based pipeline are where the [dragons live](@/2026/lychee-recursion/index.md). 🐲 Five years and four attempts later, the pieces to do it properly only just landed. @@ -20,9 +20,9 @@ If you haven't read the [first post](@/2026/lychee-recursion/index.md), the one- Before the individual teardowns, here's the punchline. Every recursive checker I looked at is built from the same three parts: -1. **A mutable work queue** (a *frontier*), not a fixed input stream. Discovered URLs go back into the same queue they came from. -2. **A visited set that is updated at enqueue time** — *before* the request completes — so two pages discovering the same link can't both submit it. -3. **A primitive that answers "is everything done?"** — a `WaitGroup`, a joinable-queue counter, an `onIdle()` promise, or a queue-drain event. +1. A mutable work queue (a *frontier*), not a fixed input stream. Discovered URLs go back into the same queue they came from. +2. A visited set that's updated at enqueue time (before the request completes), so two pages discovering the same link can't both submit it. +3. A primitive that answers "is everything done?": a `WaitGroup`, a joinable-queue counter, an `onIdle()` promise, or a queue-drain event. Diagrammatically, lychee and the crawlers are different *shapes*: @@ -45,7 +45,7 @@ graph TD The crawler shape has a back-edge baked in. The pipeline shape doesn't, and every one of my failed attempts was an effort to bend that back-edge into a graph that was never designed to hold one. -The crucial design decision they all share, stated more precisely: +The design decision they all share, stated more precisely: {% mermaid() %} graph TD @@ -80,7 +80,7 @@ func (c *pageChecker) addPage(p page) { `donePages` is a `concurrentStringSet` (a mutex-guarded `map[string]struct{}`). `Add` returns whether the URL was already present, so a page is only scheduled the *first* time it's seen. Dedup happens at enqueue, synchronized by the set's mutex. This is the diagram above, line for line. -Checking a page fetches all of its links concurrently, and feeds qualifying ones back into `addPage` — the back-edge: +Checking a page fetches all of its links concurrently, and feeds qualifying ones back into `addPage`, the back-edge: ```go go func(u string) { @@ -118,20 +118,20 @@ func (m daemonManager) Run() { Every scheduled page increments the group; every completed page decrements it; `Wait()` returns when the count hits zero. The whole crawl bootstraps with a single `addPage` before `Run()`, so the counter is positive before anyone waits on it. -This is the *same counter* I tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this discipline so naturally that it doesn't feel like distributed termination detection at all — but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). +This is the *same counter* I tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this discipline so naturally that it doesn't feel like distributed termination detection at all, but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). ### Where the tradeoffs are -- **Concurrency is *not* bounded by the daemon manager.** `Run()` does `go f()` for every task, spawning unbounded goroutines. The actual limiting happens downstream in a `semaphore` (a buffered-channel counting semaphore) and a per-host throttler pool. muffet *separates* "the frontier" from "the rate limiter," which is precisely the separation lychee lacked when it tried to use one bounded channel as both. -- **Cheap goroutines do a lot of heavy lifting.** Spawning a goroutine per link is fine in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed me toward `Arc>` and the ownership pain I [wrote about](@/2026/lychee-recursion/index.md). -- **Extensibility:** muffet is a focused CLI, not a library. There's no plugin surface; you get what the flags give you. lychee deliberately ships `lychee-lib` as a reusable crate, which raises the bar — every architectural choice has to survive being a public API. -- **Scalability:** unbounded goroutines + an in-memory visited set scale comfortably to large sites, but there's no disk-backed frontier, so a truly enormous crawl is bounded by RAM. Same as lychee. +- Concurrency isn't bounded by the daemon manager. `Run()` does `go f()` for every task, spawning unbounded goroutines. The actual limiting happens downstream in a `semaphore` (a buffered-channel counting semaphore) and a per-host throttler pool. muffet *separates* "the frontier" from "the rate limiter," which is exactly the separation lychee lacked when it tried to use one bounded channel as both. +- Cheap goroutines do a lot of heavy lifting. Spawning a goroutine per link is fine in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed me toward `Arc>` and the ownership pain I [wrote about](@/2026/lychee-recursion/index.md). +- On extensibility, muffet is a focused CLI, not a library. There's no plugin surface; you get what the flags give you. lychee deliberately ships `lychee-lib` as a reusable crate, which raises the bar, since every architectural choice has to survive being a public API. +- On scalability, unbounded goroutines plus an in-memory visited set scale comfortably to large sites, but there's no disk-backed frontier, so a truly enormous crawl is bounded by RAM. Same as lychee. {% info(title="Takeaways: muffet") %} -- **muffet's termination is a `sync.WaitGroup`, full stop.** It's the design lychee converged on after five years; muffet got it for free from Go's standard library on day one. -- **The frontier and the concurrency limiter are separate things.** A mutex-guarded set is the frontier; a semaphore + host throttler bounds concurrency. Conflating them is what deadlocked lychee. -- **Goroutines hide the cost that Rust makes you pay explicitly.** The same per-task model that's trivial in Go is where Rust's `Send`/ownership friction shows up. +- muffet's termination is a `sync.WaitGroup`, full stop. It's the design lychee converged on after five years; muffet got it for free from Go's standard library on day one. +- The frontier and the concurrency limiter are separate things. A mutex-guarded set is the frontier; a semaphore plus host throttler bounds concurrency. Conflating them is what deadlocked lychee. +- Goroutines hide the cost that Rust makes you pay explicitly. The same per-task model that's trivial in Go is where Rust's `Send`/ownership friction shows up. {% end %} @@ -152,7 +152,7 @@ def __init__(self, max_allowed_urls=None): That comment is *my [Attempt 4 backpressure deadlock](@/2026/lychee-recursion/index.md)*, called out as a known hazard and designed around. lychee tried to push discovered URLs into a **bounded** channel; when it filled, the response handler blocked, no responses drained, no slots freed → deadlock. LinkChecker's answer is blunt: the frontier is **unbounded**. Backpressure is enforced elsewhere (a fixed thread count and per-host throttling), never by blocking a producer that is also a consumer. -### Termination by counter — done right +### Termination by counter, done right `join()` blocks until `unfinished_tasks` hits zero (`urlqueue.py`): @@ -171,7 +171,7 @@ def join(self, timeout=None): self.all_tasks_done.wait() ``` -Again: a counter. But the increment in `_put` and the decrement in `task_done` are both inside the queue's `Condition` lock, and a worker calls `task_done` only after fully processing an item *including enqueuing its children*. So children are counted before the parent is marked done — no premature zero. It's `WaitGroup` semantics implemented with a mutex and a condition variable. +Again: a counter. But the increment in `_put` and the decrement in `task_done` are both inside the queue's `Condition` lock, and a worker calls `task_done` only after fully processing an item *including enqueuing its children*. So children are counted before the parent is marked done, with no premature zero. It's `WaitGroup` semantics implemented with a mutex and a condition variable. ### Deduplication, before the request @@ -190,7 +190,7 @@ def _put(self, url_data): cache.add_result(key, None) ``` -That `add_result(key, None)` placeholder is the fix lychee's attempts kept missing. By the time any worker thread checks the URL, the cache already says "mine" — concurrent discovery from another page is a no-op. +That `add_result(key, None)` placeholder is the fix lychee's attempts kept missing. By the time any worker thread checks the URL, the cache already says "mine," so concurrent discovery from another page is a no-op. ### Per-host politeness and termination guards @@ -211,16 +211,16 @@ and `abort()` calls `urlqueue.join(timeout=…)` so a stuck crawl can't hang for ### Where the tradeoffs are -- **Blocking threads, not async.** Each of the (default 10–100) `Checker` threads does blocking I/O via `requests`. Simple and battle-tested, but the concurrency ceiling is the thread count, and each thread carries a full stack. lychee's Tokio model reaches thousands of concurrent in-flight requests on a handful of OS threads; LinkChecker can't, and doesn't try. -- **Unbounded frontier = unbounded memory.** The explicit "no max size" decision trades a deadlock for RAM growth on huge sites. There's a `max_allowed_urls` cap and a periodic `cleanup()` to mitigate it. -- **Extensibility is excellent.** LinkChecker has a real plugin system (`linkcheck/plugins/`: anchor checks, SSL, virus scanning, …) and many output loggers. This is the most extensible of the bunch, and it pays for that with a large, mature, somewhat old-fashioned codebase. -- **Scalability:** GIL-bound and thread-limited, so raw throughput is the lowest here — but correctness and feature coverage are the highest. +- Blocking threads, not async. Each of the (default 10–100) `Checker` threads does blocking I/O via `requests`. Simple and battle-tested, but the concurrency ceiling is the thread count, and each thread carries a full stack. lychee's Tokio model reaches thousands of concurrent in-flight requests on a handful of OS threads; LinkChecker can't, and doesn't try. +- The unbounded frontier trades a deadlock for unbounded memory. The explicit "no max size" decision means RAM growth on huge sites. There's a `max_allowed_urls` cap and a periodic `cleanup()` to mitigate it. +- Extensibility is excellent. LinkChecker has a real plugin system (`linkcheck/plugins/`: anchor checks, SSL, virus scanning, and more) and many output loggers. This is the most extensible of the bunch, and it pays for that with a large, mature, somewhat old-fashioned codebase. +- On scalability, it's GIL-bound and thread-limited, so raw throughput is the lowest here, but correctness and feature coverage are the highest. {% info(title="Takeaways: LinkChecker") %} -- **The unbounded frontier is a deliberate anti-deadlock choice**, documented in a one-line comment that describes the exact failure mode lychee hit in Attempt 4. -- **Dedup at `put()` time** (a `None` placeholder in the cache) is the synchronization lychee lacked. The cache must claim the URL *before* the request, not after. -- **Threads buy simplicity at the cost of throughput.** A blocking thread-pool is the easiest correct model and the slowest one. +- The unbounded frontier is a deliberate anti-deadlock choice, documented in a one-line comment that describes the exact failure mode lychee hit in Attempt 4. +- Dedup at `put()` time (a `None` placeholder in the cache) is the synchronization lychee lacked. The cache must claim the URL *before* the request, not after. +- Threads buy simplicity at the cost of throughput. A blocking thread pool is the easiest correct model and the slowest one. {% end %} @@ -240,7 +240,7 @@ await queue.onIdle(); // <- resolves when nothing is queued or running ### The back-edge and the race-free dedup -When crawling, `crawl()` GETs the page, extracts links, and for each genuinely new URL re-enters the queue (`src/index.ts`): +When crawling, `crawl()` GETs the page, extracts links, and for each new URL re-enters the queue (`src/index.ts`): ```ts const inCache = options.cache.has(result.url.href); @@ -254,11 +254,11 @@ if (!inCache) { } ``` -Because JavaScript is single-threaded, the `has` → `add` → `queue.add` sequence executes without interruption. In Rust or Go, that's a critical section you must guard with a mutex (and get the ordering right); in Node it's just three statements. This is the single biggest reason recursion is *easier* in Node than in Rust — and it's a language property, not a cleverness. +Because JavaScript is single-threaded, the `has` → `add` → `queue.add` sequence executes without interruption. In Rust or Go, that's a critical section you must guard with a mutex (and get the ordering right); in Node it's just three statements. This is the single biggest reason recursion is *easier* in Node than in Rust, and it's a language property, not a cleverness. linkinator also keeps a `relationshipCache` of `` `${url}|${parent}` `` keys, and a `pendingChecks` map so it can wait on an in-flight check and still report a *duplicate broken link* against every parent that references it. Those reuse-operations are themselves pushed onto the same queue, so `onIdle()` correctly waits for them too. -### HEAD vs GET — the same wall lychee is at now +### HEAD vs GET: the same wall lychee is at now linkinator uses `HEAD` for leaf links but `GET` when it needs to crawl, because **recursion needs the response body to find more links**: @@ -270,16 +270,16 @@ This is precisely [lychee's one remaining open problem](@/2026/lychee-recursion/ ### Where the tradeoffs are -- **Single-threaded is a blessing and a ceiling.** No data races, trivially correct dedup — but HTML parsing is CPU work that blocks the one event loop. For thousands of pages, you're bound by a single core. lychee's multi-threaded Tokio runtime parses and checks in parallel. -- **In-memory result inflation.** The source explicitly comments on "massive result inflation for heavily interlinked sites": the `results` array, `cache`, and `relationshipCache` all grow with the crawl. Fine for a docs site, heavy for a giant one. -- **Rate limiting is reactive, not proactive.** There's a `delayCache` that backs off per host on a `429` with `Retry-After`, but no general per-host concurrency cap like lychee's `HostPool`. linkinator can hammer a host until it complains; lychee now paces *before* the complaint. -- **Extensibility:** it's an `EventEmitter` (`on('link')`, `on('pagestart')`, …), so it's embeddable and scriptable, which is genuinely nice. It's a library first, like lychee. +- Single-threaded is both a blessing and a ceiling. No data races, trivially correct dedup, but HTML parsing is CPU work that blocks the one event loop. For thousands of pages, you're bound by a single core. lychee's multi-threaded Tokio runtime parses and checks in parallel. +- It suffers from in-memory result inflation. The source explicitly comments on "massive result inflation for heavily interlinked sites": the `results` array, `cache`, and `relationshipCache` all grow with the crawl. Fine for a docs site, heavy for a giant one. +- Rate limiting is reactive, not proactive. There's a `delayCache` that backs off per host on a `429` with `Retry-After`, but no general per-host concurrency cap like lychee's `HostPool`. linkinator can hammer a host until it complains; lychee now paces *before* the complaint. +- For extensibility, it's an `EventEmitter` (`on('link')`, `on('pagestart')`, and so on), so it's embeddable and scriptable, which is nice. It's a library first, like lychee. {% info(title="Takeaways: linkinator") %} -- **`queue.onIdle()` is the termination story** — the same quiescence detection, outsourced to a queue library. -- **A single-threaded event loop makes enqueue-time dedup race-free for free.** This is the biggest structural reason recursion is easier in Node than in Rust. -- **Reactive 429 backoff is not the same as proactive per-host pacing.** lychee's `HostPool` aims higher, at the cost of more machinery. +- `queue.onIdle()` is the termination story, the same quiescence detection outsourced to a queue library. +- A single-threaded event loop makes enqueue-time dedup race-free for free. This is the biggest structural reason recursion is easier in Node than in Rust. +- Reactive 429 backoff is not the same as proactive per-host pacing. lychee's `HostPool` aims higher, at the cost of more machinery. {% end %} @@ -326,20 +326,20 @@ BLC has no counter and no `onIdle()`. It rides the queue's drain events. When th }); ``` -It's quiescence detection again, expressed as "the request queue reported empty." The `done` callback per item is also what gates concurrency — the classic Node async-queue idiom. +It's quiescence detection again, expressed as "the request queue reported empty." The `done` callback per item is also what gates concurrency, the classic Node async-queue idiom. ### Where the tradeoffs are -- **Most "good web citizen" of the bunch.** robots.txt is honored (`getRobotsTxt`, `isAllowed`), `rel=nofollow` is respected, and `rateLimit` + `maxSockets` are first-class. This is a crawler that's polite by default. -- **Event cascades are powerful but fiddly.** Termination is spread across half a dozen event handlers and two nested queues. It works, but the control flow is much harder to follow than `await queue.onIdle()`. This is the JS cousin of the "leaky abstraction" problem I described — recursion-awareness ends up sprinkled across many handlers. -- **Single-threaded, same ceiling as linkinator**, plus the in-memory `URLCache` per site. -- **Maturity vs momentum:** very widely used (it powers a lot of tooling), but development has slowed. Still, the architecture is sound and worth studying. +- It's the best web citizen of the bunch. robots.txt is honored (`getRobotsTxt`, `isAllowed`), `rel=nofollow` is respected, and `rateLimit` plus `maxSockets` are first-class. This is a crawler that's polite by default. +- Event cascades are powerful but fiddly. Termination is spread across half a dozen event handlers and two nested queues. It works, but the control flow is much harder to follow than `await queue.onIdle()`. This is the JS cousin of the "leaky abstraction" problem I described, where recursion-awareness ends up sprinkled across many handlers. +- It's single-threaded, the same ceiling as linkinator, plus the in-memory `URLCache` per site. +- On maturity versus momentum, it's very widely used (it powers a lot of tooling), but development has slowed. The architecture is still sound and worth studying. {% info(title="Takeaways: broken-link-checker") %} -- **Termination is a cascade of queue-drain events**, not a counter — the same quiescence idea wearing a different hat. -- **Politeness is built in.** robots.txt + `rateLimit` + `maxSockets` make it the most server-friendly recursive checker by default. -- **Event-driven control flow is the cost.** Distributing recursion logic across many handlers is exactly the kind of spread-out complexity that makes the feature hard to reason about. +- Termination is a cascade of queue-drain events, not a counter, the same quiescence idea wearing a different hat. +- Politeness is built in. robots.txt, `rateLimit`, and `maxSockets` make it the most server-friendly recursive checker by default. +- Event-driven control flow is the cost. Distributing recursion logic across many handlers is exactly the kind of spread-out complexity that makes the feature hard to reason about. {% end %} @@ -347,7 +347,7 @@ It's quiescence detection again, expressed as "the request queue reported empty. Our README marks [markdown-link-check](https://github.com/tcort/markdown-link-check) as supporting recursion, but it's a different animal: it recurses over *Markdown files*, not by spidering a live website. There's no HTTP frontier and no termination problem in the sense above. Worth a mention so the comparison is honest, not worth a teardown. -If you want to see the pattern at full industrial scale, look at [Scrapy](https://www.scrapy.org/) (Python/Twisted) or [Colly](https://github.com/gocolly/colly) (Go). Both are *the same shape*: a scheduler (frontier) with a pluggable, optionally disk-backed queue, a dupefilter (often a Bloom filter rather than a `HashSet`), a bounded downloader pool, and explicit "engine idle → close spider" termination. They solve exactly the problems lychee struggled with ([distributed termination detection](https://en.wikipedia.org/wiki/Dijkstra%E2%80%93Scholten_algorithm), backpressure, dedup), just with years of dedicated crawler engineering behind them. The takeaway isn't "lychee should be Scrapy" — it's that crawling is a well-trodden architecture, and lychee was simply standing on a different one. +If you want to see the pattern at full industrial scale, look at [Scrapy](https://www.scrapy.org/) (Python/Twisted) or [Colly](https://github.com/gocolly/colly) (Go). Both are *the same shape*: a scheduler (frontier) with a pluggable, optionally disk-backed queue, a dupefilter (often a Bloom filter rather than a `HashSet`), a bounded downloader pool, and explicit "engine idle → close spider" termination. They solve exactly the problems lychee struggled with ([distributed termination detection](https://en.wikipedia.org/wiki/Dijkstra%E2%80%93Scholten_algorithm), backpressure, dedup), just with years of dedicated crawler engineering behind them. The takeaway isn't "lychee should be Scrapy": it's that crawling is a well-trodden architecture, and lychee was simply standing on a different one. ## Side-by-side @@ -365,26 +365,26 @@ Read the last row against the others and the [previous post](@/2026/lychee-recur Three reasons, in increasing order of how much they're actually lychee's fault. -**1. They started as crawlers; lychee started as a stream.** Every tool above has a back-edge in its core data structure. lychee's core was a DAG optimized for the 99% case (a list of files/URLs, checked once, fast). Retrofitting a cycle onto a pipeline is genuinely harder than having one from the start. This is architectural path-dependence, not a language issue. +**1. They started as crawlers; lychee started as a stream.** Every tool above has a back-edge in its core data structure. lychee's core was a DAG optimized for the 99% case (a list of files/URLs, checked once, fast). Retrofitting a cycle onto a pipeline is much harder than having one from the start. This is architectural path-dependence, not a language issue. -**2. The frontier and the rate-limiter must be different objects.** muffet (set + semaphore), LinkChecker (unbounded queue + thread count), linkinator (p-queue + delayCache), BLC (request queue + maxSockets) all keep "what to do next" separate from "how fast to go." lychee's early attempts tried to make one bounded channel serve both roles, and a cycle through a bounded channel deadlocks. The fix — lychee's `HostPool` plus a `WaitGroup` over an unbounded work source — is the same separation, arrived at the hard way. +**2. The frontier and the rate-limiter must be different objects.** muffet (set + semaphore), LinkChecker (unbounded queue + thread count), linkinator (p-queue + delayCache), BLC (request queue + maxSockets) all keep "what to do next" separate from "how fast to go." lychee's early attempts tried to make one bounded channel serve both roles, and a cycle through a bounded channel deadlocks. The fix (lychee's `HostPool` plus a `WaitGroup` over an unbounded work source) is the same separation, arrived at the hard way. **3. Single-threaded runtimes get dedup for free; Rust does not.** Both Node tools dedup with a plain `Set` and zero locking, because the event loop serializes access. Go and Python pay a mutex. Rust pays a mutex *and* fights the borrow checker about who owns the shared state across `tokio::spawn`. That's the ~30% "Rust tax" I [estimated last time](@/2026/lychee-recursion/index.md): not the algorithm, but the friction of expressing shared mutable frontier state under `Send + 'static`. -None of this is a knock on lychee's design. A unidirectional stream is *the right call* for the common, non-recursive case — it's why lychee is fast and why the 30% channel regression from [Attempt 2](@/2026/lychee-recursion/index.md) was a dealbreaker. The other tools pay for their back-edge on every run, recursive or not. lychee refused to, and that principle is exactly why recursion took five years and why, when it lands, it won't slow down the path everyone actually uses. +None of this is a knock on lychee's design. A unidirectional stream is *the right call* for the common, non-recursive case: it's why lychee is fast and why the 30% channel regression from [Attempt 2](@/2026/lychee-recursion/index.md) was a dealbreaker. The other tools pay for their back-edge on every run, recursive or not. lychee refused to, and that principle is exactly why recursion took five years and why, when it lands, it won't slow down the path everyone actually uses. {% info(title="Key takeaways") %} -- **There is no secret sauce.** Every recursive checker is a worklist + a visited set + a quiescence detector. The "trick" is being shaped like a crawler from commit one. -- **Termination is always the same idea wearing different clothes:** `sync.WaitGroup` (muffet), joinable-queue counter (LinkChecker), `queue.onIdle()` (linkinator), queue-drain events (BLC), `WaitGroup` (lychee 2026). All of them are distributed termination detection. -- **Dedup belongs at enqueue, before the request.** Marking a URL visited *after* checking it — what lychee did for four attempts — is the bug. Everyone else claims the URL the moment it enters the frontier. -- **Separate the frontier from the rate limiter.** A bounded channel that is both your queue *and* your backpressure will deadlock the instant you add a cycle. -- **Language shapes the difficulty, not the algorithm.** Node's single thread makes dedup trivial; Go's goroutines + `WaitGroup` make termination trivial; Rust gives you neither for free but hands you a compiler that refuses to let the races compile. lychee just had to build the primitives first. +- There is no secret sauce. Every recursive checker is a worklist plus a visited set plus a quiescence detector. The "trick" is being shaped like a crawler from commit one. +- Termination is always the same idea wearing different clothes: `sync.WaitGroup` (muffet), joinable-queue counter (LinkChecker), `queue.onIdle()` (linkinator), queue-drain events (BLC), `WaitGroup` (lychee 2026). All of them are distributed termination detection. +- Dedup belongs at enqueue, before the request. Marking a URL visited *after* checking it (what lychee did for four attempts) is the bug. Everyone else claims the URL the moment it enters the frontier. +- Separate the frontier from the rate limiter. A bounded channel that is both your queue *and* your backpressure will deadlock the instant you add a cycle. +- Language shapes the difficulty, not the algorithm. Node's single thread makes dedup trivial; Go's goroutines and `WaitGroup` make termination trivial; Rust gives you neither for free but hands you a compiler that refuses to let the races compile. lychee just had to build the primitives first. {% end %} -So when someone asks "how do other link checkers do recursion?", the real answer is: they made it a load-bearing part of the architecture from the beginning, and they leaned on a runtime primitive — a `WaitGroup`, a joinable queue, an idle promise — that solved termination without anyone having to call it "distributed termination detection." +So when someone asks "how do other link checkers do recursion?", the real answer is: they made it a load-bearing part of the architecture from the beginning, and they leaned on a runtime primitive (a `WaitGroup`, a joinable queue, an idle promise) that solved termination without anyone having to call it "distributed termination detection." lychee took the scenic route to the same place. But it's the same place. -Thanks again to [NLnet](https://nlnet.nl/) for funding the work, and to the maintainers of muffet, LinkChecker, linkinator, and broken-link-checker — reading your source was the clearest tutorial on crawler architecture I could have asked for. +Thanks again to [NLnet](https://nlnet.nl/) for funding the work, and to the maintainers of muffet, LinkChecker, linkinator, and broken-link-checker: reading your source was the clearest tutorial on crawler architecture I could have asked for. From 07ef1c479a621e52b28f7ac42bc4c5145aacccf6 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 13:53:41 +0200 Subject: [PATCH 05/14] wording --- .../how-other-link-checkers-recurse/index.md | 160 ++++++++++-------- 1 file changed, 92 insertions(+), 68 deletions(-) diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md index 7f23b95d..073eadc1 100644 --- a/content/2026/how-other-link-checkers-recurse/index.md +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -8,23 +8,23 @@ tags=["rust", "dev", "lychee", "async"] After I published [Five Years of Trying to Add Recursion to lychee](@/2026/lychee-recursion/index.md), the most common reply I got was a very fair question: -> If recursion is so hard, how do *other* link checkers do it? Plenty of them already crawl websites. +> If recursion is so hard, how do *other* link checkers do it? Plenty of them already crawl websites! -It's a great question, and a slightly uncomfortable one, because the honest answer is: **they didn't find a clever trick I missed.** They were built as crawlers from the very first commit, and I built lychee as a stream. +The key takeaway is: **they didn't find a clever trick we missed.** They were built as crawlers from the very first commit, and I initially built lychee as a stream. -So I went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features): [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it would have cost me to do the same. +I went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features): [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it means for lychee. -If you haven't read the [first post](@/2026/lychee-recursion/index.md), the one-paragraph recap: lychee was architected as a one-shot, unidirectional pipeline (`inputs → extract → check → output`). Recursion needs a *cycle* (responses create new inputs), and cycles in an async, channel-based pipeline are where the [dragons live](@/2026/lychee-recursion/index.md). 🐲 Five years and four attempts later, the pieces to do it properly only just landed. +If you haven't read the [first post](@/2026/lychee-recursion/index.md), the summary is that lychee was architected as a one-shot, unidirectional pipeline (`inputs → extract → check → output`). Recursion needs a *cycle* (responses create new inputs), and cycles in an async, channel-based pipeline are where the [dragons live](@/2026/lychee-recursion/index.md). 🐲 Five years and four attempts later, the pieces we'll need to do it properly only *just* landed. -## The One Pattern Everyone Shares +## DAGs vs. cycles -Before the individual teardowns, here's the punchline. Every recursive checker I looked at is built from the same three parts: - -1. A mutable work queue (a *frontier*), not a fixed input stream. Discovered URLs go back into the same queue they came from. +Every recursive checker I looked at is built from the same three parts: + +1. A mutable work queue (let's call it "frontier"), not a fixed input stream. Discovered URLs go back into the same queue they came from. 2. A visited set that's updated at enqueue time (before the request completes), so two pages discovering the same link can't both submit it. 3. A primitive that answers "is everything done?": a `WaitGroup`, a joinable-queue counter, an `onIdle()` promise, or a queue-drain event. -Diagrammatically, lychee and the crawlers are different *shapes*: +Diagrammatically, lychee is different from the others: {% mermaid() %} graph TD @@ -35,7 +35,7 @@ graph TD CP -->|new links| CQ CP --> CR[Record result] end - subgraph lychee["lychee 2020-2024: a pipeline (a DAG)"] + subgraph lychee["lychee: a pipeline (a DAG)"] direction TB LA[Inputs] --> LB[Extractor] LB --> LC[Checker] @@ -43,9 +43,9 @@ graph TD end {% end %} -The crawler shape has a back-edge baked in. The pipeline shape doesn't, and every one of my failed attempts was an effort to bend that back-edge into a graph that was never designed to hold one. +Crawlers have a back-edge baked in. Our pipeline doesn't, and every one of my failed attempts was an effort to bend that back-edge into a graph that was never designed for it. -The design decision they all share, stated more precisely: +Let's look at that graph design more closely: {% mermaid() %} graph TD @@ -60,14 +60,13 @@ graph TD Q -.->|empty AND no worker busy| Stop[Terminate] {% end %} -Note *where* the visited check happens: at the **enqueue** step, atomically with the mark, before the worker ever touches the network. That ordering is the entire fix to the deduplication race that haunted lychee's attempts 1–4, where the cache was written *after* checking. +Note that the visited check happens in the **enqueue** step, atomically with the mark, before the worker ever touches the network. That ordering is the entire fix to the deduplication race that haunted lychee's attempts 1–4, where the cache was written *after* checking. -Keep that diagram in mind. Each tool below is a variation on it. +Each tool uses a variation on it. ## muffet (Go): a WaitGroup and a Set -[muffet](https://github.com/raviqqe/muffet) is the tool people pointed me to most often. It's the closest in spirit to lychee: a fast, single-binary, concurrent website checker. Its recursion core fits on a screen. - +[muffet](https://github.com/raviqqe/muffet) is closest in spirit to lychee: a fast, single-binary, concurrent website checker. The dedup + scheduling decision lives in one method (`page_checker.go`): ```go @@ -78,7 +77,7 @@ func (c *pageChecker) addPage(p page) { } ``` -`donePages` is a `concurrentStringSet` (a mutex-guarded `map[string]struct{}`). `Add` returns whether the URL was already present, so a page is only scheduled the *first* time it's seen. Dedup happens at enqueue, synchronized by the set's mutex. This is the diagram above, line for line. +`donePages` is a `concurrentStringSet` (a mutex-guarded `map[string]struct{}`). `Add` returns whether the URL was already present, so a page is only scheduled the *first* time it's seen. Dedup happens at enqueue, synchronized by the set's mutex. This is basically a line-by-line translation of the diagram above. Checking a page fetches all of its links concurrently, and feeds qualifying ones back into `addPage`, the back-edge: @@ -95,7 +94,7 @@ go func(u string) { ### How muffet knows it's done -This is the part I want to highlight, because it's *exactly* the termination problem I spent years on. muffet's answer is a tiny `daemonManager` built around a `sync.WaitGroup` (`daemon_manager.go`): +muffet's answer to termination is a little `daemonManager` built around a `sync.WaitGroup` (`daemon_manager.go`): ```go func (m daemonManager) Add(f func()) { @@ -118,13 +117,13 @@ func (m daemonManager) Run() { Every scheduled page increments the group; every completed page decrements it; `Wait()` returns when the count hits zero. The whole crawl bootstraps with a single `addPage` before `Run()`, so the counter is positive before anyone waits on it. -This is the *same counter* I tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this discipline so naturally that it doesn't feel like distributed termination detection at all, but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). +This is the *same counter* I tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this invariant so naturally that it doesn't feel like distributed termination detection at all, but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). ### Where the tradeoffs are -- Concurrency isn't bounded by the daemon manager. `Run()` does `go f()` for every task, spawning unbounded goroutines. The actual limiting happens downstream in a `semaphore` (a buffered-channel counting semaphore) and a per-host throttler pool. muffet *separates* "the frontier" from "the rate limiter," which is exactly the separation lychee lacked when it tried to use one bounded channel as both. -- Cheap goroutines do a lot of heavy lifting. Spawning a goroutine per link is fine in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed me toward `Arc>` and the ownership pain I [wrote about](@/2026/lychee-recursion/index.md). -- On extensibility, muffet is a focused CLI, not a library. There's no plugin surface; you get what the flags give you. lychee deliberately ships `lychee-lib` as a reusable crate, which raises the bar, since every architectural choice has to survive being a public API. +- Concurrency isn't bounded by the daemon manager. `Run()` does `go f()` for every task, spawning unbounded goroutines. The actual limiting happens downstream in a `semaphore` (a buffered-channel counting semaphore) and a per-host throttler pool. muffet *separates* "the frontier" from "the rate limiter," which is exactly the separation lychee lacked when it tried to use one bounded channel as both in the past. +- Cheap goroutines do a lot of heavy lifting. Spawning a goroutine per link is "fine" in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed me toward `Arc>` and the ownership pain I [wrote about](@/2026/lychee-recursion/index.md#attempt-3-semaphores-february-2022). +- On extensibility, muffet is a focused CLI, not a library. There's no plugin surface; you get what the flags give you. lychee deliberately ships `lychee-lib` as a reusable crate, which raises the bar, since every architectural choice has to uphold the standards of a public API. - On scalability, unbounded goroutines plus an in-memory visited set scale comfortably to large sites, but there's no disk-backed frontier, so a truly enormous crawl is bounded by RAM. Same as lychee. {% info(title="Takeaways: muffet") %} @@ -135,9 +134,9 @@ This is the *same counter* I tried (and failed with) in [Attempt 1](@/2026/lyche {% end %} -## LinkChecker (Python): a joinable queue, unbounded on purpose +## LinkChecker (Python): a joinable unbounded queue -[LinkChecker](https://github.com/linkchecker/linkchecker) has existed since the year 2000. It's a synchronous, thread-pool crawler, and it's the most explicit about the exact deadlock that bit me. +[LinkChecker](https://github.com/linkchecker/linkchecker) has existed since the year 2000. It's a synchronous, thread-pool crawler. Its frontier is a hand-written `UrlQueue` (`cache/urlqueue.py`), a clone of Python's `queue.Queue` with `task_done()`/`join()`. Look at the very first design comment: @@ -150,7 +149,13 @@ def __init__(self, max_allowed_urls=None): self.unfinished_tasks = 0 ``` -That comment is *my [Attempt 4 backpressure deadlock](@/2026/lychee-recursion/index.md)*, called out as a known hazard and designed around. lychee tried to push discovered URLs into a **bounded** channel; when it filled, the response handler blocked, no responses drained, no slots freed → deadlock. LinkChecker's answer is blunt: the frontier is **unbounded**. Backpressure is enforced elsewhere (a fixed thread count and per-host throttling), never by blocking a producer that is also a consumer. +It's explicit about the exact deadlock that bit me. + +That comment is *our [Attempt 4 backpressure deadlock](@/2026/lychee-recursion/index.md#attempt-4-gwenn-takes-a-swing-january-march-2025)*, called out and designed around. lychee tried to push discovered URLs into a **bounded** channel; when it filled, the response handler blocked, no responses drained, no slots freed. Deadlock. 💥 + +LinkChecker's answer is brutalist in nature: the frontier is **unbounded**. +Backpressure is enforced elsewhere (a fixed thread count and per-host throttling), never by blocking a producer that is also a consumer. + ### Termination by counter, done right @@ -182,7 +187,7 @@ def _put(self, url_data): key = url_data.cache_url cache = url_data.aggregate.result_cache if cache.has_result(key): - return # already queued/checked -> skip + return # already queued/checked -> skip # ... self.queue.append(url_data) self.unfinished_tasks += 1 @@ -190,7 +195,7 @@ def _put(self, url_data): cache.add_result(key, None) ``` -That `add_result(key, None)` placeholder is the fix lychee's attempts kept missing. By the time any worker thread checks the URL, the cache already says "mine," so concurrent discovery from another page is a no-op. +That `add_result(key, None)` sentinel is a "fix" that's missing in lychee's attempts. By the time any worker thread checks the URL, the cache already says "mine," so concurrent discovery from another page is a no-op. ### Per-host politeness and termination guards @@ -211,32 +216,33 @@ and `abort()` calls `urlqueue.join(timeout=…)` so a stuck crawl can't hang for ### Where the tradeoffs are -- Blocking threads, not async. Each of the (default 10–100) `Checker` threads does blocking I/O via `requests`. Simple and battle-tested, but the concurrency ceiling is the thread count, and each thread carries a full stack. lychee's Tokio model reaches thousands of concurrent in-flight requests on a handful of OS threads; LinkChecker can't, and doesn't try. +- Blocking threads instead of async. Each of the (default 10–100) `Checker` threads does blocking I/O via `requests`. Simple and battle-tested, but the concurrency ceiling is the thread count, and each thread carries a full stack. lychee's Tokio model reaches thousands of concurrent in-flight requests on a handful of OS threads; LinkChecker can't, and doesn't try. - The unbounded frontier trades a deadlock for unbounded memory. The explicit "no max size" decision means RAM growth on huge sites. There's a `max_allowed_urls` cap and a periodic `cleanup()` to mitigate it. - Extensibility is excellent. LinkChecker has a real plugin system (`linkcheck/plugins/`: anchor checks, SSL, virus scanning, and more) and many output loggers. This is the most extensible of the bunch, and it pays for that with a large, mature, somewhat old-fashioned codebase. -- On scalability, it's GIL-bound and thread-limited, so raw throughput is the lowest here, but correctness and feature coverage are the highest. +- On scalability, it's GIL-bound and thread-limited, so raw throughput is the lowest here, but correctness and feature coverage are high. {% info(title="Takeaways: LinkChecker") %} -- The unbounded frontier is a deliberate anti-deadlock choice, documented in a one-line comment that describes the exact failure mode lychee hit in Attempt 4. -- Dedup at `put()` time (a `None` placeholder in the cache) is the synchronization lychee lacked. The cache must claim the URL *before* the request, not after. -- Threads buy simplicity at the cost of throughput. A blocking thread pool is the easiest correct model and the slowest one. +- The unbounded frontier is a deliberate anti-deadlock choice, documented in a one-line comment. It describes the exact problem we hit in lychee in attempt 4. +- Dedup at `put()` time (a `None` placeholder in the cache) is their synchronization mechanism. The cache must claim the URL *before* the request, not after. +- Threads buy simplicity at the cost of throughput. A blocking thread pool is the easiest correct model... and the slowest one. {% end %} -## linkinator (TypeScript): `queue.onIdle()` and a single thread that can't race +## linkinator (TypeScript): Single-Threaded `queue.onIdle()` -[linkinator](https://github.com/JustinBeckwith/linkinator) is a Node.js checker, and it benefits from something neither Go nor Rust gives you: a **single-threaded event loop**. Check-and-insert into the visited set is atomic *for free*, because no two callbacks run simultaneously. +[linkinator](https://github.com/JustinBeckwith/linkinator) is a Node.js checker, and it benefits from something neither Go nor Rust provides: a **single-threaded event loop**. Check-and-insert into the visited set is atomic *for free*, because no two callbacks run simultaneously. The frontier is a concurrency-limited `Queue` (a p-queue-style structure). Termination is one line in `check()` (`src/index.ts`): ```ts const queue = new Queue({ concurrency: options.concurrency || 100 }); // ... seed the queue ... -await queue.onIdle(); // <- resolves when nothing is queued or running +// resolve when nothing is queued or running: +await queue.onIdle(); ``` -`onIdle()` is the library's distributed-termination-detection-in-a-trenchcoat: it resolves when the queue is empty *and* no task is in flight. Same idea as muffet's `WaitGroup` and LinkChecker's `join()`, just handed to you by a dependency. +`onIdle()` is the library's termination detection: it resolves when the queue is empty *and* no task is in flight. Same idea as muffet's `WaitGroup` and LinkChecker's `join()`, just expressed as a promise and backed by a single-threaded runtime, so no Mutex is needed to protect the visited set. ### The back-edge and the race-free dedup @@ -245,45 +251,59 @@ When crawling, `crawl()` GETs the page, extracts links, and for each new URL re- ```ts const inCache = options.cache.has(result.url.href); if (!inCache) { - options.cache.add(result.url.href); // mark visited... + // Mark visited... + options.cache.add(result.url.href); + + // Create the promise for this check const checkPromise = (async () => { await this.crawl({ url: result.url, /* ... */ }); })(); + + // Store the promise. + // Another page discovering the same URL can wait on this promise + // instead of enqueuing a duplicate check. options.pendingChecks.set(result.url.href, checkPromise); - options.queue.add(() => checkPromise); // ...then enqueue + + // Enqueue... + options.queue.add(() => checkPromise); } ``` -Because JavaScript is single-threaded, the `has` → `add` → `queue.add` sequence executes without interruption. In Rust or Go, that's a critical section you must guard with a mutex (and get the ordering right); in Node it's just three statements. This is the single biggest reason recursion is *easier* in Node than in Rust, and it's a language property, not a cleverness. +Because JavaScript is single-threaded, the entire thing executes without interruption. +In Rust or Go, that's a critical section you must guard with a mutex (and get the ordering right); in Node it's just three statements. This is the single biggest reason recursion is *easier* in Node than in Rust. +It's just a language feature. linkinator also keeps a `relationshipCache` of `` `${url}|${parent}` `` keys, and a `pendingChecks` map so it can wait on an in-flight check and still report a *duplicate broken link* against every parent that references it. Those reuse-operations are themselves pushed onto the same queue, so `onIdle()` correctly waits for them too. -### HEAD vs GET: the same wall lychee is at now +### HEAD vs GET linkinator uses `HEAD` for leaf links but `GET` when it needs to crawl, because **recursion needs the response body to find more links**: ```ts -response = await makeRequest(options.crawl ? 'GET' : 'HEAD', options.url.href, /* ... */); +response = await makeRequest( + options.crawl ? 'GET' : 'HEAD', + options.url.href, /* ... */ +); ``` -This is precisely [lychee's one remaining open problem](@/2026/lychee-recursion/index.md): you can only recurse into pages you fetched with a body. linkinator just always GETs when crawling; lychee plans to reuse the body it already has in cache from the check it just performed. +This is precisely [lychee's remaining open problem](@/2026/lychee-recursion/index.md#what-proper-recursion-could-look-like): you can only recurse into pages you fetched with a body. linkinator just always GETs when crawling; lychee plans to reuse the body it already has in cache from the check it just performed. ### Where the tradeoffs are -- Single-threaded is both a blessing and a ceiling. No data races, trivially correct dedup, but HTML parsing is CPU work that blocks the one event loop. For thousands of pages, you're bound by a single core. lychee's multi-threaded Tokio runtime parses and checks in parallel. +- Single-threaded is both a blessing and a ceiling. No data races, trivially correct dedup, but HTML parsing is CPU work that blocks the one event loop. For thousands of pages, you're bound by a single core. lychee's multi-threaded runtime parses and checks in parallel. - It suffers from in-memory result inflation. The source explicitly comments on "massive result inflation for heavily interlinked sites": the `results` array, `cache`, and `relationshipCache` all grow with the crawl. Fine for a docs site, heavy for a giant one. - Rate limiting is reactive, not proactive. There's a `delayCache` that backs off per host on a `429` with `Retry-After`, but no general per-host concurrency cap like lychee's `HostPool`. linkinator can hammer a host until it complains; lychee now paces *before* the complaint. - For extensibility, it's an `EventEmitter` (`on('link')`, `on('pagestart')`, and so on), so it's embeddable and scriptable, which is nice. It's a library first, like lychee. {% info(title="Takeaways: linkinator") %} -- `queue.onIdle()` is the termination story, the same quiescence detection outsourced to a queue library. -- A single-threaded event loop makes enqueue-time dedup race-free for free. This is the biggest structural reason recursion is easier in Node than in Rust. +- `queue.onIdle()` is the termination mechanism. Simple and provided by the JS runtime. +- A single-threaded event loop makes request deduplication pretty much free. This is the biggest structural reason recursion is easier in that case. - Reactive 429 backoff is not the same as proactive per-host pacing. lychee's `HostPool` aims higher, at the cost of more machinery. {% end %} -## broken-link-checker (JavaScript): event-driven, robots-aware, two queues deep +## broken-link-checker (JavaScript): event-driven, using two queues [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (BLC) takes the event-driven model furthest. It's built on [`limited-request-queue`](https://github.com/stevenvachon/limited-request-queue), a queue with `maxSockets` (concurrency) and `rateLimit`, and it nests **two** of them: a site-level queue feeding a page-level `HtmlUrlChecker`. @@ -291,24 +311,27 @@ The frontier and dedup live in `SiteChecker` (`lib/public/SiteChecker.js`). Visi ```js #enqueuePage(url, customData, auth) { - // Avoid links to self within page - this.#sitePagesChecked.set(url, PAGE_WAS_CHECKED); // mark before crawl + // Mark before crawl to avoid links to self within page. + this.#sitePagesChecked.set(url, PAGE_WAS_CHECKED); this.#htmlUrlChecker.enqueue(url, customData, auth); } ``` -Recursion is gated by a filter that decides whether a discovered link becomes a crawled page: +Recursion is goverened by a filter that decides whether a discovered link becomes a crawled page: ```js #maybeEnqueuePage(link, customData, auth) { - const tagGroup = this.#options.tags.recursive[this.#options.filterLevel][link.get(HTML_TAG_NAME)] ?? {}; + const tagGroup = this.#options.tags.recursive[ + this.#options.filterLevel + ][link.get(HTML_TAG_NAME)] ?? {}; + const attrSupported = link.get(HTML_ATTR_NAME) in tagGroup; if (!attrSupported || link.get(IS_BROKEN) || !link.get(IS_INTERNAL) || - this.#sitePagesChecked.has(rebasedURL) || // dedup check - !this.#isAllowed(link)) { // robots.txt - // do nothing + this.#sitePagesChecked.has(rebasedURL) || // dedup check + !this.#isAllowed(link)) { // robots.txt + // do nothing } else if (this.#options.includePage(rebasedURL)) { this.#enqueuePage(rebasedURL, customData, auth); } @@ -317,7 +340,7 @@ Recursion is gated by a filter that decides whether a discovered link becomes a ### Termination by event cascade -BLC has no counter and no `onIdle()`. It rides the queue's drain events. When the page-level queue empties it fires `END_EVENT`, which makes `SiteChecker` emit `SITE_EVENT` and call the site queue's `done` callback; when the *site* queue drains, it fires `REQUEST_QUEUE_END_EVENT` → the public `END_EVENT`: +BLC has no counter and no `onIdle()`. It rides the queue's drain events. When the page-level queue empties it fires `END_EVENT`, which makes `SiteChecker` emit `SITE_EVENT` and call the site queue's `done` callback; when the *site* queue drains, it fires `REQUEST_QUEUE_END_EVENT`. That's the public `END_EVENT`: ```js .on(END_EVENT, () => { @@ -326,7 +349,9 @@ BLC has no counter and no `onIdle()`. It rides the queue's drain events. When th }); ``` -It's quiescence detection again, expressed as "the request queue reported empty." The `done` callback per item is also what gates concurrency, the classic Node async-queue idiom. +That's their termination detection, expressed as "the request queue reported empty." + +And in classic Node.js fashion, the `done` callback is what actually tells the site queue to free up a slot for another site. So the termination of one site is what allows another to start, and the termination of the whole crawl is what allows the process to exit. It's a cascade of events that propagates from the page queue to the site queue to the process. ### Where the tradeoffs are @@ -337,7 +362,7 @@ It's quiescence detection again, expressed as "the request queue reported empty. {% info(title="Takeaways: broken-link-checker") %} -- Termination is a cascade of queue-drain events, not a counter, the same quiescence idea wearing a different hat. +- Termination is a cascade of queue-drain events, not a counter. Same idea, different sytnax. - Politeness is built in. robots.txt, `rateLimit`, and `maxSockets` make it the most server-friendly recursive checker by default. - Event-driven control flow is the cost. Distributing recursion logic across many handlers is exactly the kind of spread-out complexity that makes the feature hard to reason about. @@ -345,9 +370,9 @@ It's quiescence detection again, expressed as "the request queue reported empty. ## A note on markdown-link-check and the "industrial" crawlers -Our README marks [markdown-link-check](https://github.com/tcort/markdown-link-check) as supporting recursion, but it's a different animal: it recurses over *Markdown files*, not by spidering a live website. There's no HTTP frontier and no termination problem in the sense above. Worth a mention so the comparison is honest, not worth a teardown. +Our README marks [markdown-link-check](https://github.com/tcort/markdown-link-check) as supporting recursion, but there's some nuance there: it recurses over *Markdown files*, not by spidering a live website. There's no HTTP frontier and no termination problem in the sense above. Worth a mention so the comparison is honest, not worth a teardown. -If you want to see the pattern at full industrial scale, look at [Scrapy](https://www.scrapy.org/) (Python/Twisted) or [Colly](https://github.com/gocolly/colly) (Go). Both are *the same shape*: a scheduler (frontier) with a pluggable, optionally disk-backed queue, a dupefilter (often a Bloom filter rather than a `HashSet`), a bounded downloader pool, and explicit "engine idle → close spider" termination. They solve exactly the problems lychee struggled with ([distributed termination detection](https://en.wikipedia.org/wiki/Dijkstra%E2%80%93Scholten_algorithm), backpressure, dedup), just with years of dedicated crawler engineering behind them. The takeaway isn't "lychee should be Scrapy": it's that crawling is a well-trodden architecture, and lychee was simply standing on a different one. +If you want to see the pattern at full industrial scale, look at [Scrapy](https://www.scrapy.org/) (Python/Twisted) or [Colly](https://github.com/gocolly/colly) (Go). Both use the same approach: a scheduler (frontier) with a pluggable, optionally disk-backed queue, a dupefilter (often a Bloom filter rather than a `HashSet`), a bounded downloader pool, and explicit "engine idle → close spider" termination. They solve exactly the problems lychee struggled with ([distributed termination detection](https://en.wikipedia.org/wiki/Dijkstra%E2%80%93Scholten_algorithm), backpressure, dedup), just with years of dedicated crawler engineering behind them. The takeaway isn't "lychee should be Scrapy": it's that crawling is a well-trodden architecture, and lychee is simply standing on a different one right now. ## Side-by-side @@ -359,19 +384,20 @@ If you want to see the pattern at full industrial scale, look at [Scrapy](https: | **broken-link-checker** | Node, event loop | `limited-request-queue` (`maxSockets`) | nested request queues | queue-drain events | `URLCache` at enqueue | `maxSockets` + `rateLimit` | | **lychee (2026)** | Rust, Tokio | tasks + `HostPool` | channels + `WaitGroup` | `WaitGroup` | `HostPool` `active_requests` | `HostPool` per-host pool | -Read the last row against the others and the [previous post](@/2026/lychee-recursion/index.md) writes itself: lychee in 2026 finally has a column-for-column match. The `WaitGroup` is muffet's `sync.WaitGroup` and LinkChecker's `join()`. The `HostPool` is BLC's `rateLimit`/`maxSockets` and LinkChecker's `wait_for_host`. The per-URI `active_requests` mutex is everyone's enqueue-time dedup. +lychee in 2026 finally has a column-for-column match. The `WaitGroup` is muffet's `sync.WaitGroup` and LinkChecker's `join()`. The `HostPool` is BLC's `rateLimit`/`maxSockets` and LinkChecker's `wait_for_host`. The per-URI `active_requests` mutex is everyone's enqueue-time dedup. -## So Why Couldn't I Just Copy Them? +## So Why Couldn't We Just Copy Them? Three reasons, in increasing order of how much they're actually lychee's fault. -**1. They started as crawlers; lychee started as a stream.** Every tool above has a back-edge in its core data structure. lychee's core was a DAG optimized for the 99% case (a list of files/URLs, checked once, fast). Retrofitting a cycle onto a pipeline is much harder than having one from the start. This is architectural path-dependence, not a language issue. +**1. They started as crawlers; lychee started as a stream.** Every tool above has a back-edge in its core data structure. lychee's core was a DAG optimized for the 99% case (a list of files/URLs, checked once, fast). Retrofitting a cycle onto a pipeline is much harder than having one from the start. The problem is architectural in nature. -**2. The frontier and the rate-limiter must be different objects.** muffet (set + semaphore), LinkChecker (unbounded queue + thread count), linkinator (p-queue + delayCache), BLC (request queue + maxSockets) all keep "what to do next" separate from "how fast to go." lychee's early attempts tried to make one bounded channel serve both roles, and a cycle through a bounded channel deadlocks. The fix (lychee's `HostPool` plus a `WaitGroup` over an unbounded work source) is the same separation, arrived at the hard way. +**2. The frontier and the rate-limiter must be different objects.** muffet (set + semaphore), LinkChecker (unbounded queue + thread count), linkinator (p-queue + delayCache), BLC (request queue + maxSockets) all keep "what to do next" separate from "how fast to go." lychee's early attempts tried to make one bounded channel serve both roles, and a cycle through a bounded channel deadlocks. The fix (lychee's `HostPool` plus a `WaitGroup` over an unbounded work source) is the same separation we're aiming for now. -**3. Single-threaded runtimes get dedup for free; Rust does not.** Both Node tools dedup with a plain `Set` and zero locking, because the event loop serializes access. Go and Python pay a mutex. Rust pays a mutex *and* fights the borrow checker about who owns the shared state across `tokio::spawn`. That's the ~30% "Rust tax" I [estimated last time](@/2026/lychee-recursion/index.md): not the algorithm, but the friction of expressing shared mutable frontier state under `Send + 'static`. +**3. Single-threaded runtimes get dedup for free.** Both Node tools dedup with a plain `Set` and zero locking, because the event loop serializes access. Go and Python pay a mutex. Rust pays a mutex *and* fights the borrow checker about who owns the shared state across `tokio::spawn`. That's the ~30% "Rust tax" I [estimated last time](@/2026/lychee-recursion/index.md#how-much-of-this-is-rust-s-fault): not the algorithm, but the friction of expressing shared mutable frontier state under `Send + 'static`. None of this is a knock on lychee's design. A unidirectional stream is *the right call* for the common, non-recursive case: it's why lychee is fast and why the 30% channel regression from [Attempt 2](@/2026/lychee-recursion/index.md) was a dealbreaker. The other tools pay for their back-edge on every run, recursive or not. lychee refused to, and that principle is exactly why recursion took five years and why, when it lands, it won't slow down the path everyone actually uses. +I believe that we can have our cake and eat it too: a crawler architecture that supports recursion without sacrificing the speed of a one-shot pipeline. But it's a harder problem than just "copy what they do," because most link checkers didn't start with uncompromising performance as their top goal. {% info(title="Key takeaways") %} @@ -379,12 +405,10 @@ None of this is a knock on lychee's design. A unidirectional stream is *the righ - Termination is always the same idea wearing different clothes: `sync.WaitGroup` (muffet), joinable-queue counter (LinkChecker), `queue.onIdle()` (linkinator), queue-drain events (BLC), `WaitGroup` (lychee 2026). All of them are distributed termination detection. - Dedup belongs at enqueue, before the request. Marking a URL visited *after* checking it (what lychee did for four attempts) is the bug. Everyone else claims the URL the moment it enters the frontier. - Separate the frontier from the rate limiter. A bounded channel that is both your queue *and* your backpressure will deadlock the instant you add a cycle. -- Language shapes the difficulty, not the algorithm. Node's single thread makes dedup trivial; Go's goroutines and `WaitGroup` make termination trivial; Rust gives you neither for free but hands you a compiler that refuses to let the races compile. lychee just had to build the primitives first. +- There is no free lunch. Node's single thread makes dedup trivial at the cost of performance; Go's goroutines and `WaitGroup` make termination trivial at the cost of a runtime; Rust gives you neither for free but hands you a compiler that refuses to let the races compile and you can get the network card to glow if you know exactly what you are doing. {% end %} -So when someone asks "how do other link checkers do recursion?", the real answer is: they made it a load-bearing part of the architecture from the beginning, and they leaned on a runtime primitive (a `WaitGroup`, a joinable queue, an idle promise) that solved termination without anyone having to call it "distributed termination detection." - -lychee took the scenic route to the same place. But it's the same place. +So when someone asks "how do other link checkers do recursion?", the real answer is: they made it a part of the architecture from the beginning, and they leaned on a runtime (providing conveniences like a `WaitGroup`, a joinable queue, an idle promise) that solved termination without solving "distributed termination detection." -Thanks again to [NLnet](https://nlnet.nl/) for funding the work, and to the maintainers of muffet, LinkChecker, linkinator, and broken-link-checker: reading your source was the clearest tutorial on crawler architecture I could have asked for. +Thanks to the maintainers of muffet, LinkChecker, linkinator, and broken-link-checker: reading your source is the clearest way to learn about crawler architecture out there and we're all in this together, just with a different set of tradeoffs. From 9eeb85569cf2e9392035c8193d9f57dbd74ef4fc Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 13:57:12 +0200 Subject: [PATCH 06/14] wording --- .../how-other-link-checkers-recurse/index.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md index 073eadc1..923b3b17 100644 --- a/content/2026/how-other-link-checkers-recurse/index.md +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -6,19 +6,19 @@ draft=false tags=["rust", "dev", "lychee", "async"] +++ -After I published [Five Years of Trying to Add Recursion to lychee](@/2026/lychee-recursion/index.md), the most common reply I got was a very fair question: +After we published [Five Years of Trying to Add Recursion to lychee](@/2026/lychee-recursion/index.md), the most common reply we got was a very fair question: > If recursion is so hard, how do *other* link checkers do it? Plenty of them already crawl websites! -The key takeaway is: **they didn't find a clever trick we missed.** They were built as crawlers from the very first commit, and I initially built lychee as a stream. +The key takeaway is: **they didn't find a clever trick we missed.** They were built as crawlers from the very first commit, and we initially built lychee as a stream. -I went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features): [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it means for lychee. +We went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features): [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it means for lychee. If you haven't read the [first post](@/2026/lychee-recursion/index.md), the summary is that lychee was architected as a one-shot, unidirectional pipeline (`inputs → extract → check → output`). Recursion needs a *cycle* (responses create new inputs), and cycles in an async, channel-based pipeline are where the [dragons live](@/2026/lychee-recursion/index.md). 🐲 Five years and four attempts later, the pieces we'll need to do it properly only *just* landed. ## DAGs vs. cycles -Every recursive checker I looked at is built from the same three parts: +Every recursive checker we looked at is built from the same three parts: 1. A mutable work queue (let's call it "frontier"), not a fixed input stream. Discovered URLs go back into the same queue they came from. 2. A visited set that's updated at enqueue time (before the request completes), so two pages discovering the same link can't both submit it. @@ -43,7 +43,7 @@ graph TD end {% end %} -Crawlers have a back-edge baked in. Our pipeline doesn't, and every one of my failed attempts was an effort to bend that back-edge into a graph that was never designed for it. +Crawlers have a back-edge baked in. Our pipeline doesn't, and every one of our failed attempts was an effort to bend that back-edge into a graph that was never designed for it. Let's look at that graph design more closely: @@ -117,12 +117,12 @@ func (m daemonManager) Run() { Every scheduled page increments the group; every completed page decrements it; `Wait()` returns when the count hits zero. The whole crawl bootstraps with a single `addPage` before `Run()`, so the counter is positive before anyone waits on it. -This is the *same counter* I tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this invariant so naturally that it doesn't feel like distributed termination detection at all, but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). +This is the *same counter* we tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this invariant so naturally that it doesn't feel like distributed termination detection at all, but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). ### Where the tradeoffs are - Concurrency isn't bounded by the daemon manager. `Run()` does `go f()` for every task, spawning unbounded goroutines. The actual limiting happens downstream in a `semaphore` (a buffered-channel counting semaphore) and a per-host throttler pool. muffet *separates* "the frontier" from "the rate limiter," which is exactly the separation lychee lacked when it tried to use one bounded channel as both in the past. -- Cheap goroutines do a lot of heavy lifting. Spawning a goroutine per link is "fine" in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed me toward `Arc>` and the ownership pain I [wrote about](@/2026/lychee-recursion/index.md#attempt-3-semaphores-february-2022). +- Cheap goroutines do a lot of heavy lifting. Spawning a goroutine per link is "fine" in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed us toward `Arc>` and the ownership pain we [wrote about](@/2026/lychee-recursion/index.md#attempt-3-semaphores-february-2022). - On extensibility, muffet is a focused CLI, not a library. There's no plugin surface; you get what the flags give you. lychee deliberately ships `lychee-lib` as a reusable crate, which raises the bar, since every architectural choice has to uphold the standards of a public API. - On scalability, unbounded goroutines plus an in-memory visited set scale comfortably to large sites, but there's no disk-backed frontier, so a truly enormous crawl is bounded by RAM. Same as lychee. @@ -149,7 +149,7 @@ def __init__(self, max_allowed_urls=None): self.unfinished_tasks = 0 ``` -It's explicit about the exact deadlock that bit me. +It's explicit about the exact deadlock that bit us. That comment is *our [Attempt 4 backpressure deadlock](@/2026/lychee-recursion/index.md#attempt-4-gwenn-takes-a-swing-january-march-2025)*, called out and designed around. lychee tried to push discovered URLs into a **bounded** channel; when it filled, the response handler blocked, no responses drained, no slots freed. Deadlock. 💥 @@ -317,7 +317,7 @@ The frontier and dedup live in `SiteChecker` (`lib/public/SiteChecker.js`). Visi } ``` -Recursion is goverened by a filter that decides whether a discovered link becomes a crawled page: +Recursion is governed by a filter that decides whether a discovered link becomes a crawled page: ```js #maybeEnqueuePage(link, customData, auth) { @@ -356,13 +356,13 @@ And in classic Node.js fashion, the `done` callback is what actually tells the s ### Where the tradeoffs are - It's the best web citizen of the bunch. robots.txt is honored (`getRobotsTxt`, `isAllowed`), `rel=nofollow` is respected, and `rateLimit` plus `maxSockets` are first-class. This is a crawler that's polite by default. -- Event cascades are powerful but fiddly. Termination is spread across half a dozen event handlers and two nested queues. It works, but the control flow is much harder to follow than `await queue.onIdle()`. This is the JS cousin of the "leaky abstraction" problem I described, where recursion-awareness ends up sprinkled across many handlers. +- Event cascades are powerful but fiddly. Termination is spread across half a dozen event handlers and two nested queues. It works, but the control flow is much harder to follow than `await queue.onIdle()`. This is the JS cousin of the "leaky abstraction" problem we described, where recursion-awareness ends up sprinkled across many handlers. - It's single-threaded, the same ceiling as linkinator, plus the in-memory `URLCache` per site. - On maturity versus momentum, it's very widely used (it powers a lot of tooling), but development has slowed. The architecture is still sound and worth studying. {% info(title="Takeaways: broken-link-checker") %} -- Termination is a cascade of queue-drain events, not a counter. Same idea, different sytnax. +- Termination is a cascade of queue-drain events, not a counter. Same idea, different syntax. - Politeness is built in. robots.txt, `rateLimit`, and `maxSockets` make it the most server-friendly recursive checker by default. - Event-driven control flow is the cost. Distributing recursion logic across many handlers is exactly the kind of spread-out complexity that makes the feature hard to reason about. @@ -394,10 +394,10 @@ Three reasons, in increasing order of how much they're actually lychee's fault. **2. The frontier and the rate-limiter must be different objects.** muffet (set + semaphore), LinkChecker (unbounded queue + thread count), linkinator (p-queue + delayCache), BLC (request queue + maxSockets) all keep "what to do next" separate from "how fast to go." lychee's early attempts tried to make one bounded channel serve both roles, and a cycle through a bounded channel deadlocks. The fix (lychee's `HostPool` plus a `WaitGroup` over an unbounded work source) is the same separation we're aiming for now. -**3. Single-threaded runtimes get dedup for free.** Both Node tools dedup with a plain `Set` and zero locking, because the event loop serializes access. Go and Python pay a mutex. Rust pays a mutex *and* fights the borrow checker about who owns the shared state across `tokio::spawn`. That's the ~30% "Rust tax" I [estimated last time](@/2026/lychee-recursion/index.md#how-much-of-this-is-rust-s-fault): not the algorithm, but the friction of expressing shared mutable frontier state under `Send + 'static`. +**3. Single-threaded runtimes get dedup for free.** Both Node tools dedup with a plain `Set` and zero locking, because the event loop serializes access. Go and Python pay a mutex. Rust pays a mutex *and* fights the borrow checker about who owns the shared state across `tokio::spawn`. That's the ~30% "Rust tax" we [estimated last time](@/2026/lychee-recursion/index.md#how-much-of-this-is-rust-s-fault): not the algorithm, but the friction of expressing shared mutable frontier state under `Send + 'static`. None of this is a knock on lychee's design. A unidirectional stream is *the right call* for the common, non-recursive case: it's why lychee is fast and why the 30% channel regression from [Attempt 2](@/2026/lychee-recursion/index.md) was a dealbreaker. The other tools pay for their back-edge on every run, recursive or not. lychee refused to, and that principle is exactly why recursion took five years and why, when it lands, it won't slow down the path everyone actually uses. -I believe that we can have our cake and eat it too: a crawler architecture that supports recursion without sacrificing the speed of a one-shot pipeline. But it's a harder problem than just "copy what they do," because most link checkers didn't start with uncompromising performance as their top goal. +We believe that we can have our cake and eat it too: a crawler architecture that supports recursion without sacrificing the speed of a one-shot pipeline. But it's a harder problem than just "copy what they do," because most link checkers didn't start with uncompromising performance as their top goal. {% info(title="Key takeaways") %} From cb2b1c4fd8be98f1195c2acb56360863543c8256 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 15:31:18 +0200 Subject: [PATCH 07/14] wording; table --- .../how-other-link-checkers-recurse/index.md | 34 ++++++++++++------- static/css/main.css | 17 ++++++++++ templates/shortcodes/wide_table.html | 5 +++ 3 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 templates/shortcodes/wide_table.html diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md index 923b3b17..6536901b 100644 --- a/content/2026/how-other-link-checkers-recurse/index.md +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -6,19 +6,19 @@ draft=false tags=["rust", "dev", "lychee", "async"] +++ -After we published [Five Years of Trying to Add Recursion to lychee](@/2026/lychee-recursion/index.md), the most common reply we got was a very fair question: +After I published [Five Years of Trying to Add Recursion to lychee](@/2026/lychee-recursion/index.md), the most common reply I got was a very fair question: > If recursion is so hard, how do *other* link checkers do it? Plenty of them already crawl websites! -The key takeaway is: **they didn't find a clever trick we missed.** They were built as crawlers from the very first commit, and we initially built lychee as a stream. +The key takeaway is: **they didn't find a clever trick we missed.** They were built as crawlers from the very first commit, and I initially built lychee as a stream. -We went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features): [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it means for lychee. +I went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features): [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it means for lychee. If you haven't read the [first post](@/2026/lychee-recursion/index.md), the summary is that lychee was architected as a one-shot, unidirectional pipeline (`inputs → extract → check → output`). Recursion needs a *cycle* (responses create new inputs), and cycles in an async, channel-based pipeline are where the [dragons live](@/2026/lychee-recursion/index.md). 🐲 Five years and four attempts later, the pieces we'll need to do it properly only *just* landed. ## DAGs vs. cycles -Every recursive checker we looked at is built from the same three parts: +Every recursive checker I looked at is built from the same three parts: 1. A mutable work queue (let's call it "frontier"), not a fixed input stream. Discovered URLs go back into the same queue they came from. 2. A visited set that's updated at enqueue time (before the request completes), so two pages discovering the same link can't both submit it. @@ -43,7 +43,7 @@ graph TD end {% end %} -Crawlers have a back-edge baked in. Our pipeline doesn't, and every one of our failed attempts was an effort to bend that back-edge into a graph that was never designed for it. +Crawlers have a back-edge baked in. Our pipeline doesn't, and every one of my failed attempts was an effort to bend that back-edge into a graph that was never designed for it. Let's look at that graph design more closely: @@ -117,12 +117,12 @@ func (m daemonManager) Run() { Every scheduled page increments the group; every completed page decrements it; `Wait()` returns when the count hits zero. The whole crawl bootstraps with a single `addPage` before `Run()`, so the counter is positive before anyone waits on it. -This is the *same counter* we tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this invariant so naturally that it doesn't feel like distributed termination detection at all, but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). +This is the *same counter* I tried (and failed with) in [Attempt 1](@/2026/lychee-recursion/index.md) and [Attempt 4](@/2026/lychee-recursion/index.md). The difference is the invariant: `waitGroup.Add(1)` is only ever called from inside an already-running daemon that holds the count above zero (or from the bootstrap). There is no window where the counter briefly reads zero while work is still pending. Go's `WaitGroup` enforces this invariant so naturally that it doesn't feel like distributed termination detection at all, but that's exactly what it is. It's the moral equivalent of the `WaitGroup` primitive [Kait contributed to lychee in 2026](https://github.com/lycheeverse/lychee/pull/2046). ### Where the tradeoffs are - Concurrency isn't bounded by the daemon manager. `Run()` does `go f()` for every task, spawning unbounded goroutines. The actual limiting happens downstream in a `semaphore` (a buffered-channel counting semaphore) and a per-host throttler pool. muffet *separates* "the frontier" from "the rate limiter," which is exactly the separation lychee lacked when it tried to use one bounded channel as both in the past. -- Cheap goroutines do a lot of heavy lifting. Spawning a goroutine per link is "fine" in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed us toward `Arc>` and the ownership pain we [wrote about](@/2026/lychee-recursion/index.md#attempt-3-semaphores-february-2022). +- Cheap goroutines do a lot of heavy lifting. Spawning a goroutine per link is "fine" in Go. The equivalent in Rust (`tokio::spawn` per link, each needing `Send + 'static` state) is what pushed me toward `Arc>` and the ownership pain I [wrote about](@/2026/lychee-recursion/index.md#attempt-3-semaphores-february-2022). - On extensibility, muffet is a focused CLI, not a library. There's no plugin surface; you get what the flags give you. lychee deliberately ships `lychee-lib` as a reusable crate, which raises the bar, since every architectural choice has to uphold the standards of a public API. - On scalability, unbounded goroutines plus an in-memory visited set scale comfortably to large sites, but there's no disk-backed frontier, so a truly enormous crawl is bounded by RAM. Same as lychee. @@ -149,7 +149,7 @@ def __init__(self, max_allowed_urls=None): self.unfinished_tasks = 0 ``` -It's explicit about the exact deadlock that bit us. +It's explicit about the exact deadlock that bit me. That comment is *our [Attempt 4 backpressure deadlock](@/2026/lychee-recursion/index.md#attempt-4-gwenn-takes-a-swing-january-march-2025)*, called out and designed around. lychee tried to push discovered URLs into a **bounded** channel; when it filled, the response handler blocked, no responses drained, no slots freed. Deadlock. 💥 @@ -356,7 +356,7 @@ And in classic Node.js fashion, the `done` callback is what actually tells the s ### Where the tradeoffs are - It's the best web citizen of the bunch. robots.txt is honored (`getRobotsTxt`, `isAllowed`), `rel=nofollow` is respected, and `rateLimit` plus `maxSockets` are first-class. This is a crawler that's polite by default. -- Event cascades are powerful but fiddly. Termination is spread across half a dozen event handlers and two nested queues. It works, but the control flow is much harder to follow than `await queue.onIdle()`. This is the JS cousin of the "leaky abstraction" problem we described, where recursion-awareness ends up sprinkled across many handlers. +- Event cascades are powerful but fiddly. Termination is spread across half a dozen event handlers and two nested queues. It works, but the control flow is much harder to follow than `await queue.onIdle()`. This is the JS cousin of the "leaky abstraction" problem I described, where recursion-awareness ends up sprinkled across many handlers. - It's single-threaded, the same ceiling as linkinator, plus the in-memory `URLCache` per site. - On maturity versus momentum, it's very widely used (it powers a lot of tooling), but development has slowed. The architecture is still sound and worth studying. @@ -376,6 +376,7 @@ If you want to see the pattern at full industrial scale, look at [Scrapy](https: ## Side-by-side +{% wide_table() %} | Tool | Lang / runtime | Concurrency model | Frontier | "Done?" signal | Dedup point | Per-host limiting | | --- | --- | --- | --- | --- | --- | --- | | **muffet** | Go, goroutines | goroutine pool + semaphore + host throttler | mutex-guarded set + daemon channel | `sync.WaitGroup` | visited set at enqueue | host throttler pool | @@ -383,6 +384,7 @@ If you want to see the pattern at full industrial scale, look at [Scrapy](https: | **linkinator** | Node, event loop | single-thread + p-queue (`concurrency`) | p-queue | `queue.onIdle()` | `Set` at enqueue (race-free) | reactive `429` `delayCache` | | **broken-link-checker** | Node, event loop | `limited-request-queue` (`maxSockets`) | nested request queues | queue-drain events | `URLCache` at enqueue | `maxSockets` + `rateLimit` | | **lychee (2026)** | Rust, Tokio | tasks + `HostPool` | channels + `WaitGroup` | `WaitGroup` | `HostPool` `active_requests` | `HostPool` per-host pool | +{% end %} lychee in 2026 finally has a column-for-column match. The `WaitGroup` is muffet's `sync.WaitGroup` and LinkChecker's `join()`. The `HostPool` is BLC's `rateLimit`/`maxSockets` and LinkChecker's `wait_for_host`. The per-URI `active_requests` mutex is everyone's enqueue-time dedup. @@ -390,14 +392,20 @@ lychee in 2026 finally has a column-for-column match. The `WaitGroup` is muffet' Three reasons, in increasing order of how much they're actually lychee's fault. -**1. They started as crawlers; lychee started as a stream.** Every tool above has a back-edge in its core data structure. lychee's core was a DAG optimized for the 99% case (a list of files/URLs, checked once, fast). Retrofitting a cycle onto a pipeline is much harder than having one from the start. The problem is architectural in nature. +**They started as crawlers; lychee started as a stream.** + +Every tool above has a back-edge in its core data structure. lychee's core was a DAG optimized for the 99% case (a list of files/URLs, checked once, fast). Retrofitting a cycle onto a pipeline is much harder than having one from the start. The problem is architectural in nature. + +**The frontier and the rate-limiter must be different objects.** + +muffet (set + semaphore), LinkChecker (unbounded queue + thread count), linkinator (p-queue + delayCache), BLC (request queue + maxSockets) all keep "what to do next" separate from "how fast to go." lychee's early attempts tried to make one bounded channel serve both roles, and a cycle through a bounded channel deadlocks. The fix (lychee's `HostPool` plus a `WaitGroup` over an unbounded work source) is the same separation we're aiming for now. -**2. The frontier and the rate-limiter must be different objects.** muffet (set + semaphore), LinkChecker (unbounded queue + thread count), linkinator (p-queue + delayCache), BLC (request queue + maxSockets) all keep "what to do next" separate from "how fast to go." lychee's early attempts tried to make one bounded channel serve both roles, and a cycle through a bounded channel deadlocks. The fix (lychee's `HostPool` plus a `WaitGroup` over an unbounded work source) is the same separation we're aiming for now. +**Single-threaded runtimes get dedup for free.** -**3. Single-threaded runtimes get dedup for free.** Both Node tools dedup with a plain `Set` and zero locking, because the event loop serializes access. Go and Python pay a mutex. Rust pays a mutex *and* fights the borrow checker about who owns the shared state across `tokio::spawn`. That's the ~30% "Rust tax" we [estimated last time](@/2026/lychee-recursion/index.md#how-much-of-this-is-rust-s-fault): not the algorithm, but the friction of expressing shared mutable frontier state under `Send + 'static`. +Both Node tools dedup with a plain `Set` and zero locking, because the event loop serializes access. Go and Python pay a mutex. Rust pays a mutex *and* fights the borrow checker about who owns the shared state across `tokio::spawn`. That's the ~30% "Rust tax" I [estimated last time](@/2026/lychee-recursion/index.md#how-much-of-this-is-rust-s-fault): not the algorithm, but the friction of expressing shared mutable frontier state under `Send + 'static`. None of this is a knock on lychee's design. A unidirectional stream is *the right call* for the common, non-recursive case: it's why lychee is fast and why the 30% channel regression from [Attempt 2](@/2026/lychee-recursion/index.md) was a dealbreaker. The other tools pay for their back-edge on every run, recursive or not. lychee refused to, and that principle is exactly why recursion took five years and why, when it lands, it won't slow down the path everyone actually uses. -We believe that we can have our cake and eat it too: a crawler architecture that supports recursion without sacrificing the speed of a one-shot pipeline. But it's a harder problem than just "copy what they do," because most link checkers didn't start with uncompromising performance as their top goal. +I believe that we can have our cake and eat it too: a crawler architecture that supports recursion without sacrificing the speed of a one-shot pipeline. But it's a harder problem than just "copy what they do," because most link checkers didn't start with uncompromising performance as their top goal. {% info(title="Key takeaways") %} diff --git a/static/css/main.css b/static/css/main.css index 8a521aff..73a01675 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -584,6 +584,23 @@ th { font-weight: 600; } +/* Wide tables: break out of the narrow reading column and scroll + horizontally on small screens. Apply via the `wide_table` shortcode. */ +.wide-table { + width: 92vw; + max-width: 1000px; + position: relative; + left: 50%; + transform: translateX(-50%); + overflow-x: auto; + margin: 24px 0; +} + +.wide-table table { + margin: 0; + min-width: 640px; +} + /* Homepage styles */ .homepage h1 { font-size: 1.5em; diff --git a/templates/shortcodes/wide_table.html b/templates/shortcodes/wide_table.html new file mode 100644 index 00000000..c773fcd9 --- /dev/null +++ b/templates/shortcodes/wide_table.html @@ -0,0 +1,5 @@ +
    + +{{ body | markdown() | safe }} + +
    From 077b4386c350b60941ae85c1b2bd6cad060d75de Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 15:43:17 +0200 Subject: [PATCH 08/14] fix table css --- static/css/main.css | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/static/css/main.css b/static/css/main.css index 73a01675..99dc0ce5 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -587,8 +587,8 @@ th { /* Wide tables: break out of the narrow reading column and scroll horizontally on small screens. Apply via the `wide_table` shortcode. */ .wide-table { - width: 92vw; - max-width: 1000px; + width: 94vw; + max-width: 1200px; position: relative; left: 50%; transform: translateX(-50%); @@ -597,8 +597,37 @@ th { } .wide-table table { + width: auto; + min-width: 100%; + max-width: none; margin: 0; - min-width: 640px; + font-size: 0.82em; +} + +/* Keep cells readable: wrap at spaces only, never split words or inline + code mid-token (`main article` sets `overflow-wrap: anywhere`). The + table widens to fit its content and scrolls horizontally if needed. */ +.wide-table th, +.wide-table td { + overflow-wrap: normal; + word-break: normal; + hyphens: none; +} + +.wide-table code { + white-space: nowrap; +} + +/* On small screens the reading column is already near full width, so the + breakout is unnecessary and its transform can push the page wider than + the viewport. Keep the table inside the column and scroll it instead. */ +@media (max-width: 920px) { + .wide-table { + width: 100%; + max-width: 100%; + left: auto; + transform: none; + } } /* Homepage styles */ From ddd0603f9cef4b9a3579bbcfd5cbac6eecae8dae Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 16:01:33 +0200 Subject: [PATCH 09/14] so many mermaid changes --- static/fonts/xkcd.otf | Bin 0 -> 114832 bytes static/js/mermaid-init.js | 158 +++++++++++++++++++++++++------------- templates/index.html | 29 +++++++ 3 files changed, 134 insertions(+), 53 deletions(-) create mode 100644 static/fonts/xkcd.otf diff --git a/static/fonts/xkcd.otf b/static/fonts/xkcd.otf new file mode 100644 index 0000000000000000000000000000000000000000..c080ef3f44891f3391b413c0efc61bbc43c9336f GIT binary patch literal 114832 zcmd44d4OF-nf`w+WH|(A)*Aw0X#&WmEba=9;(|H@!zkV`j^mdl28baEA?YMd2u)}@ zo!cj!rfDuAgb+i-m~Ii#QO2*^;PQ3&siQNfxUeGv0o9 zs_Im|^)Ao*R-HQMp7p->ot5pLU6t*co%FWTPj5YT`H|OVS>BpeKDXrb)8BXIiho(~ z>a6nRf6lV(;CH_L9j9kUXKh^H$n~LToqggfubQynoGh!fa(&*cdFNj`bo_%IW|2G(K_9xqF@Z`)v0K zD$l-uZ}CF;xA~Jle0|rGChW>}p6#Mi{^Onr?`?Kv*{&xxf71N7T~BgPQ5WfgEQ1cx zY}Z{TRIbe?k~`*4{{8FtTgZ!^(f{5$=durFZ^^P5=XtCTO?Yp%y!Fjl^P!jM^xa&w z@=te6t+b5Zc~W*k%2%=p*~XOLC7YamI^}oG4#>8r{Df?e%E2i=F*~}_p7N6@|3b=7 z&Q99pxRjql{!1ypXEuG;m!*75cF?ZN(16N>-Js_@{vY`YJR3;)U9y(!)|B5hJ0bhO zDL)~bR@o)xCuVb#$JXJ@C3 z-u#L`zVGA{PCDtNQ~vJ#?>+kz_4|s^e#+tgEcBvEShu42@5W}=tO!13-q7xQ~xi~=KHc*Ur)${@5e#m zglr1AJ+pJO%d;!8t=YEhli8=T&t+f9?%U=6weH_KqxEHn&zQ0AjN@mV*KE>KZCkOT zKW)3;AGNJCf8Ttp`DpWz=3ULtH9y_Fv-yeUN1MGbZF>0Zhfja_Z4bTc!S_FS+Jk#0 zG;`PgbyAu1M}S>=hjF*=I$`3Z$@y+mcHd*qmc91gXW#wyuTDK++JOg6KlqSC4{JSq z#t}yz^|GUnIrg~YU;c^{PCV)4SH9}iuX*k3UjK$So^tA&{_4$dISo9+Wxn%W@BZt* zIpfT~J?rn@^WL-HSDSgx-@pGKKJbs(2gi-`7qjPQ+5frtg6zC=Kb&Rr#<#k}7qiNu zIgz>WqO#yW`#XDlrKHM#%|HBk?%{?eWR*%~&z;~0#IIy$jkIPXhgU{s>@sr1t|Qe6 z^*wf7v&V!(r)0Y=nR#MSjAr(jJbTCYp8xs_>n0uo$M@cgG|To@{@Hz$pK%Dm#%uP? zc2lR5vZ>jj*~?JPzs;`9da|`A%x}BolKBhf&pZFJxpU@UblL31ZI{iTGk@{yi!M8# z^2M_kww-^;31mJr`@(Zy`Cs7I{}lblPg;4Xt#nsbL#JHc1j2$zxaNzq-BA7AvprDg zmTa$V?`)rJ-)z5Z|E$Vv4#=iu2WAIl(=nbynA>3}{o&b+?1=2h>?me>G^Twl26TM( z^6V9u=84AbSK{biZESvB_WJA%nDZ&wso9&dzslZBP$5V8_Us)1!aK8f0V02${SDA? zCOkU}=kp#rpZ8_8Y-V;&_V+lWf5<+7zFn9NX18UV0fFV&$KmdRtPU)+XX~?%RqB`hiLxePpKTTsdD(KeEPY+ z{_?M@ty6Zq@cbLAhfisF@pt;)4$>38va#B1K3}Ufn#~snhnm@x!J(p=?Ov;q?pmt> zkVKmKQ zk-?!Gn$2Gi4)!&h+jXltZ0;xrY3`tTchPMAO2y9)4qe%7{+7z-@0I*cg~O2>*VW|dkkZ#I8PX*NMke_NY55cg|t`Ln}6sGdF9w=HTmUt)I6r`>~+ zUknb_(^xO*-se^Q(r7ig?$yC9vn;Cqpq8fM4{F)0&7_aG{tGqrLM=QN?eaQP@o>J$ z!?{mMB|3W19S;tPM=^ErLtO4^W_zj<4#Q`)%XSxU#Q7w*_pAQJ!NEt}s+qlye(tU} zv)5YEuN@r9izJb(RX4%FX4dLX#6ZbvAeF*E=hm&Igh~Vt4gJk*@4-P7M6C}}A{ktd z8thLmH?B4@U5MTS-=$W&Iw`u8v8d|2Z-_>T)8g{_a zZ;_tE-)}RgX44J7Lzihz&HqPn%Z@K^ANfkPJs6poXSzhVqzW4)$82A7U_b6}K%Ppb zD6uI_5#gA^Hm0VTAFS(K$#k`Gj{dk&!m&-|8;bs7qPbQm)tq#LbyTwxCxhsy-Jy;d z!%~BJFss*kT`bL4Plo5jPG=Q93vjrJbn`OIHs4Ckk;{zN}~mB%3dI3fSeE zgi1IRv|J|TNFeZn`|<4DJFseY*<)~ssAhjn zi%4dx`yln5Xcnkvgkp*tf_Nb!IrZFP%_DWq`cw)A6!6SF&^x(NYycrfOHvD3=X2`J zJiPnwq+IG;*Y4K1SSVGE#y0m*CAev%;JRmwlcS}z8l{QT5 zHjsCOZHUoK#-i9?RA>~jp}2OuaXDJBne8IJP7n)WX?O{kNlKhdatRT%FraTSbetuys&c=xdWAIf?7nF{1sj zG}(0b_ftf;8nTpUl9|jzbpV}w9fp!qXKzrQL4L7%MPv@_+|E7u&UOGT=R>fw}*3N|6D2gL)M(&z?rA6;>&wQ%*if*#JFH z*&LXtmZKag`4SvcdoZu;D)DI$__Or>gjWzz@{*i7hQIwqNbuSo*Vg|$*ZRUQ{Y8$| z;a15bc#=2;3(P6_up<9+tSZ$URjk!IVU?mjDZ02f4259`l;&R`_zdRkWBn5O1awv` z&4Cy>DfB+N8Da?gM3Q1PG(jwp>Jy339oK3_s2S!eI`d9NBZv@68N0LVzw+wTGXZ(& zRGO*nmZTI1(yp0Bda(3Q zaFHFR8Hj^24(fM>FQG&hzsAz6srhrUsWc(_nOK_{vQNF4Q|?zi;(X{|sA0B?X>K1K1&F1!UTrV4SUz_PzQV_Bj25ohQN)|s} zM27RwjewguLzrM*D&!zHcvZSaw1A%3BP=0@fMp0OL;nR9!LzZ@6;2>RPxuhRVLG$} znW3)9;Vq4Wts2^Zbg23h%!ZDNlF~dh?VxPLl-6opMZRO=@J-blCMUYoxjezz!faj9 zN%-|^3?!{u0ShrwjR+tZf`Eclpb|>6LsRnPDI;>?hOlOGNXj#G*;uZnHWLE(Q=c-W zG!5ee9W@{X8_BPo%(^HXpw>mfMKG0WIXBgStmds&jiWj0cPnWU9_0fuRS810VQDl$ ztMcLNcU)KXjhl)H!q-uw&O&eV(Qc4Qcz!b+WW--<&XKr~WLzQrP_NXanP(FDnx2Vp z&qTY%Vy0ysYY#ri_;ed)wOxtYHXkwTNl}bi?V{ugen_`~gLTsqa@(C;aZl-{1v2WZ z6P=eXSi#1*ZE3Q4>ViD<8=)LPiI-@?IdUw%Sd>YMQEJ5Ab8xT>Hq4JOb+y6BnZ67j zr7+_wbQ4pDR|S@9HrOuA26+*YMUB_T3=j)9qV`lgIC!n|$kMkMHJ+D)4!xs`2rjO= z77YUw@}q~>RFjy{^kQuqRaK42>}?o0*btIc!2#IN+to`s#46QHnAk!Ka(*$_S99Uf zqvd3@uFJ148d`dXE$JRbe=%!~I=;pO!jIk}|EOZgu`qA%QrwwchPiVv{1fboKny1T z?TeqO0?mdqJGfy%oFNLiqYR|1H37b^RE)i%16~H%joB8Bsbe`Qhhmd13@Q{sy!d@g zaVAh;#qxRzw&Q1-8dWVtSsspZj10pA;{ym?`lEiVm8O_syI007MMtr+uagklI!}ly zK$v+;f|qH!@B5m$6tH<;t@e@Gc01_9PgH!MZqV8=o2oq;GpGngQLx?AIUH=HVJXEwQ@W~w1{k$4i0i|f1bEv47{()4tF2-ZOgFG>{hC0N zjgTTy2AX)c0(Ld>p~;1iOB4~Z26u&Nb8IiRcItnodV?gnO`w5@pQ`o>XCj!j;Fu7E z?kVk&B4~o$#MPdnmjTvd!YjhF>akUfYfHPJm_Lada}SM;sp!xsWHxc#C*kZjz+=xN1$z zLx>2M?9D%KP&p>^2Hm)vJ3>vE(UYE+jn1Co_cB-+yrR0aFp$y3l7n67(#S!ULeWFn zDlm;G6qXa70>9kWpDz!e8myBluVPTxs(W#4vERy07XntQk=V|m4S{Verb2*+1`UH- z(}odv7dvnS(@^{rmom8pNd+I)wN>IV##)%u;ZJmjx3gf9x0Mz&o6deuHTQ~<52&wi zs(L$8Z5f_5eEIVqtcJD(w!xZJY?(0oNE4raqZ?&p3VXo4XK|n~w>A@4gMvV@o=(Vs z)kQnpA#`d4euzY;7^v8o{c?%e){Q0t>Az zHAx~oH-m##4koQR!$Et6Csb_=xBtNmwAes5isdHravLr31~lj06tT5o#7l`JLhPy` zpkjKOxXdQ+gDKoYyk{>Q9I^Sx!HWaeU!S%#l-qiZ;r?`RHJt4VR5R{i~Ij#|t{$ij=z6Z3N?|UU7pNF<{r@sxs~jZdrN`_ z`S2qn`&4ZP(Bg1c4l%ggr1PGhiGisq>ah=Sts`FbYDM%ts1OvDLRy{Lsx+_n^c2O~ zo;CDEH`b9DE%XF%W%R>9G+ZqZFt9u#$+cI~Aru!(N%w{R(_>hX{A?Q=Tu-UWGXihN z=dh2<0Sc;!RluQlpYv7&&?%8(PWo5GYBp5tmZ`Iy41onTf)P|SDIDS_?7_V7ToWCo%TU(glc|9b`_MAn zvz2Ez>5VZ7z1nO&BcEsH&=56V4r^I^WDtjKCf1Hem!9O&)(z^)wM~l%Q%X2hED2 zWQ&Z%WJx_y0yOHNHD3cBfhLwc{PPa7)qo`5{?f;*7umy>AVF`<2jFyf3NRFA032a~ zUMT%-{vBf8&uZQ%Xo z;NYU9>k z1zy_gO0A_LaPgR?8b0>p6C^I1ZREhlfzqpchR8YjZWi0CLbpW~O9astONc+n#N86% z^|Is^zA1&z>5(~EY}8Aj(wb3sq=%!yoQjPFJVeEmmfKcD5YU5ZI;7iIQ;S_rw%YJ& zLMa(@zN0d-u)4B-Rc8ltmsUuWu*y%l=%JmJsnjO8$s@)D?Ji?9su>ykDUyqZdZua{ zG!q;JJ4a;9(|swu#$a-SjWC^5I0$E`YK+mBbQV7kzas_slE%n%G-HmH3>2O!7ziuz zpak+M!OtdCVUP`Q%wVN8Ks>ZZi5gZo*8rv3=@QGY)d&WqLnMwS%@J>0(7$$V;Eq!nu=)|VJg<@Wy!0Mz8ZbxL z9;Gz0H`BbkyT^Ij)Pl--J-_CfiFh$-Y^b~Y#o4e3D^u9w1vJ-|O5V1S-k=bgOUG-*hBNHaGdf1w)D%0hr~%{$5pJ<4Ta!%Fj) z*jtWyn08hHNXtC&I*}awpmbnGBTfRy@c@QwTqHS9SLduRY^^J|CVm{EQVA~3eZant zHQa(!cLe%RgF30~X7+ZYe`eY>uoT7zfiWQ=$WHKH4FO z4KyRg?3vMeu+!FWcG&v8p&^J#psIO?ZTnafh}8#%I=DcE4>Hyq?x)JrN*l-0ZQ?@6 zF!5g@f0G}gH-e!A151;)*bc?B(99p!Y8~DT117vD)_itw=;CJc33}2FWSurBvQlfZ z($!prwvWHcJG(GYG1In!T~M10BJ70CJtn}!Nu>yC+~A1@yi99z=VTI`VIf*|#3%z8 z&|V%(QKe#aIFB(0hwQsR>{4UcjP<&Qp$JG*szJ~&^i0^acJ=uEa=2?Sbz;d_QSnYU z5f~oGtr5IBr`4Cjl>VJ!Bt<|>XmE4#8CEyTqg<`^A|(xw08~nN+6EbD_Lq7_Q&;+CHY?NV( z?$vR@uq6?)u5+T93G<|aVkW3V$GB#P84d_oP$YlJ$jAgDXoY+V?OQ;6j|s0EA?d|L znmVQ(3YE9Kc=oqPK3(<1=|VG>)-o_gQfD}00#QT)D-Q$XZUQ8AT?d5Rlp)f)d z&H(=N@S<6;>t2ezLTdg*QaDxv()TyZlqWp@YL9bI@I4-)I*@G@^E0@VSQ^Y794ZgX zq3|{XZ{(UWKug~}2@Frsz_^%Z_Id|N4*bb}PQf?>|}`_^W%Pyj(A{fNzH zV;>^$NcJAyUV*DH9PQFRww1xa1sBWZfo)!!AkvKXyy$>Cn!F#zN;hQ|#1@XC9R;GC zwhc_fR+SPW-nh1bxsV)%wn-P32@0$jK>wL4Qq)*yzGUCAHK8Z$aT1U5=A`i-P_-YV z{7lszFwMnu%H=HK4 zqrQQYmKjT`jc%S&A@>1hZN+e0C8=uJM-;|X@_H|h$+Nez_(Xz?T4k`0Ztz1dp$>-b z0QQRN5g#!fwtC%4TmXMbWywN3m~A2qzXFsd3bGzvgIf6-MQdbkyb*uk>4G1y13X#N zUuezcV^IzTOtERlh0tpp6`)5V!*MaBM!*+B5113Fg3sDaOozL%GFuf>j{@_)yD!2T zxXFa{*1)qOA7j==8S*gUkE_g%)43@!j7L>#(jKyNy~n%lU-QB6FEQM*$@SADIjH)a zdb6J1rAski4;_+)d8YtvMS&r_9lzqHwnG#i%ei*=+t2S(wUCQ2Re3lFM_O7Pd!IfT zG`&iYLb;-j8DP_j1Np-RB1|1vhNdKt0@3uL4AMqhp7v#wV~z;MW%*Gq2$gDuz(8 zPI1s`fn!m)lcud4otZM1l{pwzQH|~yW0JTs)RTBr?^*3CIS8}SkO*tN{{v-RlgDl) zClYv@Bc>ULv+TIMqV|@C26qT2M%XwIaJW4HD(_~dHW(Y8=jD@7Y8*2*^`5&8P|twE z09_{fq}M%4sS(kk=j70Ho3aBz*O(uw=^@VMUgYQ=EVn-l4zgzTHPrBe2zo=?(4Lff zO`(Z+HYD)Nud{fbE_9B>HPN!JNB)kiT!|2aQma}p8rkf8Lh_^#RutWwR0HMj&Aa>Y5atLB z)?8GNxWU;-t!Q34d)%NIfKL)p>?el{v}3y1v!Bd39yuOKPxg!&ZB(LK}3xV#?D;D@{+|fx$ zfHZg?m70{N>#@yds~%-V-q$;k4uUF?<{IuUJOC*QimKChH3M*@ciQeY2FH82J|!ga6H1m&6yazVE_ zZEkQkoany1VGa^YLB>FLs6Cyr;waK&EgBPvK0>|;lxTuV!XTWVCyKiJ1hMLTg4jo= zN;iPRKW=2N;T_e*_y(F5I1D=)-wQ3N7jiJtqrk&@7d$Xm$Jpq>&0i;DLA`Gh6&?V& z5Hfq^A2etPh2*1J82V&S1$sJ~X10W4QX|FUI$P~A9Fm(1=k$~@=KPejV>L5+#z4uM z@4D{wqeqem?2=A;(Mjh6z?}EXt*P>Lp|hx0(4|vG2rKN?_#rMvP_Oxg4=Hn~L^d1%h)*;jN`6;$#@1m0f70 zMQHnj?FfRDQdUhEy_T(^$N`hO8B3rQ*K9%*S4{+1!@?qvjut}&`VH*j&gmH^?*66Z z0!v5|w}Qke%6XZim5lU#U40!Ix6?sBcK{>IN=pU=ACs1L>8VnRz<6sD9fB)Ltxsks z{G(f=D#SNzbJt!I6V7{BQl&^!^f>yoB|0L7C?3Q4_$KyC7MLJ4M6ggtoJv?17i{dE z`qdq;t7<9DU4hy$2D@b8qs&U^D8q8E)AlHhCLSq!qLw)P8W*zRI=B;`ga1PZHJi{u z=j?+uhUP;+L#SDovnG%YQqZHp| zh|oMuw3sRmy0N+L6(=}~qL*31BuPu$-~qcWfysD$=>dj73Ltw<<$)X4lO4_G&(%AR zo3!?XS8ha&M_kDhYkQ(nSFB067f~bjuwR41;F`WXykYo9)vkKD9#YLGAU@?18mSCg zFc_t#(Xp^NWnU2nWsy0$$H_0zmh z+QE)4R6`}{vm%&zq+LTy0EKphk#;5Nsf<5HZ_;jXbZ8|*Mz|~WWEuKYCX8YxsP)8= ztDb**)$CwD(%9*93bqGO5l2tjc_ke4h(8uVcPY7VaOh3vH=Car9Ex;Sv-!zdZT2ak zr@>XwI2xFB25wV(3ZBLx2xeZN}jIO7A35Htdw9OKgT?JyL(r!t!vlH z$OU?oJ|(<=smJI6U0Gg!*KP^Q{Z zvLqT~krS)ck?U-$gD32COLXc!}6T?}i1qY6L)$y#R3hCe#V$*rAwB$eK19Tkr>zy-auR(DgCu z&1^ePWiT|!mk8j7!tF^9Ri}bzas(1KTFP=P>`c8Cn!U3&b89ohK+};9=Z>h&i-$7Ll0reW;A- zQG@eg(yR5-ZJIoH!kX@#p7S{(++98Bv5~!kgVE944YGD>ra*|HTlyGLiC;X?+4&7~ z!73=5d;O&*wk=pA?KivT7CwJNil&&>1xW?CIl;%>%4wwLJ!%7vd=PwpVfc*U$yIKA zP=)A@-qxax!QA$Xue4h5DFr`}L`#djb5eW4FPsgFe>IAe4bRbqa$TDer>s11Z(WbM zlSB{4^6O<@h>4zf2PxT|eWm68O7*18>2KUN3 zgdWHRemX@%43g%r5XxW>gc$8z1_IC;B_O?Da&%AMS9A9+2#wr*jAM;&%4LVw_z~@t z`>@c0o5Aad13VaN{X2r3Vhg;XQR0|(lLIkbhG#3|9qbwgVa+YsI%8o|OuuA%*yFs8`iXDk6x+ER&90#ZRS2(jg(Tj7zfzpfE6R%jV2 zpox*-ts4WQb*aRX9%yi@b<#0`wUGn@Wcz_8AUJ5@_|BR%mSgdLTM;NG&fnp<<<{Aa z*$sS_h4Sy-Bf)5recHWyzYpFLOp#jV3UiQvACn>Sl_-#qq)e#tnw+vfdV+7iL8#^h z&9A+d^=M>MWJtV5%*Z+kU%cIWU1*wl0+QLM(d!1O2@LhDrCI_`xIh-xPgIqj1sb)Y zk-1>B#h=)EHXyJAeL!NmO7`~`n%v=`x+aHtn!{*A(abIuhqAxZyhW`}W60cwzTiM( z%Xvk!`BjME4_xZOK(tRB(XN5ZKGDGS0Pb+Xaxm~&&Dt==Oq2g~3-j3tmmR_Ql^xB~QAgSDp^- zo)H1$xDj8=lUz8CT(B#`8{X9>598`dA!W;(!pa@{*nD6jZg9QuR0}QTX0o&BYm1v)aYM3k-%lxnk}Vo(Km%hCAl(#Tvf9M@f_XAV))AaR zMjf$+w!*yVypl@=4?b)Vxo0JFePYW2i6%u%dtqNS`7`s^o(vy4&j6OMV9S*7lRlr& z*m&?oDZ>4h_R*RS8xIh#r4~BTKkN43djuuY7>5ku&(T14vJvw~i6c#TVmLtkdx0f; zCfi=miM6&k-DB% zHhSMLS*xeZc-*jE12K)ZMp&oAqtM>NQnRGtmJMM%J_a>~Bc2yog%N{|gf-@fQHL6z zUjfU;3SHv_CovH2N)OE(BX|Udk#=@vt{>m#v0Ol|ANG4IlRjLf0G9HB>-b9{N@#7p@opp71s^#D zCE8c(J1@+nx->J58)oR2JvE-7(PD zcPj!zdkb{nRl3U5*%l5jtcTCqew z?w6$mH^y>a-WZTj=pw&m5~4ISV>_Qa#6*~i82|JM;ti9&6$p_XhsCEu?GNats>ULB z(}iKX%^yiZl5${$_wopI{LL(L$Qa{YDyys5nBG({E1!~!al`H6r%gtEHh(S)(wKUU zVIEB5k7Ey=E~DycT|P#nkhgS>d}_G8Y94f83!tKHCrFBTTR;{MPJZn@9bZEb0f`Cx zxpdO6b)7f4Sc*L|2lhxTeq;>E$gIASXE2sI&v&@)@9JB1t)9?<&ZK(QYa?)%X>%Xj zh#^9)k-_@BAYQXD_$W#8`oT0G9sv5cMAmsom;pZpxEmd3Z& zD+f~k3%=oGbqWG~N%9%QYva)S^IMCx1>ecp)OVB7q7g7}e->NFKJ$eKFnikd5kvsT z8fQ&PYKyQ|0AF4-C`z$?dE+MKqKxQsv}Uv?fvRG;eAPT1M;OO?-2}5ciV{c6SBq9g zIEtTZ!$+9J{%(Q`_{&UW!gh&~E0tUNI8{|w(ke@-?|9F)0R)lK{LGAU-*uyxnC!@4slTa#g@tOqV+K_x3ISk8h z$hccgNrNI@28=BbUI_|1Vssv;Fkb;@_&?){9c384238J8h^HoW`QNHBcOj^UjZIlZ z1n#3b(a?Z+7?ktC#|&b|5E3aN4-fDFdQX2Jb$~uM{1xl}nxJ)|I@V$~sI8BQr!g1>_n5GjSnzkevxzKFaSktL# z?_IKXQJ?df&xx~j_}jpRg1kCGsYd3EW*ru2Gq_$m>QdOLZGluHjJ=J*b=EH zyC^ZHggX`_dL|dUxe}Oz!5AEgAXd#&YhO7M4td&E45%vL&4mDZ;3ws*(`>NeGSJg} zQ~$&SS(;D;!&pFhz(NC1?B{|uC0m0PJaVFeX=|~10WFPD+1o@YyI6NLn_txJN9fu) z*>Ce>x@6uvCL}NX<-wu3di=mtzN5NFA?*Du7r&?r``|%!!#Er-)ys&2#bCm-G>JKr z>ql7~{<(gN=y^~rae@oBq&4Ir>XZ7-N%U2?FR zOL>vVu@L#xyok`lCAAC=ExREt>;x}u17Qe+Kvru)wIZmI@e`&}O3Hkggc1d!I|s|D z*4t&&5)9CKWq10U`o*Mpfabjhk7Myl8<01Du9T}C1hy3HgsC%2cq%^MNai0wZd5S=7fWUZbC)@@0W)}3Cb#qK_RY;;cp#m(;FHblWqx25jbN}+qOy;ujE zVG{k=vH)5@8H(^DRT}w?0MYA%6d-V-uhnH5bcUD(ADh{c0zjqahwhOsSe#Ny7F8x& z1<@UyaD%&Y2M4MvPahURpP)geO{rDZYFA<+cX|f^Ru>irDZv?8?}|y;6j8ehkdsae zfshdL*Sj;0*pYXH!=6Lla?9}D!=J0NIfi_fSP9y=dAmBp!r6KIg@k2Df0}N(eu&(y^eh?T0If-bR+(lBJ+xB)9_O^vjcu@xPwYHJY0$G z<1kShyd@heig-TYc+c#0$b>;i{TbOWXuC1}vaKRijP;B;44M@Vz;IzrMF9b}QZ@@m zYDDDZulw%=vt4Te0(i{EyJpKq)l1^6)Fl?ts5zKK3dZm{NJr9ObKU6j0%K@Mjs)pY zkaDCdM6rD;m9_*VN(sGPV*=Hs(wAywV+ zeG~LOWeGt(AgZ|WKFwFg9ggf+J(|c)rjbPZ4QppJdjpdCvJI=5y<8pq7IA=55XHxz zSgCDt06_|ndi#HIXn#B>0<74Y;&IRwiDMcNCR#-?Te$3ar~4t5ep|e;$$woG!$dZQg*V?3iGEJ~@3e~(WIt1xZC^cN z*Bmjiwwa5{UH&o8+TVi7TRuF}Hu7XOvE8ARAD=#{fe{7Nz+!#c$OI#{G&kmggcJcP zZbfw-@XLJn)BkLC=MV3f}f##VUE1BIqQptNJ1$MA$FSCuXVkav|=ednQI+HAU#ZNKV z&W()DVdd%stg`J>1{?x`pW$iU@$`+c(%?iTXj}vaFr4--o5n*P3{8Jt~>1C!~# zzVMZf+8G%|xIc!bT76l;h(^MK%dm%lye+NBPbD-lI+7)NaGZSzi?nUj9%_UJ;Cr{x zic-kY=m#glU^!W;aHwOoDemfMbnBE=J}U|0#CJojgZ0ukXBj15%lqy10MUh zMqCP<9ahdlApnI>@Y9>m_SvW``fbHUO|L;PrSUk&YQ~S*o}dri=xv<5W%2M=hQCo= zR4iJ#XemtuO0lE&l$yYN;zJy<0SGl<#36m!Kkme2i+ttC(N%zgZmtrF zc-k0)C!IbmYhf;eJ5Q_JyvINiOUH6rAA&~0Byi1L0xVG3Rp^^K!tp?RzaD9KLs`xu zL_)J7TaXdYXqecia;+X3GxSUxj&)@pTgX(K^>jGHcgFO=5VNw>&*ZpJ%KjUW0IY+T z+~{V+&HK=&#JH)9Kx|xoJPrO0=wsIry(2XlKSm&Qk}7RlYL#B%fT4|_=$W=-b+r?Z z&(1x73x+avA!)cT`!KfqyZA2@3+g@Ep58-r-AAPbR*ECzu~5CAzs!vk>je9B{-ODT+DOSn8#-Z`z#lmjq9s};VF(Q3YikPN zeC8*_@+eJWVh%`1HfSiBwFG_O;sAFs8p%ft6#5 zazvo(ki68xQzzxqa-^=cE`Y1xq>e#LJ(cy1O5pUhwB=8}k?)}y#&kta2~VA()&n$T zm@wE7?gV8lHPYQ9s=~dI+PV=Z@|J>#-KF!g0QIa<0_@8d-Z(M5QdkdBfxguZ6{x2X z_F3IOcBF70aRakYOMF`rHpG~+p}QP|f6nId*7)5#HXz$JMnC;6v=a*qIcj6OYu2?8LOzQEZTJKBZPuZ!< z@Tls6Ww?YO6~YpvNTH63y@GR;Ng1VgvBWgfprC6Me;~_?PmqX~SV5#lt1|9{!TDvA zZGx;PxmvcOeMLKKBtE!+%A%-w%bSNcJ%3KM!@%jdn?XC0%3H_%3owGRc&r3+ET@O3 zRp8Q}8z|8C)eb&*Qbjkfy^h`0Xz7;pF+}x!P1_~_VHG3~tz`LSU8$akYd##3M zxhz^@&}Y{6)2%Z8Sh6~|x44F{aRnw~-Ska9Sx1Ddub;X<>5~}TU_i-xExZAUph+J@ z51M|a-i5(F!4h~Pry-kY2PNOMV?ot3C&DF4ZSQOcGM`m@Kk@YEap81XrW`C2_t6U6 znB@@CP+F@k>1+c~@j;}t>}s<#+pgg+{j{+}K)7w!EZO!7;e>Z7E+h@kn%e;P)^t4 zom{a?gDn=H8KWFKTN0<|tOz)D&~BS)FD}1!d1LnG`Q9G_TwbOA0zTBx+dBuqtS!a1 z>ju{g46I&4U!AAkdS{A4G5Hj+A1$S^uRX@dYR$9G`q4jAmZHIFQozYF*_u2Sy#RAS z1t$rnak6JU@PX2jqNFProX)T#cy$Gb$gd6~PSGBsy#g+5H!p06Xh;fe5HV^c6N}KE z#WB|GYpk_9*(@7W@Jh%m=JNK(8CwUdi5pWAH_Ep_0-OT$^r$W33Hug1A_1~I(0bN2 zx>uCrX0Wf`fe5J)I~0E>#Ed&ilv*{=ai*u6(mCN`?^=; z*4Op0r-HWr&!#gth@l!(nL-i;aRcjEU55!U6(*-WjnV7TslhT71pcmEkIYW^@s4*@ z5u@WSYk-wse9@~^b{U#dcwn=|jFy_lyJvgq)u9L{t+ujEvGH0;X&; z8`422Fy5a@@{<7rzoqRQ{h$Ii3$pcm*2q28G#ZT1L49)q1Ncw0T{xx)D?%QzS8_l$ zdPXE)9!l@^@u)EyYj?7OfLx0{)|29?aeQavW?t7^5th&~Y6Z+%+9}k6F@Mntf-BM= zS%PlBz_ErMuNisOhu+Qg|HE1JM`r5g-yvkzVs-sC>bQ{@8)n zA|82+WK(M$Ao@f6CWl0tfIis#HH=j)uW!@iM2+902djTa@dM%!X6`)iRoT?peJH2Zx8u1OL|ZhvDS7Y zhY5Sy!-x=lg(;Z+g!+&oi0GI zb;wu%2ZnH+uh=k=obBCFfnETJ*+&`Br)QMRrf;@wX7(red#uR&v50r>A@zBb-VBQc zoB;qXn?u?X!@@|_V?l(3;l8DJ^JceF3pfz8=zUIepXK>ezrkH`CW1ol(c ztadh~zmC_oLzI+|i1f@Kr=B5v>_!{6a*lyP;OF-hlYsonJ7LwjY(jgdKS@HfLH_sfm@`^6too^wV;T~4tkF}N zX}^!PT?Z+$!QrkQ`jL`#YUjE;<)5@KpxI2_P6YK-N>7UpFn@?%mHfU5{Rp8^ih)CgXM$K!fcrR=zyFtq3^w0T^AhBD6MZr-#xZLr~acvL2J4o`$e0%h73 zv8RZz03WiPumtWBxq?{zIjdw5pdtl)2$2ZUo*>rBSKL5|Jq0;n;BX$pryesZQ?Wt3 z^<4&vsBwQxrR*Oe(gQ=@(7m3B&1g{CdLTfb4vE<MJZ?F5SqZF}$-vJvKJ!i&f1_zih%=M7vuuahGJ%%Warm2JgG_~UPsNrsO zavcyY8r7dMN7IK9?h)f3pCg8Dhg|?jEZtUu|3U_PBz2Il)(I1Vv`}H(Vk3M?vN3Bn zz>7aA<5Y**$g8wL{Op0l$84=8JvV`l7Li`Du7Go1dBv-$BGM}F1g^!LHH9sWq(NgQ zftj$^px4&+b8ZEF$cPHO=n)x#5?Xx|xIfK*Q9Z4vx$Jq#?;MI-cqBVrgFdeX&fR zJ2!mUw~AY84Pv9HX`|0%qW}xL^Q+kJLy+7fAQCU&fhPq(bx zj+@w!nzFurpB(-;{FEfEUa& z)>1b$Hd-l2t!ZWrQZT#9hpqZtg4}5Ywz3qPu;2`7$)ihp{#_v%WQ5I*-C$LU6C$Uk zYyyC(LMy9aC>AVhOR)5?8Xcml-}H zM-+fg0qc2VTUt^cq`u`MqwaokUBMMSvaT5dgOGrW`UFUrr6Zs0yD*qyI8bNI| zIp5|rr@`WWPA=n zBT_d18_okoKo_Z9B{35LiDcgVGM`syHowMl=4>3@zlv}gHk;oS zryf%BLtTE``fPB;pf8T$^=TK7Rh&?E)&B`Ci(gfMY0zSjWd7k2Vtr)pZ09DMtk*~4 z6H%jB5GMroL%G;=MU0*eV}>^roPb51{B*CQj@3Qj`X`e5Oye;JBGDfmHKGSch^^{j zHxXh!TSsBOzA|p$+gFotjsxWL8BWo$ zLC9hfJL;0RamWm919}CPLX;Qa)9X#pr<5vP86x)9=rq=kZ<@1@~XZeW)AlOknQ(fA`NrW}mJ(rmcD5Z(6qd@;G1(wVJ7_0n>ng>pKw*vI))^9EY8A3zo^?XpWWTH}Hc|M&3a_LyT zO;*vZ?ui%G5K^%r`X6@)0~1Sb<-q87=56U39m4oH?CLR6=mJd}D76iWE|V0A5W%}I z;gK-TUS8vg;Iy!g?$g^etYq(mAt|J=N}wMC~9{*uG~VrZp1lm{AYLYLwbQC$&&{2JWe>P>MYU6t#d^IaYn=L%UioJY-fG3snAZZ_%wxEZ30?k0!PAaWl=ed4vFvIVin=O%>D51$SY1Z=`CbXeH0BJIU2h4raq~7;~O<^8C zb=lz1MM&oXwYRQ5WKO_$285@J{G)te9p?#%Pk=_lAx4TDWNU8qiXv~>Hj<4@tAfLV z2A`&N0IP_*-forAQEKoS&4>W|m;RbO`G!kK^>kJbvkH4pQaGOY>u0NbtKM)lE~h3u zcmnOvj2toZ$2?^3?@-+U$Wuzn-WdWbhUggl<3taKklWIfkpe8h)1b2CA@UodgP)0W zM1Vk^pxe>oh$z0X{ReLPO$MedYy+Gh0=4GS%ji`xS0DYd4Y8g|)+3h`hUZ*aTeL?% zcCbWa7Kdyu#O<7a`PO@Ha6yYfIMRIssG@n>%YiS1lBDctQMv)Y;*K;5IgX~sHP-z{ zH3=YT&9;4fnJ=DE*&+^8`&M;g#yaLb$}z{w?bPBi9UCWG(>i;qW(hmJ3|ScK-qF*1 z`OFumSL4frJoQr}BsVKLzWX$k>^W+9m-C_!eZZt^d|Fjc z0F@bVO^o+%u)<<<{(mPIw*xg;I3UCPB2|f>Fi-*qP!#jzqai^%)9}A?re1hbrm%}^ z(kYsU(amdo!xC0pVEcwJwvJ+6A{N=niwD{nyl@A74IKt^2yEn&bulKcq{rVBrVGggXn0uz!z-0hv49hBl;_>-z!&jSWrjI)wm z7ZL)7B zWEWp!k>OHiwyq;}2>j*S&YGCC@@Z}g=wl55kx#+1^8*K)KT?Mes;8eQ8O#0HAFBGk z3Tf{XuQ2jSW!XPol$`66s)vnji6IOH-mV&czOy=?*Z`UerLaQU7Sv)%{tlYmq2GWa z*7_mU*>PT$km53E^;)e0#rSA6MiP;^Y;9a>H^-~kq_L# zDtHE9lMsTI{yu8_Mql`T%T6=h=Z$3-3vC%{%e0ls{8XoB`TaobOe0Z`6TCQ|xs z$E`1dXHWQH&lA`R4hLDr3wv$$!NBps63v66TSy}hh>bX_QPC%=#pLWHOA^3Dp1@q+ z`T;yJ{jIycVI#?Jx(RE68KIQ1Cq4Rk2%i>EhsHr8pRo~>1(;bh1I#!&{~+uX0LBeF z`Z|z>#BCZ#f9!{fkFsuDnlDVG_$NHk>j*(Y9e|*(8 z*tj&=^TQ$&;!|M7$V^@2LBE1qxTsVOh{)-lzIHBk=*>7@%~-`GPPIb25il0*YqlbU zMM?yTzJsKPChpU>jL+%UU3~4^$Z2%-5Hz8P`EosP`jQ54!!ODky5ldXjNCgJ)%99C zX-g^9+gju!#ngIQw4#%Qee@_s6XCJ;$0QL9=4lhOx#GH*gil^5!kw-!VCl>*N^lVU z`yq+{qt}^YMzk-|m9%*)z%3ee4e$Tdh2-IFH{_52}(isMVL%hn@tzLwLC+6cH zo05o#8}s4!?D$4?`CM#W&4h1Z^^&I4AZ^tW%6ivoDPi1CmH&>C?~6;0_k8)#XoYkC zqPyw#&BekZz3XLAc#?8KfVa+QqNN#%gHhPlTWp_Z5DY_Wec%pB5ulN#fDLQZuaNG; zq&K7ORbhiRkRs(73!Af)Q(^`DCizoEkEE*)-=1Z5d^x@sTjNIm^j4-mxlX%6xVEd|Y?C-`=LS|%x+Ls7jr7N;l-&6<~OKg=5a(0g}pI0s> z7DFQ^A{-lu2p#Tz(6W07?VrnYS9#AqQp7g5$QMRj6{Hh7!>@SOtnRD=C3=U<3DYggu%*n#a~o;S7Cayu zxGW|}#rM)8={A1X?L;jXP3M}++DwLh6Fa>)D zc*r4LlTCa2pwuaw2-3}QTbZiCDY(>_hgIlWuOg_lt7yZ4h=VXfj>?>X95vQ%A?#xe zMz-x)diq(%7~MRF4%+*BZ{@Xb&;KEvu~^eaNN~TnX?%7LkEIxh*ZMRnDc!TF$CD{m z0`wRuK27bcq-Y@ueN?3C4C}fxSsSGxnQ&SN?al&O;efd1Ky?A(cZ8zE_lPh#0x2DK z4g`SvY2j_ez{0vvKIRiC6OdYT7VRvtK#~RKaio`Y&9P+jmfA@B^Y5zK7Zu_0G-KEe zsgZ{F3qJf@f~TF{pNc@&o{Bq`_AXts)L%!m#@hSKt3_C13l#nOfiBC)#PASJv#j@6 z7<>VvSXQ(V-WdjEdgQPgZIY;L#n_l@mL) zl#G?!%66hA84zC~TeG}3U*5|f?h$L-(OjktA{lqA&&c+2svnnL_$xNCLVXNAM%?t6 zNOuI~9M-IMinO>ca2GZtsd?~~UbWBU&ZVWY80#;?+CD);=ndr4LcwCs|Lq54C=kUc}MRu>VWgX_eMf73PL@Ntr5MT!y)f(b3Ivy&p zRxI=5w$x1#-)J4d?S7KJhgxbD;l>2C-V~FJ26_jQaw+ZyYnj;;HSi34lX&8@bWuhv zFKQKP%LI%d<{Avh@0!%iE_ZRQ_Jjn5_}|3s64|C=^Xe^KTe`q$V#}gb7L=^>a)1(D zBE{(~MM&C+&0Bsua`4(}x!OT=ccCf|8TOwKpcRQtn7yzE!mxyZM12Sgwzi z1#|^|983$Fi}&Z1V;>K!NifXn+d)lddC1JRC2UscCzr|!xkO4MM z=`5{1Y_x=m8#(EzknzS_SzV$kvDMFda~gMVEI=cy1)(yjK9;JOG%2Pj-XL_R+G-(B ztWl<^q{tW00C&KIM4YuiBb!Gt9lGCC*kniz5>wP(@q;`(3n^Jl1n1h@LSpFeG?fYE zRolDM89^hAnCwrP)Rob#DN1YFJ$zAQi@FU9s%}d4dvHA*T%xfMU1FEQ9mAxw6AIJ<=+}|G(|n# z;j*OAK<4-yX0;UC#3BNnG=KKNbXGc|S|AIXWmecRPb^kTHJCYRaKhdYS(P7DHmrg# zogj$$irU4Bs^?ZDgEAJIO|DYl5t&(%Q=!XVLF>9+{hXbZ*rAJGazVhUOfpNg{E`$c z_p~jLCOGrkxE7CY3Se_iujmA5KqgaQvZS!6XK6jhcL;QKq7Oloe7eYfc23va=qGj$ z)i>)FJb=WlC>b6aCAbFoU{s(a0i8AS`k^HR>rUWJJ-KM6EVIT%{Z?vyxuf_iBFgqZwbH zAY-BL6b3e2ZAHiY~kYoTl%&P zAjF8i4gg7U!jc~rMK8fetGc#g!V{x|p$Z9;?KQC%(8;qw)lnF25lB{A(Ok}oW>F9m zPgE2yO8en+nMI@h^ zW%6?-YdEc1nvbi>rerabW9dfhy+VG4D^g-;B!lE68Bm6gwkHY6VS7`J;2xL3hG~*j ztHWf3fV|*ou_6Ctsk5+*?L6}k>EjxWBySb%JazbPx_*au6-j%)TM##ij)>RoP&hT? z`D_?Xbvvceiu52ASpRu+W9bq6hY$r(JSzi)q-7@08@$}LHwBt>BOrTJTtSo`Ot7K4 zyvK0}@MOS79)uq3xRAo)<#|j0$bUTl{;IoxdyavS3NaD$jdZLuTJh^+Nrv>G9H3@T zL+5m1kyBG=WXto95>-VrQp>~^#Xfl0gvyA%T*ER$Iclsa(OPBb2xnWh>QYU+bfnyT z6jvTp8wQ#aX%By)Lf@zUj%tW8{F{9SzYhS!xYo4c^-(F0rReaIMP z;)+oj+g=bli0urlTw^*M3t4R~F7hD;6zW6}Cbf&TCP5WzPdeE&umv|jX6=oD7WYSL z9ny7@pGOKeqA@K~)zUrJ`5l}ZNQE<0jRK~lM2J{5EL_0S6#H>?Luw60l#=$`3_GC8 z(#ENIr-S%`>A*Qp4`G0C{ayTqo<|_1_xSBzX>qyUN6v+Ob*bByI~p}wFQ!`Sqvh{u z&jTF#A{-EhM7<-j$QeKhRWT`aLPt`CO|ts*Vs~Jt@g;D6qV`T?^`r)fvG*O|G|OnE zx4`!UMXJLjYtWkYz5H9VUa{>A-(7MO9_}L2C@phhF_em{@QqYI2Peyk6IeE2J(`BE zoX%paaX$k7QGY={v6e!uV5G1y{3&*Ob>YB8yDHD9+<}SC)@b*Zt&~WAh3@iGs4YuI zKHXCdC(h|1cLYb13vw=ZCsHM!W`ygA66b|;vg?IAXmq&Zvb4Yay$)%krUFYcfmGC8>Ekmtb;T+AwxWH7|U7o=$~FZ zhG0?#TkVh1I!5;Xw=BEhY)waL$0U(3?y1 zp_w;%qLSOK*YEBfd4&$CU;wGquprexkZI^!WT6XTi{ zQmQ00Np{BJ1e`w8i8MJ9W^7%m^SZuvkfZ`}yjqb>EPlswz-{um@B)G(ouYeaL;)H| z>Kjlq7NV$2X-8^>O6Y_JuDVqfhia$V>Brf8QOR^AM@qcHyMmNEgxer5ieVd0IWR(U z(}v|Qtul{WhL50i__Ckj%Lr%H1}`%=JxZhDavT;Wl@j>FHR*~gLl@91317Yyr{^UH z@Vau4wF`7PM;y2W! z)d4rq8T{0YL7CG>&g`v5XkjQw=gXx>Qr-M~G#xUTIcIIHWI(!s+{7E)Q;p8Wb6r9{ zTa0v}h!QE-T;M!LLrTY5mxxq9DWOL--cDi-3MV08jwl<^uULnqV7~DTS0Rhh6dT|e z`iF@Uk+MAVuksR~p6O2|ohh0P@Z@;1O=;3mu6wO{q(_mzvzIMgYcE#;w@EKuIMqMQ z=I4?vB0?}J|AMdKF?X+?MWdL92>2&^2?A%8>E}0r+Poc(snnB6Qh-7KrfaCVW^MQA&sS$$vo3Nudcri z^xP78&>MP^&j}#ILg@DDB4D^pUDN-w>eV;c&gdW+n^=JWb<7S?r#6@f!|OdLBdEGh zIoly$g)6@aKSpx&TbtRQLg}Z?6Gzo#eY1e!IzhU(+Cnm?O>M9H*gi?I<$W9vljocQO+$jw zcT#UlFogpa3elG5geJr_%{@nrQOD4DxQ0a7j*~QOnvs)f%H}$$65Oat-ast3T~UZV zmf0j0_BL12%9dbdWu>{IEy3z`bz?Q(u3og8AgBYS6Q~+3beonm_D&5rjDqWjIPoR7@&m4TwoOoUS>=1mJ@3!kpFQ%;|21Cr@e?zzrl#Hd3=kstCo_ z4RsJ!Zo5OlSI4b6kB(PNEY5NFq|7E#zo?c5{Wb%gLwoa$d*eJ@dY3~I(sRxF!bA(2 z1{I{HP<{_NTN+QP3^ugc6ed*M+cTuW}-}exb$oaiAI)gr=)bY7zmHKKsRXV^R<=@1iy$F;)2C0IXne z1x``z`)pn`^s*YG3KfokL<+22yHXe?*p3=Qt|L8h6+fpyA_5!-Jw$?V-Ch~IVmXAQ z2fzg%a*)cKj9`)D6qrRwRIbnq*OLZ`BExg>?6uC(1R6YZAq4fXgivMHuAlab$%3ge zmXu>jOsSh9vsj2AJ^0NjH_Oozgys9yYCOv4#N0-&sH@_PTvALDWgJ-8x3E~K)!V&B z!h1o6bFun#WyB<(x3rHeUtP7y)7Dt*M`*uIqz4$NTToe)DUc+1+|EyRFWY7ZeR~8= z@rnbOeH)xaEXjFATm`8X&HQJHV6Dg#qL=!%XdQx#9Hh65MHcWWIV#d~VggW&aj$=1G9z=K0 zPwQ?NpH$6DEmS{!!Y$dQ_$F1Le^jB+w+Ij~;+75vjYtV|(+`_TA8$)5>Vs7Ju#6Ci zrVrUU_oM%xtv3PF>niU&J(ITdjXDv;c6rCx4q%o5SvuQv(lcb~nQlTSX+};Mh5;ty zxE)6bAT&=nB<-zQ4R6&6F+r_IPJ~m!TZb=C zpl?TkxWRDk%8$}HinI8Yi*swcyA%c~t=u(n*A!n|lT~4OIre`;dlhZH#>Jsa0MKWH zpIOZhC0;g?Wz_j3i|f$?bP|l)^YXB)!o&UW3QOwWB916 zy_1v`w~h9{1)r}^tD`us!~wQtw}}rY-aA#WGgv==^8Dw1Y{X#zvz|gwToBnrxRT4~ zd`jfB0Sz#l)Psn@=fG1lx`;IxK7N|%J-{^Lot$<~HEs9HsYWg@r;r7<5Nu=sPx(MR zTOqVTzPxhf{vnJvNRoTc=4!mNz!WLxg~M9ArIo8d1SWG0zBNblSjJ=!VA%`P)WbBz z5fb_!*wAja4lpWp^#$q1M*^ujaS#OLFZzaqL@!A;2=Gws0 zXMrgYv3UFg_}-Cp8OB#mv^bl_4uOzm;=w&Vc-Vfp1rfQ;Krstv<44A@0Jb51=b!q9 z9FwcXHMDg9VClQQ^ToU<pj+E<^u z%IA1&<=&dv)uLZkE_2QhuzFG20;gM!3CxEX-^Cb2M{D1e3zwzcczzqN9NZgb=>t&( z@E7tlbh zA<(S354Ob;SPb}CivE^-c>He>aQuQ0Ns4lODW7Q%n-t?HKoAYDNID!{l>-*CKZhXV z{@@CfDc zhZx)baogs1U=)Jh7nRBTB@DMNOzY-U37*&Pd%GYMs6%Ysger^*EhuXfM+;f%aoSu! z54taQp8+)To$JK<_r8@wIiHeoA1zb=tI!qS5&S4a$itU7zpsRL4L^}uowh(sgY{oJ z`LUBfHG-ypxB5;bHod?7%HOgDQU$uN1ni8)z2urT#QkO1=yUu|B9?{b&G1Omw%a(iiDLygOj4{3CKh$lX9&5mpaIyS1N=!tK5V;fqCX(zbRCy~%kdn_)xjZ5kv^uB5W<9Ds zX7V5wzwP}y4r80xb{p^c=?R=W+F43^&hnW)km2mKh(fTqmdr5C$I1d%wY>33j&aUE>rx$w7hfHo$_DQa55?kqD1nYCkAGeL+W- zB-VwJv`~?WIT4djC?}-oy=qunCgW92Mt*`phZ@w&n^?|%+6UJMdqJ*(eu6epMY+!m z9{kR~8`;U@vgw%=PF5OM#)gtw7Sb{r?u=$JTF1!9DJ5leB-tijJx)fkLm!76UP; zOpEc`RC1;0kD`#LJ}GAb8743Abz zWE8v-%6Bi<&MjVI%&jypM@BLJo18I>lK3Vh`O>SI<~6wOddv-F#veK%bP>y-B}!Am zcf1-b5Q4$t+?&A~N@U9K3S}Pq{`>sE9dj^L(2S~94%Hol%>1TlHsz+4KKtAo_@r=Y zJ9^lx;eQ_ND4;0y+zMbatnUV??=!js@EAl6R5e}pMGPeDu zx=X;8p%3?IQh`8sg%dhl=w$Uo7F!e8O zJGIcCPEM2Jz!ci)L7<@_!lM*qK)W!La))_`0823!r!87n{yhL-NA~2QE}GTXo>R@%=Wf1 zt<&zc6n5SYvo3XRTDWiV_{WG60u-;v@B2xz9l4U@1VE_IDGF9mR3@esI$ROU_|BXT z+OU#s}vue5tVk8{iF6O(42rGolM?{ z&U{OAZR!?IGSww4)MSsq2N$ktqyp=#7bkUSDrekg9SR*TFD4sno~oH3b%rFZHZj^=m*Z*ojf zSn0m25X)Z~#A+33g)_QQs{~;Pi&WKlcUvk!i;x8D5Td}#^cG4$3s{L|yp1G=HXv8kOlQRz*SP!`L^J97fh#Z)KO_2P$2v9E=OuX3r@3Q*)0 zA>r$IiKpt08KCHuG8@1+QcJjGjIdoDA-j*|Y`qW|$<_hsY#y2gWJu9BHtU$K`0bSh z3>4)XOi{$a`X5<(=j2G)M|3G>yf62=gk9RYi|G zYmt&ii3qU)5;Tfb4a*2zFN-Jc203&<0FR!71z19*EHpMB@5mrlER@;UBuA_oDn^?6 zp_^#|oXj_Xu&(#*01x#qa)}&t>Vu-JgHLq-8P@t)^h?t~K%?H4#O1r8=!YQHxkrs{Y{ImQy_iT-IH-ka%nu4Tfh``IpG0VVy`vfE2& zt)Abyg0AoG7BDg_f+!eksk9j+rBcAeJg8B$gNMhDHI#l)N-s>U?@Iy$?v9mG(q$nD z#-f`Q>_iIyanj#WzmAO_BqS-9oI1wps2FMiQ}tW9elC(B|A^`*8d4 z`n`O&u>1~CuUSWXGG@rm$P27j9xoC4X#!x+T5f%|(88ydYn#KOTwrB1*eR)o!1SBV zAYF7isvK9Kkb_Q5S)dpZIJC3^>eJD8!V>ho$Xqoo+E z$17*kkhm7Wo&1P;Thgyh2i!UyHO@UAb|D%|&uZ+0LJ468a?k9fZitU5^HG&CpYl7D zWl4+Qq>HKaSdx2l<7d+RU*zXX?i2a>)P@Z|0n~irV#R z2h1Wnf5Xyla4qM~&*avo+S4R8j*E2Air6;4=?gbX+! z4Qo7E4y-my*TRG7+U}-%&^sL5nNJCwGrT(CtD zlDqGqrSn6hEuWX(%z;VF6u@@16f6v93}5OxvYhS)lWThS<2i-g>7mzB5dyc;>^jAu zCr&Uo*5%Q3SM#tuAeZ!peT?BO7|&bT=7&zzNzwB8xjBrFA+wjwihG%4t&Rs^Di_;4 z;|G(_)E~~=(KvBoR%a^?j!_h@n!BJz!zN+IL@MWCd~$RGC9MpjtZ^eIE?5t0@+M^r z&r6)Hb16PBlIC2B2ZuY%K33wK9fpd1upKbX zjx>&9Wt*8BYO>nPsvP|WLGswk1M2R>i;JusP-ECUl)m7}ClIhRpR4YpGt5V=i*X4IogtyRTeK>%t2>xf0WJ~f-#rq0AHE=WY4S8 z9?OzU)l){qdJl7ZO85O9F~;SY5Y;Y;e0Pq6dUk_61)849VstGr`Z$?wN@BZjR(K{f zqi9>3;ys&y+(n35>UcKt(2sDXxU&^7fy*oq@?*<%KGBXggEr_s zoR4O|zM0H_32BSV54>l0s0ex&k@d5rpfq`Ud5y+qgeBpIkhC z6`{kIAx}DzqpAC11)}sM1Fl}zaIiIRqGdzacCJY?3XcEH?a22tJh==F` zCG_r3_h~%r8LtbM@{ZlX&SMQKu=ghLOVSPg?HDg(xj6YyQro9?`NM#I^o*gxhBld6 z$=P`v!c2E)?`=c2y4Iyjqh=H4-U|th@ev*Gn9)B0C(VD6!+#ki!PmKhgYu!aye2Zu8*?v#u^FgLCO9 zv#?q;?Q?tkXX0Vdu=!B82Lb>I%kSyaYz_GCfUQM#551|7LT-*t$Z#j9 zH<-t@CWJ{$)9^uvqKoEaIpNw?t*8Rov`cE>ft!O@f2$XRt$X7$`9(?~Y}EMcZ3gpM zh{>flq1YSn2*1QvQ-1Nex#!+EQd|xU6z9n0P&U6=0MOCauhCPdelK;N-mu}{G{gF6 zI^p-JQ{-?cUjO>y@t9!5+VWAoGIcXP44r8w8(Q#fz@a?cUf-PGP zNH6DZ;`R_w3a(M09yei1mf~<)-3YeIK>e(ae22~%qvJBk&FX16Q0Uyn=mV5(jDnCW zu#lTIDE0u<>85kN%J9cWHU;7Jc*8#cfXpXmMG z+~82wqll9S&uj+gaM(X)%BlgO&BWZ_op!A4yB}o7St;vt%v^G8vZlENb8z_;=>f&e zt5c!{RL|N2RFQ&hKja?44=&gGA!$vm*DNlMyKRwOpUW^S8Z&=)!= zHh440SP&J0cBI4|bJK%`d;tb990zJ13LT8JK2?&^H}ZSKm2c3J|EE4x8Gc{G`U4E> z^@{&(TI}d*SOJ#$O@o<9dIj$%`gNa(Q| z&^kDHj5duK&Q2SmOxPXlA(n|WYG=(j(|akS-*u+Gn%iA_<)%L&w;h!aG}v-91l-31 zK@ABx$WW~*8AQ)px+wiPdn8LxHnPMAJ znzIArF)p+!Ju4amS!tsp9I4a@t4uen?qh34FV;8S(PV!`UNWcJ$NkhIg&#C z9d@xZ*01puhQtgb+cB`yOUSh45MUlerG3(;DK6*li^4FkwyGhRA?886|v!%YbW z08g21pp)!wMBn-}+z(+x>6NpffH4C2fUbdVb7ME(=rc-`v?UKoC1F&Ra%mS2z)GAX z^1A&HnlS59UPk;oTU#iWfhD+Rk@~DOhejW2x=tw(*9%h$7g$Nv0z?L1Bqgn|fJmlN zjt`fjr{nMjiMY!W1JO!WC9LcN*7B9{R^!3yojlfH>9Z+ixGh?CndsRxMA=s6PJfko ze`5Mg*W}^FhqF`Utd-6gKBJaiHuNXtW2I98!2sks=sSwiUz#tk<#1x9%8wlPu+!5_i!dG%?C^)4`*TG6Srw37XgjPJ)g# z_Cn0H@n9a<2kaU)YN*lNbb?{4&kSmH4%}*EV2Du8NKA9Em^|oD+K4CS-q(Ip8P*4U z3y)k8AfmU7o4ArR%Rlw2HR0qEe#{LA2akfUj1Z~wBCCo45M#dP~F;kl08m3&N(anZ9OszxYFGS0Sux01$`l;;)@AuFBy)-c3#Lg%nm80I@)6hX4UHOtDjI zj&_EuZjc@QM7(wAMtz8G<|3HlJ`IKj^Iu45T;ZuRx>VOa{wGg;{G8X(?x_O^MBPkJ zmCNDoI$$TtVYxdGjlF-z0svuWXNOV=U=3sk7Vwx~cFDXwN0GPG=QL`t{B9O_xgBH0 z5Jtyyw_;Lg*?z1HL&w}11DAmOq}a%jtI^Q&GcdsFgY6*fNDj1@;hxCAxb?cBeymb; z3`5H`8pJ`MbEHx2FbGo$cWYv5E;f+BbJiCDtKU)3G7D~oh_x9RS(*%Mpx&Pc`!qIK zU&Iv4&dK#vIs7+cg>pxCcL0L=;Y>~3UXuD32%qQTM%qeSM;p;eQE44jq6-jX7Uht8 zc^_45Xl&y8u~GCHRl=9W8nz79|Hq}rPQHGmv@S}@<;BHcuf@lx?r2S=vt_ff@TgWd zQTt6h@Dxa&<1aV8$8WUvJ;pVm&QkGTLxs6hs-FAT@U!D%=*rL;v7^=i00+!~6vaQ{ z1Jg)*x1i1x`Z6cd7cRfoLLo6TSQe1MV0lW`!||F79dRBzssx2Yle?oO2BC3@4BQLEM;&8bIl<YehJ4lj`FZys-P?F z;MMv0`Gfg+@#5mg=9Ky^?Y5x|v7|fi`d;*Rv5;XZ)m_KuNd(Ad|L`=CSb6bKsUCJY~lWKJx@4 z{E}s~ta8fAs|KtHnYWYEg;=D82Pq50$Po>EI~2!L_v;#3As(1(L# zy@)qsXzi&0bJ_ZZsU(CT4ONj%%W%Tvv?B1K5fn4Qm*%k=9k{;Aoae+J3ES-Y z0V*bUZBvlpw7;}!DuJ;u=$!Z04^r^AdK8YbVv@N0#rW!uQWeyeGv!F!D@$Y6aT*cy$cd<0?oO$f?yC2cpUnJu-ZL z5B9CCjtU=`T=RI699!R$uzaPKL~@mxKv2RZlB&(2H5$a5c3+gp&)UkTt!Ii&{bX+O zzMpJuGtJ7IJ@Q$dM&h}$P8!KJQkZu$2R{d~)>00O8pr^%k0gpbdcKw7L}ulk&0WAP z$L!N>M6kB|0NO(=H9pT@R(|rHD8t#PN?B7DVzTN5a}j!DafukS(82tpBp)aw9#M&~ z(KnntV``)V(87Y6wfIdS2GOnrz2cp2gOEfaK3#RjTT=Q^M)4-zMDy@9r_Q)?@%XQi zvg-YC`KE{s^Uq>V`7|Vjv?H(j9i-1t4kGthy|E+ki3ogrJ@8y**fz5l7r}{f5Fkx= zOg7NLq%L|WFpx0TlDDSGbG?r)1io=%E<98E@)`cJG{J$d?fbX3!99}-^f5YAWrqZo zaaNfblp71!5b@UUTzM+=#<~*-9cdqiVq*IGwgYl+?z}kH$$g0L!K6MC_8{L7fXki-ZLUsxAK@1XFF@= zdA5jwB6I4cQ=b#8e}Xz3!mFZ)JOvGY|=l~Wb#lxbb1i{#DLD!Hisp=HoD(mojDA!4;Fn@q4 z1U%_B*Z^kuB5fI(hYqE*>XD*u5`BiL_^7Z`548A zx%rYt#j)M2N9Fd&-lG_4BBugRgJOQi!1V;nS5gb>!ufHq0@j3}f?9Hvo*jNbtXFWA z(7(_@BMc$3k}aafKZGs5#x!m}9LNi&Kq=Ua*Fl?sL~qBw(q2}g_}uICnPWBJTA}fk z%vudCZ0~K!s4nX0gsN79A)0Q|tE({pA>6glL5H0=<9`QZifz}JMp8=eIYN5{xb@)% zj4~fG86a6GWYWdrBGLnH;t*U*tJ7V^nY6K;Gv{q67<@++Sf%WiA-x${xa9kYnNFDp ztFW&u4psd}x&JNZf5jSaY~`PZ@Uo~sgIR9@3x4wCr6-3Y*hfzk$S2&O>X03@t%r#7 zO6@XI(6YU9ufdm$6u!iBa`-a$Pygu^_`{(^9E~PoeRBDoo)GoyfH()GAVv2{qx+?Z zEtgY?DyB`W&RvPU`CDT8D^rxJLzIFxg1v-g+FhGNG5u9J4*~jytF#f8;=iC32o#CX zLPD*-jTDe^%K>0F;(f*6G#~v0|E$0@Zs6XXyNI^=HP$M66^_JjhwUMhnnY3NS-h>LsP_2QwUHc6;VK4#)7U9`Vx4>1oATG$&pe&ru z9E{(YgQ5Qb52iQ|xTJPXA>kQ^P{Oa^*nX~25nE28YaYoZbLUhU=ANJ`WeY6&X;H4& zvWr#DKhQMv3Moq^!%TG$7F1;6BvApTuLwcMh;VTc-K75=!yORgVNdEaJOvNOs2|oQ z=%FU$?!1N7bAC}L2wOTX{^p6}!es8F;}968?@PMs(n=)>pg9||o0S|hVpf&aOno_A zhhQX-_`GR@lX-ejJmdLRdLW?W_-v?-2-ZKp@#LC+JL0@$IxqPBIszSxv0!i_Rgf`T z7DnhyY-stJ@L0(|VZiusnv8(!(Rp)^2i>eg8$E*Z8;Y}+b$YB%n?54)&&>iDkFy5a z5L+1~7Sd-qB&;=~lgI&;9AcIs8u;v#0%@8k&*90uP?a*!6)9B%wvwL|MoT5V-tCyM zup8{}_IGF2HHVsOxZ%{hhd-~*J;sBtX)GIj2><(1so)&;?mJI2gmqM+nLPERVMMW$ z+mAO?DRfRNIqK&;r!a$o&=#NBosyj3BLcp87fi$uvz8gfxu!XlX@{G&mSN1@&|~=<>}DlzObGF?~`%{k_`{Zf{{cnD~KaTyc_)T7)QM zs;>yepXT?0NnSHaFEAW^+&tO>Oh#<P
    G*6e;i9C-NXg=3CH>`#h!dU={~z zK^0|L33&4QKq`{16uY8Cp|wW0y)!-`YlJ8)#*1nKanGPNTR9uGllV=_oTkQ95fEcq805XHFr3dp!2P>s|8Vyo zOned|{uND^^Lk}OZ-{g$J65#9Ot1VNY8xvS$;nYITuK?|CHWzBsUY*9m=F1c4RD7w z1mfc8puVzlM9@SDR)&YRd)1z|Ij%R?xbk$!?q99ZXB}a%^wQ@)J~E^;2!tpY0#OW> z6u&W>?+m}l!#qxXSlMO;?v-g9W5N(|{I~lMqx=&pg?qSvU=l6|v9<~NiKl|IG}!WF=0(g_nC9(2Hc(huB(lpy>F!p*X*u-sz%{5+4I3wymv$aaLN z9eh-KvcML#%-Bjx$*H?-QF}Tc6GtN(-1lr5Ys?CElo~UKG9pghOi7tr#R6k&WU+lF zO6=xuo!Hu9C)^XWp>Q^_!>BAzN`8DWI=*FcbN36KZ{1*57ft?HL+DrK4wT~F&bJ2) zZbjmH1&mMAQ=#|6l>~e>w`WE3gY7rUu#ntaodn9%~2X~IyhVABG4n){RFQ{I!$&5bnKeGSEC(G(~%K3mCQgHhYy z%BZEA%x~W3h{?tz=BIccQ>N%NR{8|2K+l!+)e(wfWILT4wPq)LZY@jvOMgiK%wyK#)_YQpXEu#E4ClEH&H#3n(>JB z0d8>p8UX-;upUN1UHC|z$0r)%>-tZmOTm`A@e4u^zflXFml3Wxt&l1E_~AC3^V6rp z!Bq<1mjza`DLFhoIOHcJF_0hFa3#9_iVQnmjZ1VT?|*y6F5zVeEj#sOSA1A}GWtRGAZwr*X?aVWNXbS4MIuznRoK!E z_O2P0x@DnYchhaeGx+)MylbS95YS_;f(>&}pyXf}AK*Q9!}~>Od@OvOy&mlcuQRQ% z01*%jPpK`)87*b~h6>kjC$dtEXf?t}yUf*UqLKJ&qM!762vUUv^;Fm#IFIzoN>IbW zu6!QJ(biNicw7h6)}`K~;eaQc6U4`Xp{*KjbiDKyjIF~cr@@juo<}N)CYQM;laDpn zzc|l4)NVEn5AGn&z96kCA@v}lDD_djjGsI%il|T?)4<-L=|g;8eCfxRwiM$xW=M+( ztX&s%C~%9%yTiD+B6RoS#p8I7ODV`g&|M;Br61--CIS2LPXKHif~)2Tp2C=;HkiG4 z;+8;cR089m`w9VSwu_kqzH;s)QA~nuDFW=!6z10 zzFO%4soN(oTeSe}&HPzw_wEOBw|Cs1+pw3bYzEv$I}5$X{SI6ZLHRT}r}{G_q5Jv+ z&Cr*<{0)cH#f8Dx9TP{pW2a57<`DEtb7ug91C={fIi-q*rmP2FarffeYY0tb9OGnHW~YBI^_v93GD7TTocBD$(! zomCI){FMi9Ny|vvQk#1P7Agi#Ux!IW{x;A(XgFxA!`O1pu) z+=IPU`Z$l4ZkZh{{l?NSj^sfM44LQ(0d}sBbnm4mGGks7R4ei6eDb~&4`Nopsa*da zuQH}*RU+f$U9)gbt-?^F;punL+!-&AK(g*!$G9ki$5-TvoP2p|^Fa9BrN!^d;zKwY z(?33b02NjV(zjFOtmw?~q3fkTeeQck=p21zrUVD4@ipj}17kqJjIe@I8KS=8SFh(9 z45-vQh)iWEHHO-?mc*`3Z(1uk>@Ux*m!?5JBSBpoPG?`I2C5=5P^y!{ah|-vccB@D zK8aasI;WA3%`y&&4C^wYCIo+Cb;Q*kTzQfPYK(nuwB5)wU=r=o20zRFA(PHBf>VDC zA-|-}b2sMurq%{TaCgvK0Tu@IDW%`eb=AsdtuBLULzazqgWcV`SgZ`L=UuEL86Z|s zPVo*{cp*;3B_ck(OkWW8lC&BB@mbAHkC2h$GI~_b?xdpcp*8@`wuCShdj2 zK*Oz4hftKIK0X_bfwQ!Z#Uc|{UxadHNYH=tv38R>`C0>kS4Uvt>8sM5xmTt+1K$vu zhyafPhR?G?lXd&D{8D0Y1cDJe0}b}(&0Xs*M2BE* z2r#8b_`)nIidw5HjqwZ1xd&o!FwcVx*=c-nh(<&1Dm~82 z)OwBhkv6p7$DRKGx71R`4+`#Ayo2#xKUNPqD~^*g7LJQu68# z)6ER24n}Ct=VvsDb`qfQ*tJGbke?VYFQilEIo#jy&CefQgvy zVOGn2tvPjBuQ-A#p=g7z*8BU|GTPNs!EbxM79D%U2|EEGFF+^`Ns=65v33l?tlq+r zJn=6d89a)vsjQ$QeIICOnJ74`6#4S)chmnIriK|}b_z>5aW`?00U(95h`?e9;K-&S zGkCxqB6XFX5hkZr87Nwg|0cv{idqyY6iw09nm}QCj90=UK8RUfVmO)Z%<3F9A5X9-?BnH0@1oENME19Nj1f zMatkX;_B<{T+BH9FngLg(i%H2vsae^B95bj=YM$V*odcZL6yh2EiwJ(Q>WCOC-Y=* z&H4C^DtsQpyK$}kj^$hAG|Vz*(m8@#2ral4EQaMuA_PRqH9o>ruEH@ZF~D~I5Hh0< z@C|LUj5P}uCkq{8T!X{S(F7Cf^BOimebm6LjPk$(?GmeNcd|@D5ly>r0jvultV8He z!o)Z{CPg`=Q_*P*p>VR#A^fxzcOGqzN!7vz26$_MDp89%%~}tlNVDIPW8h;xX_H+7 z^*`!2m|C;`_ND)D^2!kqBKqF%J2Pe_S7o_i&P5xPf+m8LKFn6R%hN39E0}{m-M`N4 zg9!o?e0()^86k@wkTyEAWo8Qw7MXS~UktiUEiAy4iyyVeY5?$XZbscUVaHFPfVi_r zOkhzh%Z*v4T~k+Yz_TCIYw=0&j^H1T?cfi5(t*{P0M#Qi&mA)?QzAdKhLDdGuXt0w zi)jFegpPDf*XiSE^B%sIYs&e;w9Z-DqfO&p6jCyZn*6fR08hS|-?WST`mF0e zw{EI&mTrcP1ebB3HOIjEr z%o(nrI)j9*$dMIosLvZrpGhU68XRM^G96FTK6yx?LA?v0w2A* zrbVzq+KN`u6#!tNN9;%0J9{(5!N&L;Tsj!!HO}riY25*inx+TEO3fkw{BUHKF^`5w znEnXO$iF;tQ^Y2>`|4JDKg#vSwe3PQ2o}(L)S`OF3i55~&p!9ok?N>8?n<b5qGF!)l9zm^IsIb*T3oH&DbBynG~ zsoIH}DYBZmAhCp_8HKb6mnhu)1alecqEFg>{A|>99~@stt8ss6Q$R*^4abz}dAY!w zq*#jq+SSFu*5@~k+`T48?%cs=9Hm~>D}wojM%5>s<9-~)|GDyKr#_k1(?upds1Q^! z_h;gO6M&R9Coty%oXid(MLBoE!!yHOR^XfXvGo>GI5Q61y_blGVk}W8^LYZ_=ms`c zpyPs8>W>EA;Fx^Zp2Jmj8|vstUqG3!1VYJZ8im6JA&_A@SmZnbk;w9C<8yL9r;R_X zh+X=C=$E8abAEX!M^^U~msa}+kDgtY;ac;1lfwvN)>-c@ThqztCw^{j z)n!kcFaw?tbHwGvHDZuhAs^`G{kXiEHCI6&!nR%66HskRsG%9|Fy!D?nT1#AG~WU8}cwQ_qC$TodDgce}n-pEyUETo?qGmnCZFMhxYjzYTgoDxu z2;r=OeiruY#_1y+QF#Y^j3T5~2O`?7I$};8kpRlLE^Q@I) z$uy{5iScBradD7`-tkgX`auSSV3Tt2Vh2znD20S(bsq1>Kr6DOU7D%aQ`18tw)~C; zE(awO$Xq}YB$4ypU_BjA&k^*Zp-3y$s#}8rHz)7X;j$F$P3p0#g56w)lx`<5;ZoT!)2G(>1eE8-GhZZU%#s0`a zrDNg(t1RFJcaTP>BS^ZH@G=Z^t7}@rO(2g%D=l&pEqG-OyKX{p7;QkhDym57tptqP z=RFJos4|fTRbaaJ1RWxHz68GXqUSy}qNBMclA-(y24#PmY}k1!x%BeCLj32^j%!<= z52V~a@5e%)|8LhGZmvop^O1x$6;RSn3e0g@;mDD;ZM8l;)2F(6<>UwjBv2zY!4tkP zoDA$&A*@3*0Q213JZdTLt4xD{Aecny%sje-3Zm&TlCmnJCR|t_Mj`>Ai^1)33%q9| z_sD-N@tS%txz>B`OGEc9^7-Tnpcr_2nw^7LRdaB(LX}!=i3d#x&jhB@i#A+&ovZbu z8Zb%#&u^OLSwOf;ccdC*FQFhgQfud+>0R~VDuYvf&|@@#(!p@Y{PlBN8QHUW?lUe1 zgaMyw=*f*00>!WIT#m>yB$hF)h0c^Bf{-+X*5G!81vpHPSxk&VWeS-;YRKI59Qt~3 zF7Yhh9fi`)glmWF++2AqLOh40o|283#YYa4a>byD-%VD1j)^G}6uTHp2oW;Fq8vM- z074?PWIcOC2k|_mx#86+OlINHN1YjBQ(QkZsiZ9&c1KnA~= z--!22h;RpS?jnR)#7K*`Ob){|*DE-D*tO*xR22A*YjO>^=`f`Ssqwa_jpG!wD1 zyMe(PGhJp`5;Uw|@kn)!`L2MU11rs2|8JN6-}^@x6GKgS5mljn1EaW$RelJbDFuaN zAeklh3>hD-h`&KAnP!fSHem+699sE)P$^GRA%YIY(^66+-iSAj>wD_8ntC;iYGGnQ z_2xh+SjG?kKUHS$mGV+Q8Kwv^uM6VV`VOpTeTVvOeaGB+p+KRa z?=y$NAb(IiL*OSK|{7y^bo6D$WJfM$f5d`_*D zIy@jVF0TR^kqNt8UUSJ9N>YfUdGk0EhL}No4j1?4i8nLiKiB#Ec?wmKdy|t5ABQ79 zBX@pAyZQG=cnRIfGk$wy%fy+hjXtUnM(#vK=&Y%!1hAF>nGt962Gw}*Ck%|Yiv_^I z@8e2I_+_n$yKRWnc;MwmNmne_iYQ}Th|*TTw>&+A*P}630_hfI#0w}h=Uxt~V5Cn2 zUTKKmj%c$h<6GIyIQ2&<0>Xb`{6EN{n9VOwBxZW2EMz4L?lwcQW_rgCIov87<3Nym_MM2rG;P)AxB7m5uVuDqvp_XD9d z!^?KY)c@5=Ul9^}=8#L1yuBALp@*b+c+Qg0KAMTTVnD{W7}u~=Yniek{vQqR6eavs zTM;$GU0JDkLcd5_a;yy;?JL|Zn>Jt&{8(L`rQcvln%+wuG_l%%70&bBfq~kOHvS<0 zmb*Mk?<+GdrmS{8xRt0P=O5xBAS>cYgFEvGD%>NLedq^^2+ryag*4MX$MipLF)%U5 zw#2XbvtYZW?zd&J{(5G^lE((nd7UM0ZbjJ(3C4UQOt&Y zMC6QSY90y*+3W;v7}oqadqeOM_W&O;tFjNLfu0}zo6Jhf?MpEePAc_anTLI}e%lri zgeQ7IGI`sCudS;3#wAz=Gbci>TF*N$eMd8mTEz~-E>J;L5wa}*`+|rtRB^TG_KNK= z8iLwNof){Uq~pNKx^gUqooT7o=kXn@bKi(Gv%FDTa14iOWtvEBpc8bEU-{|=>|*{3 z^CsX7{Ap`BS=vufHgPQyc`(I_>A@7kx@%3ZNlGt??@I+9XxH5VCCqY1lrG%e%r~iD zowsOzgZi;$H-+JB zw%GV@=8PD8yqaIB{#Dgc4%%GHwUaGQ86bpF`FaoTC_zDHm$#y#VF(P~ld7`l@st6v z5ILAwlVkeSF0PfgVsJr~+!T$)_*=k5B*{cbW~z}g{-WH>$_(p2UI8Rw{Hs&S?|U1| ze>8)E%=(xZ4geLi4yt<>5Zt%dKhBS`(u$73UIY{GNB5yCg`w8TX$Ww^C@FDuIJe9P zRpp3>m_E30*p2AJA8t**v{5;jS(A5M1AsuoIhnsCRlt~L4)RG#k9Zq4vg(Lr3M%te zwMNimDbxJf9_%)Ch!<2#s;EPMo_oS+o(P&p1@jvT_E|1HlS@{87KlU=u#t3Sgw$cZ ztVJtIl>|FOzort5=mfZFClysZG>4BVFMampts{GR8V+aB-G_()FH_pj zhSUp=gGWQ~meG^>aXdMVqW9j1GZmBfMHR6{bf-?-7aMv~Qk!W>?#YvJ_oo)R`Rff# z9!@K?IvUGh^d6CC^m3&LWy&-dr}`1{s5xEeNaFk}eKi*N(M*GxxnR#5veYk`w%2>@Lrx^k$sF zb`DrPgMZcei&xCmz^L#|cgww)0{+$wbZTA@@(>M?0d``Pz=CSt@K;V+KMTeRJNj8;<9yvORPFLAVZX{QEgcZvOA71+WPmMGne@tkxaKGtkAwx5(8ub@e=o zaqsf?N2q~Dmg0FHBjVoAQORbs`$DtZ3824 z-)iW>G*(K*3V0j$Q$Jvn{m)K4B2`0OH*gYyVt9Hhw~~*FA?)B>lntCF<#!U*lq*@z zrE2De(q|W{N1tm~tYuw-9~U_yGJ z0p2w(8+2f`nCub`#V-!V1oY}8x}^^-tO*2pQ z)Wk6noM2RhdYXViah{kj6R;tyBz6-Lby7k!SI~CuxeCta>4vydF!zC=R33VG-^K%j zrGN3Ek>+PnSUjw%3eUU2J~)WIH=T0{*CYSoR54qGK;?%rxy2LSB1W1+!$A}^6c^ZX z=OyRyAAm&72MN_QT5Ed1k#qK%72Ix>XL>)x$9SbG1G|lBjS~HOO3i&OErZotl>rA? z_^`=zz5yYSaQA!3%SW)I=WCBI_%S&Lj5ZXKr9M-FE{=J56iz>y{z7k^VOh?}Jp`P$ z*FWqef-w_Du$?SOim}pis3}``RL^jPI|&!_iRaOiKQ)pa3SUCQUU6AFDSW(nwyr1x z_~YU#nl~)1i)1Ke4QD#9O*3SZJsuHY30Dzwk|To7TJaQlc|k209Hgjl+6t`RO{2r; z1}P<+(f8LFf8>j`un>O3yXhNJ?k`en0^%aBoHgea7o~~fI~kGq1S0m_L}(emw;XCl z8PIA8q$~I;f&PXzu248hag`W(OOibWgA+haBUww;0$V@_cJt_4U&_d-=iA>QBp ziI&VTsG&l7MXqr}W(Bm&IEt==a-2%*6Lal)|+auvh?EX$TQu<}aI>1Pz#9zgFI&xK=;v#`yRxEG-3};{3Mbu=&$w*Np7OqpIZK zwlzn)I6Qde3KnB5l+GG8u^HQJ03K`K6}5eYHHw!Ql6{}jBo&Q+x5cP0TYl#IR@R8% zFDc;7o06E~0iwW49uF2QoX3f17(_R?X-&gRtw!Zw?F5#gu6%F!a)|IvPb3EpmoyHCnv6p?(?u{wG> znw`igWrF~Ljbu5rL?bRx=B3o@3u=zXj0_oxYCW(Z!$brH4XUf{``B6{v#2n!cG{_) zv!0?itFkb&UA|B<7LWfn!n{IUCI!Y{K@0cjL9)YrVaN&)Wt(j}f~SO9Xnl<`P_(Dt zs`>BIZ{$+|gv|1+IDgP3-7fv-GY0F^x2>+^IJ1jSNZ=Up5yxXe3DL7oX-q|g;H!MO zbUFKscg+y4A<(1*wNOR{Q-CJ?%J0(HW@2`jJzeC0RoXTD%C~&irCa%#A%uX2uI6x9 zK^*2UxB&RiiUQ^C+xBRP7O641XZ&&V(a)wMmx2h#awbU{l$p!Wux5H@x@k8=!>#D3 zO3z1Ne|~mk`}~PyKnxW!JW!7h*io(<^mQzlFANEcwfM)j6$A~yIAm9P zVhCALJ7r9tyy6-R&&@$!7{br#d;m#sbd5QoURkEJFq-lYq5lTv88OK;HO7ncrCWah z4}d;J1cf!M7(Rnn#;|8!!xrQMnU+cs$t_T)8mr)ypf!6bhQLZ0R36$YRSdVIeTPsy zcu`hZyTq}_%H=f{E{7XsMSV9mi9YB`&HcF%$9DA&oCo8))>V_isDEw{4ky7!4DV<- z3R^Bow^FY5N(IeARhF)5eM@_h%f;{9f?F>B58E`?rzoSWaV$(IGKR1VeAO?3zuh3y zF##ZPewjWDUTDGsn41b=^{ixE#74mTp&IsrwknfCMN=m$%Bi%p(M^VmZNjk1VFpA9 zVOx1+6d(0ou>ofR;#o|kV5?xUz$z5c8WR6Pr;d5A%@xXV-?rh72V_IV(mNxq&VhJ6T5nsYY0E*MAM3pBf z8KsP1iB*lK70yyi(My$q-)cEbG|SL)sz-1`XnZtw>EV;tj2J9Ub3R;DJ3rl{ba5Mr z0Zt_b_Dp{H9-%!=WUON-n3%DQWaS)L6(q()Wj0T~i`IN5nCe>^gK)HU48H+;B)@U0 zraINYU)ghp{?`ubE6Wh|)eMU6w$Jd5QcQT%Hc1ikj{Rsv4ADj?fq&UIDjY;2{kla# ziq=XKxHV80#lfp!*yJ(YN_k3Z&;H3dJUQd$q&|Z{1Lz*53k+xbxvTEVpu*_%o+pVx z?><^^&a8e@fmbLwWk`ybbCThGR(O*5d=oN#C^((B6Fmm<*Z5i#r?a4xX+m~_&v=>S z{HyflyJ@6^k6Uqx(S4#RdF~43w*jDMMSff>!DgA?0bBFH;ElZIy42YrelxshidfDt z{G}h*fyIGbJc8Jo!hf>?n_I#rdWoUL+YRlvj4N|!d_ktG<&N|v0i;!^?l~W4JfdWY zNOFZ*+*ra7nxDaf>3}0C42+M!Ky@or)I4+!G%8)_*Mw|CYJNU#a zdQfcCHfdrl6{y%MLLf5U8Qx}TGU*{&ih*1+c@2VhD-1*5$OlQ5{^yf7j1)i?)R#pS zWK}98qDcT}Jbv`&nu%*wl8wz?AMt$BLy>}T`~dt1GGnq8_(Erc$>khO$zib!(%6;J zWMW(%CNL8$MxE{6-z;lz+C5AzV`s3)8hD(}$sOIGJYsqgNuxCi#Il!TLU%RpzBt`n z%#^Cmb!7%}XVa1^{q&3xE`uq&F>WD+f$=B!_#v4 z$!_d50E~?)bU_5BX4CL5r9(Qiu3me-7lFa#Id0r0>l)r`B}nv-h)d5|Lgk%|*p$Kr z2b-Z7!f1;$)+~r{WEQ(akB%`-G-MK6FEQ>T{jCo$p{8xV%ewTVC-;stUPjqnrj4tZ z8K21n(bX*4A7|P0Giu47Y`AiPueWYU97GCGkevEV?nM)RSu{htc$>lR9l8f^|Edie z-hVe?6$*)v*Ab@fYvEQ#SC5yGqlU}G1ZJR!=omxDC{P~pf&>k!6sVh-7wi~Xj6y;y zWziDS(dltIgkKeK?;k%nzA)H&uekGni$k9%464I~n8F_r@cs880V^0X6IK<&l3J87 zhmmt7sGM4eT}>2}LI(oL4hFwTRXljxoCmzlcfM6ou*%ZRReR}qTS9}yylOk$TGbrl z3MPPIJ{TK?73}#i>C!oDsWu&z7~0-VxCc3vt_E`Ynw;5m^QKw;Hx9XY8yd0*G52=j z-!DazY9-6^FQ;>t?(Pd!xUy?o@f>ubG zZR6D8CE^5V<#XJz`>++|o=C@GnhR11pRQwY&xnlD`1hH70Wxq%VSqEZv8YRKW6?>L z(ZOA9A>qPYdTA0wdT*by%KpjOKWykB(M<+<&shI^D0BC@0N-=GA%8u<2L;PfM^pin zF9GVu6ToLBVAvdjEOT$v6A9@h4viT#oZwI*Xga&Oc}C-Qq5Er#$GdG=Cl0%GPUJ8o zt${L@g&xZlv~*L8`H*kRVTs{3@4%_spA5mZ(MUMZtdT}AU7Oe9Y+k^pZ0xivOuc~! zu3_E(=my;cWn3rAZMKCs*uL7D>n7;~Di{@5Z>q*Ovb6`7%3@mY&Waxc4j|Qm?6{rE zF+({v=C4Y-K2nvUP8cmE*twuI$;c!;wj?2$T~wM&`ND(Ta?Pcud1t1PV23 z003%S$^_>g2T1BGs9u>S14?;a#sF=&Bn6pRxu~0#nY&l|4~vVp3nYgJx2^3C>^U%V zfQa$z)O9kLIbB&Bs+@0Gp0%`hveB=sz#x4fC*R}{vj78YMt+LW(%N=tovuuV}@1x=(;Tkffc|8rpbYaLYL_q&*>J)UbP;y0^l zbOM=U!OAKJhBP_>__UWjdjXH?83qulF&7;03cQbn6&(TvVZM3+?t8{g#vbb;5Jdz=|`b+iPR zGd-xeASA<5YUHFPl=5Odd3q3w8T5t&BBEK*X=BuAme5+z4h>sz1pr-3xA9jSKR<+A zp5*)xa(V8f?9MiQYFCc`&XIPanSPK1h^#R51CA3B!R~HY=IulwLC1myGP`}OZTz5K z*P>+)glAFR>}{fkq%OWQa}q_ko)0> zNfV!gBiFC({@t!O?D!=i>eQ(}@BrRta`nLt8{T3lwEWH%OtkED`}Q{Btq7b@?8a*w z>cX_i-vs!pii^wH*J)Iw>PrPdk=kkIq@v~~E@&s{ZD~+c($FnNS$&&RSqOi3 zmUko!(cjeED-Nm_f8tJ7<%pVZLW`j5j!BRfT}MYCj1-RWaxwJb&;cd|;CKVxE7DfX zjIV2xtmIVp9|8G3J=iw7`TkJuatWK7iv6Av z{uy40fa9HJKZ2Ra{&l&*4K_e(W-!l*hxBnPWKene_!-lleiu)Y(PvN|$=>KrUvwzg z@|#6=c~^K3hw^+yojVP|70pw#?SE1B4j6`JwlKLimT7(q3an~In+%AOVoEA0exF!R zj8G?q$nVL{SaH~Sqi6Y{+%h84@LqLAsq=|(Tx)~53)wa~+Cb$+DZN~R`Yhq@%Tfw1 z-d(m_zL~(h$I-xjiKud6EA%i$Z6Tlb;4~GkLE#}oxPL4mkEEDrC~UDXS)@3k~Ca`Y&na$KFwllDcNx4 zLL)q?kg$ND+68yzMc6R7nlK?&SQ9~_Py@*=4OIe(VI{#?{6-)h(HU+)1THD|Z$zb4 zcdad2A1eauSY}AeLx+=BmFLQ1h~|ESwZ`;e#KLNj&Dp%q;EeRe z`9K$+cRqgPcwz$85PtON2wUf8&qN7Pk`<*a=dsE%%SKZLH6IS!HZ$$KEkeVxJ{vA! zX+BBQa(`K6SN>}Ijifu4&7y%N7g&f~Xa%NWUX!zlR<$#uRp))GihQGWIz}1iySc$F zYZCaA(RZ7XD0XTjyudjn6d}oSWM%JulaxDNFjVSv*eq+C1Tq zr)!`~93_^y1prE$K~LD8mJ3LOUcnVs!K2`&g!w*clu^|5gi&xM+HeXLLG`@!C;2T8 z|7^pC4R7`p6{LTZ;y+tF4ue0Fe(>B)@le|i*5`V%;52`h6Y8&A+P!xDciy!0f|LJw zr0F>g?ye=G-1LTa*B{c%FSgbpht|JI>yg&BR?3{WI8}>epbofdx6fLi)Zg1$KY$|< z0jYx=Yxcy@p*Dt-OKi~?)qkr|KiR=*q|qw^G+;a$7l$km211%XfQRJ#>?eG zOoDIx^GjYNYy6F1*YUEgt`f<8l&C=}Q{jr_Mkx7(puijHj1>dihFn39LU4 zyuH4)*vwZ%WnG+>(8rDnmZ+NniD-25DrLY7Z!e~3g=l+n++`MZij~@1y5Z8EwAiYd zo8<^+G%$SP8Y%ViyRX%0$)uphly&n!JCHFBrV3f3&!N)=g7W1#`}tA%*ww_64+_Purtx`w#0zanC^c{v*5)KEVs30aSD1UAYKBXvSXd ztrkQS+xGE}P#=^*^|_n{7Zk~CNAGJl<%4>ziXAQY^)qE*jBkrfRi#{KpfbaI`}#1@ z$28TDC}NnsRZPQ?pcdQb2drB$4uUA;3AK@YEu^RwtcPc{=1Q)B_9E7iU2JN>v|%Z8 zy|>6SMVGMJdItt4hnyiXd1;XnCOR{_d+%gkqW~pD>Ym0(tAqzJ#Aw678kiaUMSI=q5E-?{XETWd zl5s)c2L0MY^$2RB46q_Ie8Y^G_wp*T{$zR^u>vr&`mD>&{@5qH?&K=mZBxpP;!DF(LnQhl#R`fQ?oFgt6f6?I_=>L{vlUn#Y~9P zN$)Tq#MLJ(jF7H>PtALiENN?={1s(eOPgg=NOycovaOaK4`wI!A?!E>Hb zw}oa}>vMT!ts7(Ae<+V%Axx^!>0pipiFo|mI5~3`+{2BbbA`#ZDJ=-1pQU)kCFiek zK~YMCmXuM{@^@}mOAwdiLs32I6^<>7bH!J|O96+mAeTfzRS8zTcY9kXL^hZn2R_k2 zOnN&mQ8HC%-8Dm91|{;iPlhESgZ=qzdw|V${?!6ly$lqhCX=B()dU%8kU+oLu2R|!_Sy&^8akw zX5gSm%Ggh#2Ne^Qff@PWb{!}SQMGca_Hh|K%#8$hK3?{;Mn#|rWc(ddX*ic9=;B*= zqkbPmY$7RkR~W5g>yy=Ma!}~p0mgS~2`Q=s=RC=XtdFR>C>DMX>_G#?rlAF`GIzIq z!j+s4oMk&dOg%W5B^b{Pb;n&8!v(DQ9r;iD-`c5o%MU+=&JZ?O`i1A;H`2@!Mq`$d zPMM{QmqT!W3d7e}Ese5N;HVPIHw+y%R|+B^-BgPCmC-()KB;+4>*Gtg5*nt~{A%}W z86>ZHiXQ{)g(Y<}(O%6pF|5XSa=4>xkc6Z|z}UJ>T74e-KsGhizO+#qiJ>;FJvU`; zB%DpVrOAZo`DS(G=cW`VBhXJ;Y)*A0XMC9l(jr*=uM*;RWaArsY+Y}BUK*p)?W{9g zSbg%sP*4KMk*ME}JfPrmF2?YU>IiB4-bz&0C6`(pkCxPz=UEZFx&_Z)ZVky&N1XF2 z$c6MFCBgdv(Df(MfkJHJM7sT{`@Hvm)uq%#`W5bh*}uH>7bj1Sz}?vPD*J`!&5ca) zw|@00L(<0i?R}Fo;1>7Oia`|K-g^*e zua&+NDa9%o<~NeX^={2k5J&2f&yW!n#J#A9j23TV@Dc4QpHs%b(Xg&(pz!IavkhCb z70U80FWfOv2(J6k*z`O)hi~utNk&%coN9Eez6IbaG^-}An32efr=4d;Xo)Ml{&_CQxglNeKhA1n^u+Bw<5fioRd#T znaS}Y36I&O^Y;Q^7!#A;gf(XIq}m}zkG25?^w`pHg&70$1mI>c_JNh?U&oxdCnXvPSIT%AF~k9T;V2R%75;R{t{$tP@+LMF3etOw&ef`r9xMEtT0S(Vp{eNUhhSRKwV4d32L>a*~u`$9_`fc zG}dzT6PBdyd=eEbW%PV?uyOsICZPry+_bMo5IshDLD;+ue#O)fQ??k+rOl{)gYnDq zGeM5e+tt~H%MvHo??}1u-iFq>xJL&ZVkzAZr<_~G_F|~H0h7s#JH>7cc<}r=`FxgU z0G+#Vmob?XFmU*?n-q)7IWTpY*gP6VQ>9@mxtyYv+v(lc&BxAb5l^qr&x6hTcn-sf zSV-doypl}AsN2pbj948YF)dqnoz|0?`uV z`=pKE&=QlcZ^qynKE#AAzmep|Hl*k_gUcGJLqvvMnM(hgQAKwm-NDQlL2zFWJamtO zs~`iVr0jQ+B9_USJXgZ?vj4%{*qJkvdtBP~ezgO_+iQ#mJA11&=u(tyC?h(4rmbdp&#j+1dBco#>7t*10R zkI56C(IV2C-i!B(g7SVC3%b3`jVYKxMEuz|k9~!nin6$)_`|(GPFjf1V>qO+dT#LV zpI^f;9u1kPoCgUJJ1+eQ0U_45>;2qDh()R`V?e}UF`Ej+LTO#W9^Qw6tWN7`cuIYB1IEz%pLsBIs zo1O6nJW_@Lzm!$3jCk|*0aIrpnHJq>iYGGESZUIb358{DgY{RP{QafZj5PIoq%Hy) zSx1c=H=DNLkG*Xg7paYTqz6Ns!ZGx~p07a)S6&n;Xl5|ZdrWZKdLnf*+g0c@^QqEx zu0S2WOS4D6FH_?$rSm_| zFUozfwuI2!hK%>*A&m1gc*>77?Yck(xyVLyDY>xZc1S^aN*uLv7>|WMz_+-q3Z`Jf zunAPF`DU&_7gz@Ky6x}@8N)ewB)6O}MFon-7|!Y(+<$kI#^W@wxiKzbd4b21AvFW5 zm2djG9+qOGt7{^9rQ2;B{7Cj%p3Y4cJ|4b=am(M|4t}Nj!^-Ai_2;2ffD7$Vvvi|2 zj3)Nx_~{-_s1VN}`Zup}M%|6!<6z3s=Cv+1lt%=1dS}D0niW7XWM~JCB<8`=wfV76;)7%Uggpu&L9H5tBoP22_;IHN)gWY6RLF2s~}ly#%qwCV=K9SUPKrph@wJ>*=T3^Vie6UfvQ?*-?^Gv6CGy4 z{+bj<$Jj}PDw%Xier5s}x5(6<4|BC+^y_jZy$2)@`|>(!2})O_K7`+0fSpq@K_>pl zS>C9W3Yg(X+izeVFjefi&(gvB*8KAiLRKeX|INFbM?ffWSRu$&gJ^XU1J45mU@gyW zQ34cOyU4Mn`oYP9<$@Pn?@?%m)}4qSzfeko*y=XGrJW$Bn9d~ABiP&u;L z$!$`!apoWn3aRKNkFu9?QS$gVK?8n&&xQ>|7-z@8l%Plzm@m*VcaanS^jNM(`Go_n zy*fKQFz7zs-BE0)`C;#55ZmBTR%=RTxl6^udS>Ph{?_ma1onQDtVTu$d^qyfT{B2R zPKy-CM{}LoG_z?B$Gf0jOc0EC28^X+8UKwigd8(wIi1?8r;LDase@2&+XwS~X`+ z4095K5T>z-^k3K1PBeruqj3v>nA7(-`Y76PColfsHgJf(2K9&S4;&F2v&t(~Rp6}h zvSMR+Va$zbmSgbvZdxC%7BqMBNQ4_V(f_nIm>&`ddf#`a$hKHGB2+=#l~xp@1e~P= zv#>t{PUKDW9)&2kOAh;^besma>=_ZJ{QIi<} zoi2f@^`21#;;Z$FC<7NEoDTsI9x`pm=n>Koe0kT&0S_3`v=lgHl`Hj=o^HI6seRc1 zWm7BJmXmx(V_3~kzp$Nww$>npJEsTZ<5)!BE)98^`pcc$yuI6~RkZ;n){-1+AX_Q7 zVpttNFfw@H76RfPHg_0VmSc=!#%Z#Kh0*~NC?(z&UKnH&i^EP*IE-Xj+y&o781Y>k z5I9`ep%Q9Usq4Vfmg>c*9wL|v>jJpk*&HeLap&ASHyE2oV1xlIqQ_c9i?V=(Ruu_w zD^#Vyx&r*ORp@Ug3+XvR#&&$j)+^H7=eQzXh6pqhc*Ky9)lSxf9Aar0bg>)+T`ht8 zlaY1^Ycl3iFTUjRv1@;Gc}&Hng8VU{4`mhFhZ2mCA-UHUEROkO-WUt9GgCH9jC>Xz zGAapHm;nGh0J^<@*f2$Oi8v!d>)!%&#o)@FtmL?!H$vEAU)M@|X%c+ty$pTOg3gOl zbi-`g30S6Wur(vK7r9~I+0kdtBcrX23gPI2=T$SHUNs|c&WD5wBj{Y;K~xyyuE*NK z<9Oal0xC!MJt?@r>k<`c3_E&K8CGYDNwKfIO$#-Gt9ib*9!pr!|J)r)qdaMdyHWq7 zy*gP#by`)|GYes0Mh$1YB&pe4$ApRMEW`fLQ_}=!usupxBEmZm=J|~Dig3Ja5@&)a z;zNe~!;6sZlQe>#sp~SRB>-JNs||fM=?y9508p`*NM%&|%9G?P8xzwLlM~?Hfu$4A zJvu@;vaX|x6N)YZgiW__I$|7BO6;L03XkEc1|fU-$`qw?#8Pvu{)U?g^DWhLV0i>% z+9G@cUnnIdPpzy;Ro(iX9taoGLKstjs;IvuRhlR^Od&-{Q&!|=r>p7C^1?|GrhscO zmWLK{x9VGFj$%y09Wk}kv;r7GA+1+kahtl+@RHWkhVyo7MCGL|TH_q*MfulK4R{ph?@}R&OGqVQ)2|JzB>IZ_efew3=Rtw8pJMJNfW5Y7boTvmzH*x*6QtLA^ z?$7zh{ArwZu|*;TE;JQLL2Fr}Ln>*o7OkCvtmuv+)%gkj!~(b(#DJA;UHa0}BO}eD zM6q+!WjB6Cx2RrKE+Z#O;Uv~|%)jm4INp&Z{?8b?!T-{|BkMAB20?OM(-h7-hU3D!)mI3znHlSdr_58Swlqg~vE}?$IW^1SdB89K)WlhlrXep*H= z=niOwGQd`}B{C`nWLkeS#j$=R)pGgCwrqdp61-hnOYvn%7}DSn%ZwK?mfO*%^VBB= z4C6AZis*%Tts$B!bECa^=oqHwOGIdR(v`botQ9WR(L2~Xn>Sm*7+8j6mY-yGpCTVB zS+>}50&*iFjotVeZ5XWo{*$j)+UkPRc6G?rKj%+XM$aYxJWp5AFs*fi-$3$8NI8~- zkV`lCAGq*PKd@7eLrRJBgebZq%JdPz99LLI7G5Ck zo~AahPPeMVYr~?0sKP5G;))G{mzOHg6``|*(^Mi+Qn*aKn{+pS;eOVg)~O0~Og`O5 z&lx6a&=`O!@LPs3#yaYJx=L^d$S)vh{0dj8`w9Y;<=GIRT0H;pyH8#)!b(JTJdQN= zKR?_NX3x(M2?y&;Ks`lx&f?;|t)d)}S3VsY-3XVu!ru%I=|r(I7>4BZ7pmTeS7)fI z6t8M3&2qdxLWc>lkf0%{8aYc+kGDsJb?}0|z!ns0oFg$?!=gMgg>8^B%D$2AJ&zxyz$h&r7>xahg9ISsUXADk`ocxUuZ_B}9I}M}?8CqI! zgYm=*DZ+e>X`v03#a`uBi*4m^H7-$^sEiqr+11H%A>64sS5i9Rk2ePs+O}j$2NM%# zPPdCx3BIiAi5ok}Lo$Q$IZl5zdUPLLTMm6nn@*e1v_VF7GF*3sG9ZYkncUPA{S}oc z8F2wXqTjX+))X=y*oVU0CuUa_F?$z6^JxMRyib zVDX8Jzs{A&qdYJ!a_;PQ%}(My;MM#zZ#-bcL-aa-81A|ZK|^$rr_bd9UfBd5QA@nz z8liuPi~bL0jv^=P^NTtjgYll2bh)dh9Z|*-iq~^ffiSa+7M9pl^5{@E*tTZ*TPp?( zfu}M;n330y1V)!buE`t%MaGTLB3zOq8{PLDcy0;R0PVUMs#fQk7N!i#_YVfIZp8Vg zUCuuxEG%fx{lV){HaNCs!3+<)Lh|8m@cY&jl``@69_QqRRG0ztO^txoz$TS6Hck#- z>OGXflT}x^j39H8#F{EP+-*~frnZ!71dDhT@_CscJ`9!-nlQHIltIn$BaQS)-j3q$ z^m$rt`N~T5RtL8AWix}ld(jHn6PDpPy3yW-l(r9MQeIjsC zYHH&GlEl7t=iO@PQesxwPV0y&Oe*Hn%6x)S*fVnRX$#;5fo`0EdbsH9F@iMX{rWgErRiU3nbTHrxpC7F)2fZ zuw>Ok1UIMkIxgCZZw-x+b{;bik=XH&_wDBIE&H)KH{U`=%moJ}Y+?!XgW1ENsK#v> zZW7Py?-d@UhxSEOq*$v)YuutitWmT=6|w45eJY3weP~4=`k?rr5B>u}5yj09;`%w? z*)>oX_U_Ewx$~X#bI#1%y;t10A+mJuGup33T^V^!#i%tuKvtC_-=7bP-3rk__+HR{NZQ`=ub|??lWmoh2QAVL#uCh7g$6L1+g|mKjOdn z>a-}k`X4?+C<>1vm0WN@5@zvZ*shGGG_j)@D%tTjC?uXm52}zrP#yA8AlbZvtMHyV zq*6*VNQH20BQ{^qjY=|DH1ZW5(i1q*hodJ@aGV?XNQ|SdmdHD|Z1V2I{*{kfXIj5k zv`y6=h-eKP((rO6ys1{t6;KPbP2&r=LMeaWz*fpf4l!mTicA6(j;Q7&!Q60T#@)-K84Z*4iyMhpjEf|ys zIh6kmt;$e8h+6`jMFA8z2gssYRH-wNN@w5)PKn#VnXNA82=Q@8r=iZy_Rz{r7(JN2Oj`Szel|jF$SBc5Yhyt1|n};{3_h zg|~WFj(^@)D-|Xur_0yASuRy=Y@>Nf1H;Y5C!4LEtxL`3YG2Q~)x)iWeXU2A4)?Az zv&6T|cQaonm+T1NYn0=_Cu-PFLk~{t_s8aP_t!@vl|QO<(Z3 ze8DE{j7_H7Z6xinT6&B+-`fs5Z++C=Vqe;Dx?*+z(CW5q6aK8yWq-&<{D6)6Q+BgY z+mP?I4Zex`XKlbPa?Q84o$CkE*S0JD+FmRSQukde`7s;w8C&nOHsFtQ-30A?XTAQM z4ccX^dc($jpAGv~tAV-E@1yP$R`3nf{etrSHt41HpFVG8KWdx(b=y{`+7`cHH<7RU zxUEk;;C~7o+hOl{eowT20s9WH9|n6j*oVO02X+JO{b1i?m)mWyuLt{1u+M>A1$zeU z2H1759|8M-muO?&X2EKJ-2l4*_Iu>71G{GL!^7X~#`Hn^pL81D|84y~W!3Z* { + if (node.getAttribute("data-source") === null) { + // First render: remember the original diagram source. + node.setAttribute("data-source", node.textContent); + } else { + // Re-render: restore source and let Mermaid process it again. + node.textContent = node.getAttribute("data-source"); + node.removeAttribute("data-processed"); + } + }); - nodes.forEach((node) => { - if (node.getAttribute("data-source") === null) { - // First render: remember the original diagram source. - node.setAttribute("data-source", node.textContent); - } else { - // Re-render: restore source and let Mermaid process it again. - node.textContent = node.getAttribute("data-source"); - node.removeAttribute("data-processed"); - } - }); + // Black-and-white, xkcd-style look: sketchy rough.js strokes, the xkcd + // handwriting font, no fills, and a single ink color that follows the + // light/dark theme. + const ink = currentTheme() === "dark" ? "#e6e6e6" : "#1a1a1a"; + const fontFamily = + '"xkcd", "Comic Sans MS", "Segoe Print", cursive, sans-serif'; - window.mermaid.initialize({ - startOnLoad: false, - theme: currentTheme(), - }); + // Initialize with `startOnLoad: false` *before* any `await` below, so + // Mermaid's own auto-render can't fire on DOMContentLoaded and paint the + // default theme while we're waiting on fonts. + window.mermaid.initialize({ + startOnLoad: false, + theme: "base", + look: "handDrawn", + handDrawnSeed: 1, + fontFamily, + themeVariables: { + fontFamily, + // Transparent fills everywhere: no background boxes. + background: "transparent", + mainBkg: "transparent", + secondaryColor: "transparent", + tertiaryColor: "transparent", + clusterBkg: "transparent", + noteBkgColor: "transparent", + edgeLabelBackground: "transparent", + // Everything else is drawn in a single ink color. + primaryColor: "transparent", + primaryTextColor: ink, + primaryBorderColor: ink, + nodeBorder: ink, + arrowheadColor: ink, + secondaryBorderColor: ink, + tertiaryBorderColor: ink, + // No frame boxes around subgraphs. + clusterBorder: "transparent", + noteBorderColor: ink, + noteTextColor: ink, + lineColor: ink, + textColor: ink, + titleColor: ink, + }, + }); - try { - await window.mermaid.run({ nodes: document.querySelectorAll(".mermaid") }); - } finally { - rendering = false; - if (rerenderQueued) { - rerenderQueued = false; - render(); - } - } + // The hand-drawn look measures text in the "xkcd" font to size nodes, so + // wait for it to load to avoid clipped or overflowing labels. + if (document.fonts && document.fonts.load) { + try { + await document.fonts.load('1em "xkcd"'); + await document.fonts.ready; + } catch (_) { + // Font loading is best-effort; fall back to whatever is available. + } } - function init() { + try { + await window.mermaid.run({ + nodes: document.querySelectorAll(".mermaid"), + }); + } finally { + rendering = false; + if (rerenderQueued) { + rerenderQueued = false; render(); - - // Re-render whenever the theme changes. - new MutationObserver((mutations) => { - if (mutations.some((m) => m.attributeName === "data-theme")) { - render(); - } - }).observe(document.documentElement, { attributes: true }); + } } + } - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", init); - } else { - init(); - } + function init() { + render(); + + // Re-render whenever the theme changes. + new MutationObserver((mutations) => { + if (mutations.some((m) => m.attributeName === "data-theme")) { + render(); + } + }).observe(document.documentElement, { attributes: true }); + } + + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", init); + } else { + init(); + } })(); diff --git a/templates/index.html b/templates/index.html index 1a08c85f..d168f543 100644 --- a/templates/index.html +++ b/templates/index.html @@ -61,6 +61,14 @@ font-display: swap; } + @font-face { + font-family: "xkcd"; + src: url("/fonts/xkcd.otf") format("opentype"); + font-weight: normal; + font-style: normal; + font-display: swap; + } + @font-face { font-family: "JetBrainsMono"; src: url("/fonts/JetBrainsMono-Regular.woff2") @@ -96,6 +104,27 @@ src: url("/fonts/merriweather-v31-latin-700.woff2") format("woff2"); } + + /* Hand-drawn Mermaid diagrams sit flush on the page: no surface + box, uppercase labels, and edge lines that break around their + labels (the label is masked with the page background, so the + line appears to have a gap for the text). */ + pre.mermaid { + background: transparent; + padding: 0; + } + + .mermaid .nodeLabel, + .mermaid .edgeLabel, + .mermaid .cluster-label, + .mermaid span, + .mermaid text { + text-transform: uppercase; + } + + .mermaid .labelBkg { + background-color: var(--background) !important; + } From 48698460658f1a7598f25d022d228ccda40c1bba Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 16:09:27 +0200 Subject: [PATCH 10/14] squiggly lines --- .../how-other-link-checkers-recurse/index.md | 4 +- templates/index.html | 59 ++++++++++++++++++- 2 files changed, 58 insertions(+), 5 deletions(-) diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md index 6536901b..6d0710e7 100644 --- a/content/2026/how-other-link-checkers-recurse/index.md +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -28,14 +28,14 @@ Diagrammatically, lychee is different from the others: {% mermaid() %} graph TD - subgraph crawler["Everyone else: a worklist (a cycle)"] + subgraph crawler["Everyone else: a cycle"] direction TB CQ[Frontier queue] --> CW[Worker pool] CW --> CP[Fetch and parse page] CP -->|new links| CQ CP --> CR[Record result] end - subgraph lychee["lychee: a pipeline (a DAG)"] + subgraph lychee["lychee: a DAG"] direction TB LA[Inputs] --> LB[Extractor] LB --> LC[Checker] diff --git a/templates/index.html b/templates/index.html index d168f543..2f062970 100644 --- a/templates/index.html +++ b/templates/index.html @@ -106,12 +106,19 @@ } /* Hand-drawn Mermaid diagrams sit flush on the page: no surface - box, uppercase labels, and edge lines that break around their - labels (the label is masked with the page background, so the - line appears to have a gap for the text). */ + box, centered, uppercase labels, and edge lines that break + around their labels (the label is masked with the page + background, so the line appears to have a gap for the text). */ pre.mermaid { background: transparent; padding: 0; + text-align: center; + } + + .mermaid svg { + display: block; + margin-left: auto; + margin-right: auto; } .mermaid .nodeLabel, @@ -122,6 +129,23 @@ text-transform: uppercase; } + /* Fatter, wobblier box and line strokes. The squiggle filter only + touches the SVG shapes (paths/arrowheads), not the HTML labels. */ + .mermaid .nodes path { + stroke-width: 1.75px; + filter: url(#squiggle); + } + + .mermaid .edgePaths path, + .mermaid .flowchart-link { + stroke-width: 4px; + filter: url(#squiggle); + } + + .mermaid marker path { + filter: url(#squiggle); + } + .mermaid .labelBkg { background-color: var(--background) !important; } @@ -144,6 +168,35 @@ + + {%- block site_header %}
    From e79542e966842bf5e9477e961797c134bc4cb58e Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 16:12:51 +0200 Subject: [PATCH 11/14] wording --- content/2026/how-other-link-checkers-recurse/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md index 6d0710e7..7e9f1866 100644 --- a/content/2026/how-other-link-checkers-recurse/index.md +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -33,7 +33,7 @@ graph TD CQ[Frontier queue] --> CW[Worker pool] CW --> CP[Fetch and parse page] CP -->|new links| CQ - CP --> CR[Record result] + CP --> CR[Results] end subgraph lychee["lychee: a DAG"] direction TB @@ -56,7 +56,7 @@ graph TD Q --> Pool["Worker pool, bounded concurrency"] Pool --> FP[Fetch page and extract links] FP -->|discovered links| Enq - FP --> Rec[Record result] + FP --> Rec[Results] Q -.->|empty AND no worker busy| Stop[Terminate] {% end %} From f381deeb46b1449c29b4d51e9a3f8f6811b57957 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 16:25:15 +0200 Subject: [PATCH 12/14] cleanup and fix boxes --- static/js/mermaid-init.js | 62 +++++++++++++++++++++++++++++++++++++++ templates/index.html | 40 ++----------------------- 2 files changed, 65 insertions(+), 37 deletions(-) diff --git a/static/js/mermaid-init.js b/static/js/mermaid-init.js index 579516e2..d6384707 100644 --- a/static/js/mermaid-init.js +++ b/static/js/mermaid-init.js @@ -14,6 +14,67 @@ : "default"; } + // Hand-drawn "squiggle": a turbulence-driven displacement filter applied to + // the box and line strokes (not the text labels). The filter is injected + // into each diagram's *own* with a unique id and referenced via a + // presentation attribute, because Safari refuses to resolve a CSS + // `filter: url(#id)` that points at a filter defined in a different (or + // zero-sized) element — the shapes would simply vanish. + const SVG_NS = "http://www.w3.org/2000/svg"; + + function applySquiggle() { + document.querySelectorAll(".mermaid svg").forEach((svg, index) => { + const id = "squiggle-" + index; + + let defs = svg.querySelector("defs"); + if (!defs) { + defs = document.createElementNS(SVG_NS, "defs"); + svg.insertBefore(defs, svg.firstChild); + } + + if (!svg.querySelector("#" + id)) { + // Use `objectBoundingBox` units (the default) so the filter region is + // sized relative to *each* element's own bounding box. Mermaid gives + // every node its own translated coordinate system (the box is centred + // on the local origin), so a single `userSpaceOnUse` region can't fit + // them all — it ends up clipping one side of every box. A generous + // bbox-relative margin leaves room for the displacement, and the + // per-element buffers stay small enough for Safari. + const filter = document.createElementNS(SVG_NS, "filter"); + filter.setAttribute("id", id); + filter.setAttribute("x", "-50%"); + filter.setAttribute("y", "-50%"); + filter.setAttribute("width", "200%"); + filter.setAttribute("height", "200%"); + // Keep the noise frequency in user space so the wobble looks the same + // on every box regardless of its size. + filter.setAttribute("primitiveUnits", "userSpaceOnUse"); + + const turbulence = document.createElementNS(SVG_NS, "feTurbulence"); + turbulence.setAttribute("type", "fractalNoise"); + turbulence.setAttribute("baseFrequency", "0.03"); + turbulence.setAttribute("numOctaves", "2"); + turbulence.setAttribute("seed", "7"); + turbulence.setAttribute("result", "noise"); + + const displace = document.createElementNS(SVG_NS, "feDisplacementMap"); + displace.setAttribute("in", "SourceGraphic"); + displace.setAttribute("in2", "noise"); + displace.setAttribute("scale", "6"); + displace.setAttribute("xChannelSelector", "R"); + displace.setAttribute("yChannelSelector", "G"); + + filter.appendChild(turbulence); + filter.appendChild(displace); + defs.appendChild(filter); + } + + svg + .querySelectorAll(".nodes path, .edgePaths path") + .forEach((shape) => shape.setAttribute("filter", "url(#" + id + ")")); + }); + } + async function render() { if (!window.mermaid) return; @@ -97,6 +158,7 @@ await window.mermaid.run({ nodes: document.querySelectorAll(".mermaid"), }); + applySquiggle(); } finally { rendering = false; if (rerenderQueued) { diff --git a/templates/index.html b/templates/index.html index 2f062970..dfe74987 100644 --- a/templates/index.html +++ b/templates/index.html @@ -129,21 +129,16 @@ text-transform: uppercase; } - /* Fatter, wobblier box and line strokes. The squiggle filter only - touches the SVG shapes (paths/arrowheads), not the HTML labels. */ + /* Fatter lines, lighter boxes. The squiggle displacement filter + itself is injected per-diagram by mermaid-init.js (Safari can't + resolve a shared cross- filter reference). */ .mermaid .nodes path { stroke-width: 1.75px; - filter: url(#squiggle); } .mermaid .edgePaths path, .mermaid .flowchart-link { stroke-width: 4px; - filter: url(#squiggle); - } - - .mermaid marker path { - filter: url(#squiggle); } .mermaid .labelBkg { @@ -168,35 +163,6 @@ - - {%- block site_header %}
    From 5764b70a537f2ed56ef9f9f4e7696e22d1857b7d Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 16:33:14 +0200 Subject: [PATCH 13/14] cleanup --- static/js/mermaid-init.js | 110 ++++++++++++++++++++------------------ 1 file changed, 59 insertions(+), 51 deletions(-) diff --git a/static/js/mermaid-init.js b/static/js/mermaid-init.js index d6384707..8bd2db5d 100644 --- a/static/js/mermaid-init.js +++ b/static/js/mermaid-init.js @@ -7,11 +7,19 @@ (function () { let rendering = false; let rerenderQueued = false; + const SVG_NS = "http://www.w3.org/2000/svg"; - function currentTheme() { + // Single ink color for the whole diagram, following the light/dark theme. + function ink() { return document.documentElement.getAttribute("data-theme") === "dark" - ? "dark" - : "default"; + ? "#e6e6e6" + : "#1a1a1a"; + } + + function createSvgEl(name, attrs) { + const el = document.createElementNS(SVG_NS, name); + for (const key in attrs) el.setAttribute(key, attrs[key]); + return el; } // Hand-drawn "squiggle": a turbulence-driven displacement filter applied to @@ -20,52 +28,52 @@ // presentation attribute, because Safari refuses to resolve a CSS // `filter: url(#id)` that points at a filter defined in a different (or // zero-sized) element — the shapes would simply vanish. - const SVG_NS = "http://www.w3.org/2000/svg"; - function applySquiggle() { document.querySelectorAll(".mermaid svg").forEach((svg, index) => { const id = "squiggle-" + index; let defs = svg.querySelector("defs"); if (!defs) { - defs = document.createElementNS(SVG_NS, "defs"); + defs = createSvgEl("defs", {}); svg.insertBefore(defs, svg.firstChild); } if (!svg.querySelector("#" + id)) { - // Use `objectBoundingBox` units (the default) so the filter region is - // sized relative to *each* element's own bounding box. Mermaid gives - // every node its own translated coordinate system (the box is centred - // on the local origin), so a single `userSpaceOnUse` region can't fit - // them all — it ends up clipping one side of every box. A generous - // bbox-relative margin leaves room for the displacement, and the - // per-element buffers stay small enough for Safari. - const filter = document.createElementNS(SVG_NS, "filter"); - filter.setAttribute("id", id); - filter.setAttribute("x", "-50%"); - filter.setAttribute("y", "-50%"); - filter.setAttribute("width", "200%"); - filter.setAttribute("height", "200%"); - // Keep the noise frequency in user space so the wobble looks the same - // on every box regardless of its size. - filter.setAttribute("primitiveUnits", "userSpaceOnUse"); - - const turbulence = document.createElementNS(SVG_NS, "feTurbulence"); - turbulence.setAttribute("type", "fractalNoise"); - turbulence.setAttribute("baseFrequency", "0.03"); - turbulence.setAttribute("numOctaves", "2"); - turbulence.setAttribute("seed", "7"); - turbulence.setAttribute("result", "noise"); - - const displace = document.createElementNS(SVG_NS, "feDisplacementMap"); - displace.setAttribute("in", "SourceGraphic"); - displace.setAttribute("in2", "noise"); - displace.setAttribute("scale", "6"); - displace.setAttribute("xChannelSelector", "R"); - displace.setAttribute("yChannelSelector", "G"); - - filter.appendChild(turbulence); - filter.appendChild(displace); + // `objectBoundingBox` units (the default) size the filter region + // relative to *each* element's own bounding box. Mermaid gives every + // node its own translated coordinate system (the box is centred on + // the local origin), so a single `userSpaceOnUse` region can't fit + // them all — it clips one side of every box. A generous bbox-relative + // margin leaves room for the displacement, and the per-element + // buffers stay small enough for Safari. `primitiveUnits` keeps the + // noise frequency in user space so the wobble looks the same on every + // box regardless of its size. + const filter = createSvgEl("filter", { + id, + x: "-50%", + y: "-50%", + width: "200%", + height: "200%", + primitiveUnits: "userSpaceOnUse", + }); + filter.appendChild( + createSvgEl("feTurbulence", { + type: "fractalNoise", + baseFrequency: "0.03", + numOctaves: "2", + seed: "7", + result: "noise", + }), + ); + filter.appendChild( + createSvgEl("feDisplacementMap", { + in: "SourceGraphic", + in2: "noise", + scale: "6", + xChannelSelector: "R", + yChannelSelector: "G", + }), + ); defs.appendChild(filter); } @@ -102,7 +110,7 @@ // Black-and-white, xkcd-style look: sketchy rough.js strokes, the xkcd // handwriting font, no fills, and a single ink color that follows the // light/dark theme. - const ink = currentTheme() === "dark" ? "#e6e6e6" : "#1a1a1a"; + const inkColor = ink(); const fontFamily = '"xkcd", "Comic Sans MS", "Segoe Print", cursive, sans-serif'; @@ -127,19 +135,19 @@ edgeLabelBackground: "transparent", // Everything else is drawn in a single ink color. primaryColor: "transparent", - primaryTextColor: ink, - primaryBorderColor: ink, - nodeBorder: ink, - arrowheadColor: ink, - secondaryBorderColor: ink, - tertiaryBorderColor: ink, + primaryTextColor: inkColor, + primaryBorderColor: inkColor, + nodeBorder: inkColor, + arrowheadColor: inkColor, + secondaryBorderColor: inkColor, + tertiaryBorderColor: inkColor, // No frame boxes around subgraphs. clusterBorder: "transparent", - noteBorderColor: ink, - noteTextColor: ink, - lineColor: ink, - textColor: ink, - titleColor: ink, + noteBorderColor: inkColor, + noteTextColor: inkColor, + lineColor: inkColor, + textColor: inkColor, + titleColor: inkColor, }, }); From 79679e77acb0f499f6085344f8a9e2e4a27c679c Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 3 Jun 2026 16:34:45 +0200 Subject: [PATCH 14/14] wording --- content/2026/how-other-link-checkers-recurse/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/2026/how-other-link-checkers-recurse/index.md b/content/2026/how-other-link-checkers-recurse/index.md index 7e9f1866..a45cf43d 100644 --- a/content/2026/how-other-link-checkers-recurse/index.md +++ b/content/2026/how-other-link-checkers-recurse/index.md @@ -6,10 +6,11 @@ draft=false tags=["rust", "dev", "lychee", "async"] +++ -After I published [Five Years of Trying to Add Recursion to lychee](@/2026/lychee-recursion/index.md), the most common reply I got was a very fair question: +After I published [Five Years of Trying to Add Recursion to lychee](@/2026/lychee-recursion/index.md), one reply I got was a very fair question: > If recursion is so hard, how do *other* link checkers do it? Plenty of them already crawl websites! +This sent me down a rabbit hole of reading the code of other link checkers. The key takeaway is: **they didn't find a clever trick we missed.** They were built as crawlers from the very first commit, and I initially built lychee as a stream. I went and read the source of the recursive checkers we list in [lychee's README](https://github.com/lycheeverse/lychee#features): [muffet](https://github.com/raviqqe/muffet) (Go), [LinkChecker](https://github.com/linkchecker/linkchecker) (Python), [linkinator](https://github.com/JustinBeckwith/linkinator) (TypeScript), and [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) (JavaScript). This post is a teardown of how each one actually handles recursion, what it costs them, and what it means for lychee.